「労働者が自分の仕事をうまくやりたいなら、まず自分の道具を研ぎ澄まさなければなりません。」 - 孔子、「論語。陸霊公」
表紙 > プログラミング > 単一の Google スプレッドシート スクリプトで複数の onEdit 関数を組み合わせるにはどうすればよいですか?

単一の Google スプレッドシート スクリプトで複数の onEdit 関数を組み合わせるにはどうすればよいですか?

2024 年 11 月 7 日に公開
ブラウズ:355

How can I combine multiple onEdit functions in a single Google Sheets script?

複数の onEdit 関数のマージ

Google スプレッドシート スクリプトを作成するとき、さまざまな編集イベントを処理するために複数の onEdit 関数が必要になるシナリオが発生することがあります。ただし、1 つのスクリプトに同じ名前の 2 つの関数を含めることはできません。この競合を解決するには、次のアプローチを検討してください。

2 つの onEdit 関数をマージする

function onEdit(e) {
  onEdit1(e);
  onEdit2(e);
}

このマージされた関数では、

  • onEdit1(e) が元の onEdit 関数を置き換えます。
  • onEdit2(e) は onEdit ラッパー内の別の関数になります。

このアプローチにより、スプレッドシートで編集が行われるたびに両方の関数が確実に実行されます。ただし、条件付きステートメントを使用して、それぞれの関数に設定された条件に基づいて特定のアクションを実行することはできます。

1 つの関数が依存ドロップダウン リスト (onEdit1) を管理し、もう 1 つは、チェックボックスの選択に基づいて行を追加します (onEdit2):

function onEdit(e) {
  if (e.range.columnStart === 4 && e.range.getValue() === true) {
    onEdit2(e);
  } else {
    onEdit1(e);
  }
}

function onEdit1(e) {
  // Dependent Dropdown List functionality
}

function onEdit2(e) {
  // Add row by checkbox functionality
}

このスクリプトでは、マージされた onEdit 関数は、列 4 で true 値 (チェックボックスがオン) で編集が行われたかどうかをチェックします。そうであれば、onEdit2 関数を呼び出します。それ以外の場合は、onEdit1 関数が呼び出されます。

追加リソース

詳細については、次のリソースを参照してください:

  • [Two OnEdit Functions Not Working Together] (https://productforums.google.com/d/msg/docs/5uekCS3jX-c/qzr4GyqvBAAJ)
  • [複数の OnEdit 関数のベスト プラクティス](https://webapps.stackexchange.com/questions/) 101525/best-practices-for-multiple-onedits-functions)
  • [同じ Google スクリプトで複数の onEdit 関数を実行する方法](https://stackoverflow.com/questions/44046454/how-to- run-multiple-onedits-functions-in-the-同じgoogle-script-google-sheets)
最新のチュートリアル もっと>

免責事項: 提供されるすべてのリソースの一部はインターネットからのものです。お客様の著作権またはその他の権利および利益の侵害がある場合は、詳細な理由を説明し、著作権または権利および利益の証拠を提出して、電子メール [email protected] に送信してください。 できるだけ早く対応させていただきます。

Copyright© 2022 湘ICP备2022001581号-3