AutomatorでGoogleスプレッドシートの特定セルにクリップボードの値を貼り付けるには?

Automatorにおいて下記の動作をする、Appleスクリプトまたはシェルスクリプトの記述をお教え願えないでしょうか?


  1. 現在開かれているGoogle Chromeブラウザのウィンドウ(複数ある場合あり)から URL "https://docs.google.com/spreadsheets/d/example" (Google Spreadsheetsのファイル)を表示してあるタブを探し出す(当該タブがなければ新規タブで当該URLを開く)
  2. そのスプレッドシートの、シート名 "シートA" であるシートを探し出す
  3. そのシートの、1行目の値が "列名1" である列を探し出す
  4. その列を1行目から順に検索し、値が空白の行を探し出す
  5. その行の、1行目が "列名2" である列のセルの値の末尾に、クリップボードの値を、テキストデータとして貼り付ける(追加する)


環境

  • MacBook Pro 13-inch 2020 / OS v. 12.1 (Monterey)
  • Automator v. 2.10 (512)
  • Google Chrome v. 97.0.4692.99 (Official Build) (x86_64)


どうかよろしくお願い申し上げます。

MacBook Pro (2020 and later)

投稿日 2022/01/31 21:23

返信
返信: 5

2022/02/02 20:00 poyo176 への返信

開いているChromeのタブのURLを検索して見つけたらアクティブにする


こんな感じの AppleScript で大丈夫だと思います。「xxx」のところには URL を書いてください。


on run
    set target_url to "xxx" # <= ここに URL を書く

    tell application "Google Chrome"
        activate
        repeat with w in windows
            if w's tabs's URL contains target_url then
                set w's index to 1
                set exists_target_url to true
                exit repeat
            else
                set exists_target_url to false
            end if
        end repeat

        tell window 1
            if exists_target_url then
                repeat with i from 1 to count tabs
                    if URL of tab i is target_url then
                        exit repeat
                    end if
                end repeat
                set active tab index to i
            else
                open location target_url
            end if

            set n to 0
            repeat while active tab is loading
                delay 1
                if n < 5 then
                    set n to n + 1
                else
                    error "error: timed out"
                end if
            end repeat
        end tell
    end tell
end run

2022/02/02 00:49 poyo176 への返信

下の記事を参考にして、Automator でデータを取得、加工、送信し、その後は Google Apps Script でデコード、スプレッドシートに追記、、、とすればできるかもしれません。


ブラウザ上のテキストをGoogleスプレッドシートに追記でメモるAutomatorクイックアクション & Google Apps Script

https://ryjkmr.com/browse-text-memo-to-google-ss/


私は Google スプレッドシートを使ったことがないので分かりませんが...、ご参考まで。

2022/02/02 20:07 poyo176 への返信

ここから先は AppleScript でキーボードの操作をするのですが、本当にできるのかな?


以下は Google のトップページを開いて、「コマンド+V」「リターン」とする AppleScript です。これを応用して Google スプレッドシートの操作にトライしてみてください。(私は Google スプレッドシートのことを知らないのでコードは書けません...)


# Google のトップページを開く
tell application "Google Chrome"
    tell window 1
        open location "https://www.google.com/"
        set n to 0
        repeat while active tab is loading
            delay 1
            if n < 5 then
                set n to n + 1
            else
                error "timed out"
            end if
        end repeat
    end tell
end tell

set the clipboard to "apple" # apple をクリップボードにコピー

# コマンド+V、リターン
tell application "System Events"
    tell process "Google Chrome"
        set frontmost to true
        keystroke "v" using {command down} # command + v
        delay 0.5
        keystroke return # return
        delay 0.5
    end tell
end tell


2022/02/10 22:01 Hiro__S への返信

Hiro.S さん、大変遅くなりまして申し訳ございません。

すべて正しく動作いたしました。

いただいたコードをもとに勉強して、より高度なステップに進みたいと思います。


個人的な実用のためのアプリですので、

とりあえずGoogleスプレッドシートの部分はキーボードのエミュレートのみで試みたいと思います。

しかしお詳しい方としては「Google Apps Scriptと組み合わせるべき」とのことで、

必要な場合はそちらに進むように予定しておきたいと思います。


大変ありがとうございました。ぜひまたよろしくお願いできればと存じます。

2022/02/02 07:06 Hiro__S への返信

いつもありがとうございます。

Google Apps Scriptと組み合わせですか。

工程の1(開いているChromeのタブのURLを検索して見つけたらアクティブにする)

だけクリアできれば、

あとはキーボード操作のエミュレート

(Googleスプレッドシートのショートカット操作を利用するなどして)

でもいける気がしているのですが…

このスレッドはシステム、またはAppleコミュニティチームによってロックされました。 問題解決の参考になる情報であれば、どの投稿にでも投票いただけます。またコミュニティで他の回答を検索することもできます。

AutomatorでGoogleスプレッドシートの特定セルにクリップボードの値を貼り付けるには?

Apple サポートコミュニティへようこそ
Apple ユーザ同士でお使いの製品について助け合うフォーラムです。Apple Account を使ってご参加ください。