サイトアイコン Googleスプレッドシート 完全攻略

【GAS30】指定した文字列をすべて置換する方法 replace

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

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

前回の動画

【GAS】ワンクリックで今日の日付に移動する方法(Gスプレッドシート)
GASでテキストの検索方法がわかります。 一つのセルで1年分の日付を表示させることができます。

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

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


逆に、知らないと

GAS内でreplace関数を使っても

あなた:「あれ? 先頭しか置換されていない」

って、事になってしまいます。

これは、実際に私に起ったことです。

「【初心者向け】Googleフォームでいきなり返信メールを送れるようになる方法」

を見ながら実際に、自分自身のフォームの設定をしました。

でも、残念ながら%name%が置換されずに送信されてしまうのです。

ひろし:「えええーーー、あかんやん」

というわけで、重い腰を起こし、修正作業に取り組みました。

では、動画をご覧ください。

 

スクリプトはこちらです。

※確認は、Console.logで行ってください。

//★スプレッドシートのID URLのユニークな長い部分
const FORMAT_SHEET_ID = "XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX"

//★設定項目が記載してあるシートの名称
const FORMAT_SHEET_NAME = "返信メールフォーマット"


function test() {

  let message = '';
  let username = '';

  const ss = SpreadsheetApp.openById(FORMAT_SHEET_ID)
  const sheet = ss.getSheetByName(FORMAT_SHEET_NAME)

  //スプレッドシートから設定内容を取得する
  let SendInfobuf = sheet.getRange(1, 1, 11, 3).getValues()

  const Cchk = 0  //チェックボックスの値の位置
  const Clmv = 2  //項目の値の位置

  const Lsubject = 0    // 件名
  const Lcontents = 1   // 本文
  const Lfromadder = 2  // 送信元メールアドレス
  const Lfromname = 3   // 送信元名前
  const Latendmadder = 4  // 通知先メールアドレス
  const Latendsubject = 5 // 通知先への件名
  const Latendcontents = 6 // 通知先への本文
  const Lmailaddercaption = 9 // フォーム上のメールアドレスのキャプション
  const Lnamecaption = 10 //フォーム上の名前のキャプション

  //フォーム内の名称
  const ITEM_MAILADDRESS = SendInfobuf[Lmailaddercaption][Clmv]//メールアドレス"
  const ITEM_NAME_TITLE = SendInfobuf[Lnamecaption][Clmv]//お名前(ニックネーム可)


  username = "ひろし君"

  //返信メールの作成
  let subject = SendInfobuf[Lsubject][Clmv]//件名の取得
  let contents = SendInfobuf[Lcontents][Clmv] //本文の取得


  let result = contents //初期値を代入

  do {

    contents = result //結果を代入
    result = contents.replace("%name%", username);//%name%を置換する

    console.log(result)
  } while (result !== contents)

}

 

マインドセットします。

マインドセット
ちょっとガンバれば修正できる
これは、私自身に言っているのですが、
ぶっちゃけ、GASの修正は面倒くさいです。

 

一旦、始めてしまえば、なんてこと無いのですが
やるまでにちょっと時間がかかります。

 

正直、ブログに書こうと思わなければ、まだ
修正していないと思います。

 

ようは、一歩踏み出せば、できちゃうってことです。

では、今回のGoogleシートマスターへの究極の方法です。

Step1.
GASの画面を開く

Step2.

コピペしてデバッグできるロジックに変更する

Step3.

Console.log()を組み込む

Step4.

replace()関数を試してみる

では、早速GASの画面を開いてください。
今すぐです。

最後までご覧いただきありがとうございます。

つぎはこちら

【GAS】手軽にシート名を取得する方法 GETSHEETNAME (Gスプレッドシート)
残念ながら、スプレッドシートでは、 CELL関数で"filename"がサポートされていません。 なのでスプレッドシートは、GASを使用しないと シート名を取得する事ができないのです。

 

モバイルバージョンを終了