条件に合う人だけGメールの下書きを作る【GAS🎨】
こんにちは!
パソコンインストラクター歴12年の
チサです。(*´∀`)
今日は
先日、鰹塾🐟(GASの塾です)で
教えてもらったばかりの
GAS🎨の復習をします。
塾長の
出戻りガツオ🐟さんのnoteはこちら👇
鰹塾🐟で
いつも楽しくお勉強させてもらってて
最近は
自力で書いてみよう❣️と思えるくらい
GAS🎨に対して苦手意識がなくなってきて
めっちゃうれしいです!
ヽ(´▽`)/
塾長🐟
いつもありがとうございます😊
(*ᴗˬᴗ)⁾⁾⁾
さてさて!
今日はどんなことをやるのかというと。。
条件に合う人だけ
Gメールの下書きを作る!
っていうことを
したいと思います‼️
具体的に
やりたいのはこんなこと
こんなスプレッドシートがあるとして👇
この名簿の
🍓クラスの人だけに📩を送りたい。
(今回の場合だと
チサちゃん、ひろくん、ミワちゃんの3名)
メールの
件名と本文は
このひな形を使います👇
A1セル…件名
A2セル…本文
本文の
★名前★ の部分は
実際のお名前に置き換えたい!
( ゚ー゚)ウ ( 。_。)ン
こんな感じ👇
こんなことを
やってみたいと思います!
(о´∀`о)
で!
さっそくだけど
完成したコードはこちら👇
function mailSitagaki() {
// 名簿データの取得
const shData = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("名簿");
const values = shData.getDataRange().getValues();
//メールのひな形取得
const shHina = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("ひな形");
const title = shHina.getRange('A1').getValue();
for (let value of values) {
// 🍓組の人だけメールの下書きを作る
if (value[2] == '🍓') {
let body = shHina.getRange('A2').getValue();
//bodyの名前の部分を置換
body = body.replace(/★名前★/g, value[1]);
GmailApp.createDraft(value[3], title, body);
}
}
}
書く上で工夫したのは
次の2点!
❶ For文の作り方
❷ replace関数を使った複数置換
詳しく説明しますね!
❶ For文の作り方
先日、
同じ鰹塾🐟の塾生の
aliceさんのツイートを見て
新たな✨For文の書き方を知り👇
早速
マネをさせていただきました!😁
いつもなら
こんな風に書くところを👇
for (let i = 0; i < values.length; i++) {
if (values[i][2]=='🍓'){
// 処理
}
}
こんな感じに
短く!すっきり書けた!👇
for (let value of values) {
if (value[2] == '🍓') {
// 処理
}
}
こんなふうに書くと
values(二次元配列)から
value(一次元配列)を
繰り返し取り出せる🎵
配列って何⁉𖦹 ̫ 𖦹
って方はこちらも参考に👇
で!
ためしにこんなコードを書いて
valueには
一体、何が入っているのか?
確認してみると👇
for (let value of values) {
console.log(value)
}
👆これを実行すると…👇
今回は
一次元配列にしても
問題なさげなので!
見た目もスッキリな✨
こちらの書き方で書いてみました。
aliceさん♪ありがとう😊
❷ replace関数で複数置換
あとはもう一つ工夫したのは
replace関数を使うところ。
今回は
メールの2箇所
置き換えしたいところがあるんですが。。
普通にreplace関数を使うと
こう書くんですが👇
replace('置換したい文字','置換後の文字' )
これだと
最初の一つだけしか
置き換えてくれないんです💦
:( ;´꒳`;):ヒエッ
こんな感じ👇
そんなわけで
なんとかならないか?
あれこれググっていたら
replace(/置換したい文字/g,'置換後の文字' )
置き換えたい文字を
/(スラッシュ)でくくって
後ろに g をつける
こんな風に書くと
置換たい文字が何個あっても
ちゃんと全部置き換えしてくれるらしい🌈
ヽ( ´∀`)スバラシイ
で!
出来上がったのがこちら
function mailSitagaki() {
// 名簿データの取得
const shData = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("名簿");
const values = shData.getDataRange().getValues();
//メールのひな形取得
const shHina = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("ひな形");
const title = shHina.getRange('A1').getValue();
for (let value of values) {
// 🍓組の人だけメールの下書きを作る
if (value[2] == '🍓') {
let body = shHina.getRange('A2').getValue();
//bodyの名前の部分を置換
body = body.replace('★名前★', value[1]);
GmailApp.createDraft(value[3], title, body);
}
}
}
これを
実行すると…
いろいろ試行錯誤しながら
GAS🎨書くの
楽しかったです。
実務でもGmailは使うので
お仕事で使えるコードも
書いてみようと思います!
(* ॑꒳ ॑* )⋆*ワクワク
ではでは
またあした!
(´꒳`)/
新刊出版しました👇
Wordショートカット力試しドリル
あなたはショートカットだけで
どこまでやれる?
|д゚)チラ
この📕で修行すれば
マウスのドラッグ操作から解放されますよ✨
ヾ(o´∀`o)ノワァーィ♪
➊パソコンに関する📕 4冊
➋Kindle出版に関する📕 2冊
➌節約に関する📕 1冊
➍読書に関する📕 1冊
➎海外の方向けの📕 3冊
気になる本があれば
試し読みだけでも♪
(´▽`)
この記事が気に入ったらサポートをしてみませんか?