#GoogleAppsScript
GoogleAppsScriptからのランダム再放送 #tegaki_dt #ume_v2_replay
September 26, 2026 at 10:16 PM
GoogleAppsScriptからのランダム再放送 #tegaki_dt #ume_v2_replay
September 25, 2026 at 10:16 PM
#GAS・GoogleAppsScriptの勉強 XX

getRangeやsetValueで
下記エラーになる場合が。
Exception: Service Spreadsheets failed while accessing document with id ~

これは
・insertSheet
・insertRowBefore等で,
シートや行・列の挿入or削除の直後
セルへのアクセスが失敗する。
https://stackoverflow.com/a/68...

対策として,前後で
SpreadsheetApp.flush();
するとよい。
September 25, 2026 at 10:02 AM
#GAS・GoogleAppsScriptの勉強 22

フィリピンの言語「ビコール語」(言語コードbik)
の翻訳について(2026年時点):

①
Google翻訳は翻訳可能

②
Googleスプレッドシートでセルに
=GOOGLETRANSLATE("こんにちは", "ja", "bik")
→エラーになる

③
GASのLanguageApp.translateも未対応

④
GASからGoogle Cloudの
Cloud Translation APIにアクセスすれば翻訳可能
https://docs.cloud.google.com/...
対応言語の一覧表
September 25, 2026 at 6:32 AM
#GAS・GoogleAppsScriptの勉強 21

Google翻訳で使える言語でも,
GASのLanguageApp.translate関数では
使えない場合がある。

例:
フィリピンの言語「ビコール語」は
Google翻訳でbikという言語コードで使用可能。

しかし,LanguageApp.translate関数で
bikという言語コードは
2026年時点では下記エラーに。
 Exception: Translation between the given languages is not currently supported.
September 24, 2026 at 10:32 PM
GoogleAppsScriptからのランダム再放送 #tegaki_dt #ume_v2_replay
September 24, 2026 at 10:16 PM
#GAS・GoogleAppsScriptの勉強 20

GASで翻訳の関数
LanguageApp.translate( "こんにちは。", "ja", "en" )

・1日およそ5千回呼び出せる。
(1時間で200回ぐらい)

・中国語のピンインのような,発音情報は取り出せない。

・第二・第三引数で
言語コードをtypoした場合,
下記の例外が発生する。
 Exception: Invalid argument: target
たとえばベトナム語の言語コード"vi"を
"vt"と書いていた,とか。
September 24, 2026 at 3:32 PM
#GAS・GoogleAppsScriptの勉強 19

GASでは,Google翻訳の機能と連携し
関数で文章を翻訳できる。

LanguageApp.translate( "こんにちは。", "ja", "en" )

→出力結果は,"Hello." となる。

第二・第三引数では
ja(日本語)の文字列を
en(英語)に翻訳する,と指定している。

他に言語コードの例:
中国語・簡体字 zh-CN
ドイツ語 de
フランス語 fr
スペイン語 es
ポルトガル語 pt
ベトナム語 vi
タガログ語 tl
ラテン語 la
など。
September 24, 2026 at 7:32 AM
#GAS・GoogleAppsScriptの勉強 18

GASからBlueskyに自動つぶやきする際,
投稿本文にfacetsを楽に付与するには。

下記の汎用的なライブラリを使えばよい。

「facets付与の汎用的なライブラリ。GASでBlueskyにbot投稿する時に使える便利関数。ぴったり千行のサンプルコード」
https://qiita.com/rwanda_go_ta...

投稿したい文字列の内容を自動的に分析し,
リンクやタグの位置を認識して
facetsのJSONを付与する仕組み。
BlueskyFacetsGenerator というオブジェクトになっている。
September 23, 2026 at 10:32 PM
GoogleAppsScriptからのランダム再放送 #tegaki_dt #ume_v2_replay
September 23, 2026 at 10:16 PM
#GAS・GoogleAppsScriptの勉強 17

GASからBlueskyに自動つぶやきする際,
投稿本文に
・ハイパーリンク
・ハッシュタグ
・メンション文字列
を含めるには。

「たった450行で,Googleスプレッドシートから自動投稿する時のfacetsの使い方が分かる」 ※概念を理解するためのサンプル
https://qiita.com/rwanda_go_ta...

セッション作成後,投稿文字列を送信する際
文字列と一緒に
facets(ファセッツ,装飾情報)をJSON内で送ればよい。
文字列内で装飾したい位置を指定する。
September 23, 2026 at 3:32 PM
#GAS・GoogleAppsScriptの勉強 16

GASからBlueskyに自動つぶやきするには。

「たった100行で,Blueskyにbot投稿するGASサンプルコード
(GoogleスプレッドシートからブルースカイAPIを無料で使う方法を理解する)」
https://qiita.com/rwanda_go_ta...

UrlFetchApp.fetchを2回呼べばよい。
HTTP通信を2回するということ。

①まずセッション作成し,アクセストークンをもらう。
②次に投稿したい文字列を送信する。この際に①で取得したアクセストークンも同時に送る。
September 23, 2026 at 6:32 AM
#GAS・GoogleAppsScriptの勉強 15

