Googleドキュメントスプレッドシートの特定のセルにボタンを追加したいのですが。Apps ScriptのUIドキュメント では、新しいパネルを追加する方法について説明していますが、そのパネルのUIを特定の行またはセルにアタッチする方法は明確ではありません。
特定のセルにUIを追加することは可能ですか、それとも新しいパネルの追加に制限されていますか?
Googleドキュメントスプレッドシートの特定のセルにボタンを追加したいのですが。Apps ScriptのUIドキュメント では、新しいパネルを追加する方法について説明していますが、そのパネルのUIを特定の行またはセルにアタッチする方法は明確ではありません。
特定のセルにUIを追加することは可能ですか、それとも新しいパネルの追加に制限されていますか?
アプリのUIはパネルに対してのみ機能します。
あなたができる最善のことは、自分でボタンを描き、それをスプレッドシートに入れることです。あなたがそれにマクロを追加することができるより。
[挿入>描画...]に移動し、ボタンを描画してスプレッドシートに追加します。それをクリックして「マクロの割り当て...」をクリックするよりも、実行したい関数の名前をそこに挿入します。関数は、スプレッドシートのスクリプトで定義する必要があります。
または、ボタンを別の場所に描画して、画像として挿入することもできます。
詳細:https ://developers.google.com/apps-script/guides/menus
ボタン(図面、画像)をセル内に配置して、AppsScriptの機能にリンクできるようにする方法はないようです。
そうは言っても、実際にできることがいくつかあります。
を使用してセル内に画像を配置できますIMAGE(URL)
が、AppsScript関数にリンクすることはできません。
セル内に画像を配置し、以下を使用してそれらをURLにリンクできます。
=HYPERLINK("http://example.com"; IMAGE("http://example.com/myimage.png"; 1))
@Eduardoの回答で説明されているように図面を作成し、Apps Script関数にリンクすることができますが、それらはスプレッドシートの「上」に自由に浮かび、セルに配置できないスタンドアロンアイテムになります。セルからセルにコピーすることはできず、スクリプト関数が読み取ることができる行または列の位置がありません。
ボタンは、画像としてフリーズした行に追加できます。添付のスクリプト内の関数をボタンに割り当てると、関数を実行できるようになります。もちろんできないというコメントは非常に古いコメントであり、おそらく今は状況が変わっています。
ボタン/画像の代わりにチェックボックス(たとえば、F1)を使用します。これは、セル内の完全なuiの中間です。次に、関数をフックします。これは、ボタンをクリックしてonEdit()
関数をトリガーするときに実行されることになっています。
function onEdit(e){
const rg = e.range;
if(rg.getA1Notation() === "F1" && rg.isChecked() && rg.getSheet().getName() === "Sheet1"){
callFunctionAttachedToImage();
rg.uncheck();
}
}