1
複数のセル(A1:D5など)を選択し、onEdit(e)をトリガーするテキストを入力すると、選択範囲をどのように取得できますか?これらの関数(e.range、.getActiveRange、.getActiveSelection)は、新しいテキスト(A1)を持つ1つのセルだけを返します!onEditトリガーe.range選択全体ではなく1つのセル
function onEdit(e){
Logger.log('A1 Notation: ' + e.range.getA1Notation());
// Try workaround using getActiveSheet. Also fails within the onEdit function.
var sheet = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet();
var range = sheet.getActiveRange();
var selection = sheet.getActiveSelection();
Logger.log('getActiveRange A1 Notation: ' + range.getA1Notation());
Logger.log('getActiveSelection A1 Notation: ' + selection.getA1Notation());
}
テキストを入力する代わりに削除キーを押すと、範囲機能が期待通りに機能します(A1:D5)。
はい、範囲を削除する(または範囲に貼り付ける)と、範囲内のすべてのセルに影響するため、e.rangeが範囲全体を把握することは意味があります。 編集中の選択したセルの1つのみによってトリガされたonEdit(e)関数内からスプレッドシートの選択範囲を取得するにはどうすればよいですか? 私は部屋のスケジュールシートを自動化しています。部屋の行と時間の列に対応する範囲を選択し、イベント名を入力することで、シートからカレンダーイベントを直接作成できます。 –
制限事項:シンプルトリガーは、ユーザーに許可を求めることなく、自動的に起動するため、いくつかの制限があります。許可を必要とするサービスにアクセスすることはできません。たとえば、Gmailサービスでは認証が必要なため、簡単なトリガーでメールを送信することはできませんが、単純なトリガーでは匿名の言語サービスでフレーズを翻訳できます。 https://developers.google.com/apps-script/guides/triggers/イベントメカニックから脱出してください。範囲を選択し、カスタム関数を使用してこのタスクを実行してみてください。 –