【GAS】シートのコピー、シート名の変更、文字列の置換 (Gスプレッドシート)

基礎講座

GAS基礎講座一覧

ご訪問ありがとうございます。

Googleシートマスターのひろしです。

前回

【GAS】入力が30倍早くなる スクリプトエディタ ショートカットキー
「旧エディタ」スクリプトエディタにおける入力作業が5倍程度早くなります。タイプミスによるエラーがほとんど無くなります。

今回は、とっても価値の高い方法をお伝えします。


これを知ることであなたは、

  • GASでシートをコピペする方法がわかります。
  • 文字列を置換する方法がわかります。
  • 元となるシートから作業用のシートが作成できます。


逆に、知らないと

毎回毎回、テンプレートをコピーして
シート名を変更して
日付を置換という
操作が延々続きます。

※さっきまでの私です。
家計簿→「入力が簡単すぎる家計簿の作成方法」

なので、サクッとGASを作ってください。

そして、

と、あなた自らがGASの啓蒙者となってください。

動画はこちら

【GAS34】テンプレシートからシートのコピペ、リネーム、位置の移動、文字列の置換

動画内は、ちょっとグダグダでしたが
下記のスクリプトで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における配列の定義方法がわかります。

GAS基礎講座一覧

コメント

タイトルとURLをコピーしました