ご訪問ありがとうございます。
Googleシートマスターのひろしです。
前回
【GAS】入力が30倍早くなる スクリプトエディタ ショートカットキー
「旧エディタ」スクリプトエディタにおける入力作業が5倍程度早くなります。タイプミスによるエラーがほとんど無くなります。
今回は、とっても価値の高い方法をお伝えします。
これを知ることであなたは、
- GASでシートをコピペする方法がわかります。
- 文字列を置換する方法がわかります。
- 元となるシートから作業用のシートが作成できます。
逆に、知らないと
毎回毎回、テンプレートをコピーして
シート名を変更して
日付を置換という
操作が延々続きます。
※さっきまでの私です。
家計簿→「入力が簡単すぎる家計簿の作成方法」
なので、サクッとGASを作ってください。
そして、
と、あなた自らがGASの啓蒙者となってください。
動画はこちら
動画内は、ちょっとグダグダでしたが
下記のスクリプトでOKです。
スクリプト
const BASE_REP_STR = '2021/07' //置換元の文字列
const REP_YEAR = '2021' //置換後の年
function makesheet() {
const ss = SpreadsheetApp.getActiveSpreadsheet();
let date = ss.getActiveSheet().getRange("I2").getValue()
console.log(date)
console.log(date.getMonth() + 1)
let nsname = (date.getMonth() + 1) + "月"
console.log(nsname)
sheetCopy(date.getMonth() + 1)
}
function sheetCopy(nmonth) {
//スクリプトに紐付いたスプレッドシートを読み込む
const ss = SpreadsheetApp.getActiveSpreadsheet()
//アクティブなシートをコピー対象のシートとして読み込む
let baseSheet = ss.getActiveSheet();
//コピー対象シートを同一のスプレッドシートにコピー
let newsheet = baseSheet.copyTo(ss);
//シートのリネーム
newsheet.setName(nmonth + "月");
//シートを移動
ss.setActiveSheet(newsheet);
ss.moveActiveSheet(2);
//文字列の置換
let textFinder = newsheet.createTextFinder(BASE_REP_STR)
let repmonth = REP_YEAR + nmonth
textFinder.replaceAllWith(repmonth);
}
ポイント
シートのコピー
let newsheet = baseSheet.copyTo(ss);
ベースとなるシートをコピーします。
シート名の変更
newsheet.setName("シート名")
シート名を変更します。
文字列置換
createTextFinder("置換する文字列")
なるものを使い
replaceAllWith
することで一気に置換できます。
例)
ss.createTextFinder("置換する文字列").textFinder.replaceAllWith("置換後の文字列")
最後までご覧いただきありがとうございます。
つぎはこちら
【GAS基礎講座 7.】2次元配列のコピペ getvalues、setvalues
GAS(Google Apps Script)で配列をコピペすることができるようになります。
GASにおける配列の定義方法がわかります。
コメント