トリガ設定画面から
トリガを作成してあるとしよう。

その後,GASコード内で
UrlFetchAppを使用したいなと思って,
マニフェストファイル
(appsscript.json)を
編集したとする。

この場合,既存のトリガは動かなくなる。
そのトリガ設定を編集・更新してもダメ。
新たに別のトリガを作り直す必要がある。

つまり,「トリガの新規作成」という行為が
マニフェストファイルの権限読み込みと
密接に関わっていて切り離せない,ということ。
September 22, 2026 at 11:02 PM
GoogleAppsScriptからのランダム再放送 #tegaki_dt #ume_v2_replay
September 22, 2026 at 10:16 PM
#GAS・GoogleAppsScriptの勉強 14

GASでUrlFetchAppを使用する際に
マニフェストファイルの編集が
必要なのはなぜか。

appsscript.json 内の
oauthScopes の欄は…

・GASスクリプトが
Google Workspaceや
外部サービスへアクセスする際の
権限範囲(スコープ)を
明示・制限するための設定項目。

・UrlFetchApp で外部APIと
通信する際などに権限追記するほか,
用途に応じて必要なスコープを指定する。
September 22, 2026 at 4:03 PM
#GAS・GoogleAppsScriptの勉強 13

GASで外部リンクにアクセスするため
UrlFetchAppを使用するには。

GASエディタ上でマニフェストファイル
(appsscript.json)を開く。

"runtimeVersion": "V8"

という行がある。それを修正して

"runtimeVersion": "V8",
"oauthScopes": [
"https:// www.googleapis .com/auth/script.external_request"
]

として保存。(www. の前と .comの前のスペースは削除)
September 22, 2026 at 7:32 AM
#GAS・GoogleAppsScriptの勉強 12

GASで特定の関数を使いたい場合,
「マニフェストファイル」 が必要になる事がある。
その表示手順:

①GASエディタの左側サイドメニューで
歯車アイコン(プロジェクトの設定)を押す。

②「全般設定」の中にある
『「appsscript.json」マニフェストファイルを
エディタで表示する』
というチェックボックスをON。

③エディタに戻る。
左側のファイル一覧に
appsscript.json が追加されている。
これがマニフェストファイル。
September 22, 2026 at 12:03 AM
GoogleAppsScriptからのランダム再放送 #tegaki_dt #ume_v2_replay
September 21, 2026 at 10:16 PM
#GAS・GoogleAppsScriptの勉強 11

トリガ設定ダイアログ上の設定項目:

・「実行する関数を選択」
 → タイマー実行したい関数を選ぶ。

・「実行するデプロイを選択」
 → Head

・「イベントのソースを選択」
 → 時間主導型

・「時間ベースのトリガーのタイプを選択」
 → 分ベースのタイマーなど。

・「時間の間隔を選択(分)」
 → 15分おきなど。

・ダイアログ右上の「エラー通知設定」
 → 毎日通知を受け取る
September 21, 2026 at 5:03 PM
#GAS・GoogleAppsScriptの勉強 10

トリガー機能を使うと,
GAS上の特定の関数を
タイマーで定期的に呼び出して
繰り返し自動実行できる。

トリガの設定方法:

① GASエディタ上で,画面の左側の
目覚まし時計のアイコンをクリック。
トリガ一覧画面が開く。

② 右下の「トリガーを追加」を押し
トリガ内容の設定ダイアログを操作。
(実行したい関数を選んだりする)

③ ダイアログ右下の「保存」を押下すると
トリガが保存される。
September 21, 2026 at 7:32 AM
#GAS・GoogleAppsScriptの勉強 9

Date型データの文字列フォーマット方法
https://jp.tdsynnex.com/blog/g...

Utilities.formatDate(
new Date(),
"JST",
"yyyy-MM-dd (E) HH:mm:ss"
)
→ "2026-07-18 (Sat) 12:34:56"

GASでなく素のJSでも
( new Date() ).toLocaleString("ja-JP")
→ "2026/7/18 12:34:56"
September 21, 2026 at 12:03 AM
GoogleAppsScriptからのランダム再放送 #tegaki_dt #ume_v2_replay
September 20, 2026 at 10:16 PM
#GAS・GoogleAppsScriptの勉強 8

GmailApp.sendEmail でのメール送信

・1つのGmailアカウントあたり,全プロジェクトを合計して1日100通まで送信可能。

・1回のメール送信で複数のアドレスに送信した場合,宛先アドレスの個数の分だけメール送信回数が消費される。

https://auto-worker.com/blog/?...
September 20, 2026 at 5:02 PM
#GAS・GoogleAppsScriptの勉強 7

// メール送信
GmailApp.sendEmail(
"送信先メアド@メアド",
"メールの件名",
"メールの本文"
);

・初回実行時は権限確認のダイアログが表示される。
・第4引数には,CC, BCC, noReply, 送信者名などのオプションを指定可能。
https://tonari-it.com/gas-gmai...
September 20, 2026 at 9:33 AM