スプレッドシートでの関数の置き換えを、Google Apps Script を利用して実行する方法をご紹介したいと思います。ちなみに、文字列内も併せて検索と置換を行います。
目次
したいこと
①スプレッドシート内を検索
②検索後の文字を置き換え
③数式内も検索にチェックを入れて関数も対象にする
④置き換えを実行
上記の内容をスクリプト上で同じようにプログラムで実行します。
コードと解説
まず下準備として、スプレッドシート内A列に「B列を参照する関数」を設置します。
C列には置き換え後の参照先として、「置換1」など適当なテキストを入れておきます。
function myFunction() {
var targetSheet = SpreadsheetApp.getActiveSheet();
var finder = targetSheet.createTextFinder("B")
.matchFormulaText(true);
var cnt = finder.replaceAllWith("C");
SpreadsheetApp.getUi().alert(cnt + "件置換しました。");
}
上記のコードをスプレッドシートのツールバー → 拡張機能 → Apps Script へ記述し、実行してください。
記述場所が分からない方はコチラ→https://yukeblog.org/blog/gas1/
実行したら許可が必要になった方はコチラ→https://yukeblog.org/blog/gas2/
すると以下のように数式内のBをCに変換することによって、参照先のセルを置換できます。
【解説】
function myFunction() { は実行用のデフォルトで設置されているコードです。
var targetSheet = SpreadsheetApp.getActiveSheet(); シート全体を検索しています。
var finder = targetSheet.createTextFinder(“B”) シート内にある「B」という文字列を検索しています。
.matchFormulaText(true); 追加で「数式内の検索」をオプションで追加しています。
var cnt = finder.replaceAllWith(“C”); リプレイスで検索した「B」に対して。「C」に変換しなさいと命令しています。
SpreadsheetApp.getUi().alert(cnt + “件置換しました。”); ポップアップで対象が何件あったかを表示しています。
説明は以上です。
いかがでしたでしょうか?なにか不明点や追加でしたいことなどありましたら、以下フォームよりお問い合わせください。
またね(‘ω’)
当ゆけブログでは、バナーデザインやデザイン講座、その他の相談を随時受け付けています!お気軽にご相談ください!