前提・実現したいこと
GASの実行時間の関係上、シート呼び出し回数を減らしたい→メモ化
Google App Script(JavaScript)で、シート情報のメモ化を行う関数を一つにまとめたい
以下よりいいアイデアがないか、探しています
発生している問題・エラーメッセージ
メモ化までは実装できたが、関数をまとめるところができていない
該当のソースコード
// シートのメモ化 ※nはシートのIndex番号
function mySheetMemo(){
if(!mySheetMemo.memos){
memoSheetMemo.memos = SpreadsheetApp.getActive().getSheets()[n];
}
return mySheetMemo.memos;
}
現在、これを複数の関数として生成しています
(function mySheetMemo1,mySheetMemo2,mySheetMemo3...)
シート番号を引数として渡すことで関数を統一できないか知りたいです
function mySheetMemo(n){}
考えたこと
グローバル変数 global_sheetmemo[]を生成し、配列内にシートメモ情報を格納する
初回呼び出しでシート数を取得し、mySheetMemoのif判定に使用する
※存在しないシート番号は処理できないように防止
onOpen(){
let sheet_max = SpreadsheetApp.getActive().getNumSheets();
global_sheetmemo = Array(sheet_max);
}
補足情報(FW/ツールのバージョンなど)
GAS環境でHTMLファイルと通信し、サイドバーで視覚的に操作を行うため、呼び出し回数が増えることが予想される
[経験]
JavaScript(GAS)3ヵ月
C++(C言語)12ヵ月
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2021/12/22 17:05