- 画像に割り当てたはずのスクリプト設定が消える
という問題が頻発するようになり(一時的なバグかも知れませんが)、どうしたものかと考えた結果が今回の記事内容です。表題のとおり画像へのスクリプト割当は、GAS上で動的に設定できるようです。(画像の配置もGASでできるようです)
注意点:画像は挿入したものにする
Sheet上にボタン代わりの画像を置く時、【図形描画】アプリを使って画像を作成するのがラクですが、この方法だとSheet上の画像を認識することができないためダメです。つまり、
- ボタンとなる画像をファイルとして作成しておく
- Sheetに画像挿入のよりその画像ファイルを置く
となります。この手順を踏むことで、画像がGoogle Driveに格納されてidを持ち、GASで扱えるようになるのでしょう。なお、複数の画像を配置した場合、どのオブジェクトがどの画像かの特定する必要があるので、代替テキストの情報を利用するといいでしょう。
下記のサンプルは、画像にtestというメソッドを割り当てています。
下記のサンプルは、画像にtestというメソッドを割り当てています。
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
function assignScriptToImage() { | |
var sheet = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet(); | |
var images =sheet.getImages(); | |
images[0].assignScript("test"); | |
} | |
function test(){ | |
Browser.msgBox("aaa"); | |
} |
>画像かの特定する必要があるので、代替テキストの情報を利用するといいでしょう。 代替テキストを設定できたのですが、割り当てたfunctionから取得する方法がわかりませんでした。ご存じでしたら教えてください。
返信削除
削除新しく記事を書きました。
https://ochi-lab.blogspot.com/2023/06/gas-googlesheet.html