質問編集履歴

4

エラーについて追記

2022/12/15 03:01

投稿

karasu124
karasu124

スコア11

test CHANGED
File without changes
test CHANGED
@@ -59,3 +59,80 @@
59
59
  }
60
60
 
61
61
  ```
62
+
63
+
64
+ ◎2022/12/15追記
65
+
66
+ いろいろとお教えいただき修正をさせていただいておりますがエラーが出てしまっているのかスプレッドシートに反映がされない状態です……。
67
+
68
+ ![イメージ説明](https://ddjkaamml8q8x.cloudfront.net/questions/2022-12-15/449e719e-dc55-4964-8ba1-73fb896ffdfb.png)
69
+
70
+ https://tetsuooo.net/gas/512/ のサイトさまのコードに、after:後、日付を手打ちで追加し、正常に拾ってくることが確認できているコードも記載させていただきます。↓
71
+
72
+ ```ここに言語を入力
73
+ コード
74
+
75
+ function myFunction(){
76
+
77
+ // 抽出条件指定
78
+ let query = 'subject:"お問い合わせ",after:2022/12/09';
79
+
80
+ //問合せごとの情報が要素になった二次元配列を取得
81
+ let gmail = getGmail(query);
82
+
83
+ // 書き込むシートを取得、アクティブシートを取得しているが任意のシートでOK
84
+ let sheet = SpreadsheetApp.getActive().getActiveSheet();
85
+
86
+ //要素ごとにappendRowメソッドを呼び出して最終行に書き込む繰り返し処理を実行
87
+ gmail.forEach(info => sheet.appendRow(info));
88
+
89
+ }
90
+
91
+
92
+ function getGmail(query) {
93
+
94
+ //Gmail取得ここから
95
+ //Gmailの履歴からマッチするメールを一覧化
96
+ let threads = GmailApp.search(query);
97
+
98
+ let gmailInfo = new Array();
99
+
100
+ //一覧化したメールの件数分繰り返し
101
+ threads.forEach(function(thread) {
102
+
103
+ // スレッド内のメール一覧を取得
104
+ let messages = thread.getMessages();
105
+
106
+ // メールを一つずつ取り出す
107
+ messages.forEach(function(message) {
108
+
109
+ // メール本文
110
+ let plainBody = message.getPlainBody();
111
+ // Logger.log(plainBody);
112
+
113
+ // 受付日
114
+ let date = plainBody.match(/受付日:(.*)/);
115
+ // Logger.log(data);
116
+
117
+ // 代表者・ご担当者様氏名
118
+ let name = plainBody.match(/代表者・ご担当者様氏名:(.*)/);
119
+ // Logger.log(name);
120
+
121
+ // 事業形態
122
+ let mail = plainBody.match(/事業形態:(.*)/);
123
+ // Logger.log(mail);
124
+
125
+ // 電話番号
126
+ let tel = plainBody.match(/電話番号:(.*)/);
127
+ // Logger.log(tel);
128
+
129
+ //各メール情報を組みとした二次元配列として格納
130
+ gmailInfo.push([date[1],name[1],mail[1],tel[1]]);
131
+
132
+ });
133
+ });
134
+
135
+ return(gmailInfo);
136
+ }
137
+
138
+ ```

3

日付指定の部分のみの質問へ変更

2022/12/14 02:44

投稿

karasu124
karasu124

スコア11

test CHANGED
@@ -1 +1 @@
1
- GAS(Google Apps Script)にてGmailをスプレッドシートに自動転記させたいです。
1
+ GAS(Google Apps Script)にて日付指定してGmailをスプレッドシートに自動転記させたいです。
test CHANGED
@@ -4,8 +4,7 @@
4
4
 
5
5
  ### 実現したいこと
6
6
 
7
- - [ ] 日付指定をしたいです(2022/12/12以降のデータを、など。以降のことが多いので、昨日取得したあとから最新情報を追加していく方法でもOK)。
8
- - [ ] A、Bと2つ違う種類のメールがあるため、スプレッドシート自体は同じで構わないのですが、シトは分け管理したいと考えております。
7
+ - [ ] スプレッドシートのセルに入力してる任意日付以降のメルを抽出しくるように日付指定をしたいす。
9
8
 
10
9
 
11
10
  ### 試したこと
@@ -60,23 +59,3 @@
60
59
  }
61
60
 
62
61
  ```
63
-
64
-
65
- また、実現したいこと にも記載いたしましたが、
66
- 似たようなお問い合わせメールがもう1種類あるため、
67
- こちらもデータを抽出してきたいと考えております。
68
- 同一スプレッドシートで管理したいため、シートのみ
69
- 分けて抽出できたらうれしいです。
70
-
71
- お手数おかけいたしますが、ご教示いただけましたら幸いです。
72
- 何卒よろしくお願い申し上げます。
73
-
74
-
75
- ◎現状↓
76
- ![イメージ説明](https://ddjkaamml8q8x.cloudfront.net/questions/2022-12-12/14258799-b0bd-4aae-8da4-aaa9b71b3dad.png)
77
-
78
-
79
- ◎理想↓
80
- ![イメージ説明](https://ddjkaamml8q8x.cloudfront.net/questions/2022-12-12/f7a33162-bc25-4907-bd6e-1b0da3c9814b.png)
81
-
82
-

2

日付のスクリプトに関して

2022/12/13 07:36

投稿

karasu124
karasu124

スコア11

test CHANGED
File without changes
test CHANGED
@@ -21,6 +21,47 @@
21
21
  と現在記入しておりますが、なにかほかに良い方法があればご教示いただきたく存じます。
22
22
 
23
23
 
24
+ ◎2022/12/13追記
25
+
26
+ スプレッドシートセルF2にて日付を記載し、そこから定義できたらと思っているのですが、文字通り取得してきてからの抽出条件指定の部分、「after:」への紐づけがよくわからず困っております。
27
+ また、シートを定義した場合、「書き込むシートを取得、アクティブシートを取得しているが任意のシートでOK」の部分も同じくシート名を定義させた方が間違いないでしょうか?
28
+ アドバイスいただけましたらうれしく思います。何卒よろしくお願い申し上げます。
29
+
30
+
31
+ ```ここに言語を入力
32
+ コード
33
+
34
+ function getValue() {
35
+ // スプレッドシート&シートオブジェクトを取得
36
+ const ss = SpreadsheetApp.getActiveSpreadsheet();
37
+ const sheet = ss.getSheetByName('抽出');
38
+
39
+ // F2セルを選択
40
+ var range = sheet.getRange('F2');
41
+ // セルの値を取得
42
+ var value = range.getDisplayValue();
43
+
44
+ }
45
+
46
+ function myFunction(){
47
+
48
+ // 抽出条件指定
49
+ let query = 'subject:"お問い合わせ",after:"F2"';
50
+
51
+ //問合せごとの情報が要素になった二次元配列を取得
52
+ let gmail = getGmail(query);
53
+
54
+ // 書き込むシートを取得、アクティブシートを取得しているが任意のシートでOK
55
+ let sheet = SpreadsheetApp.getActive().getActiveSheet();
56
+
57
+ //要素ごとにappendRowメソッドを呼び出して最終行に書き込む繰り返し処理を実行
58
+ gmail.forEach(info => sheet.appendRow(info));
59
+
60
+ }
61
+
62
+ ```
63
+
64
+
24
65
  また、実現したいこと にも記載いたしましたが、
25
66
  似たようなお問い合わせメールがもう1種類あるため、
26
67
  こちらもデータを抽出してきたいと考えております。

1

日付指定部分のコード記載

2022/12/12 06:23

投稿

karasu124
karasu124

スコア11

test CHANGED
File without changes
test CHANGED
@@ -14,6 +14,12 @@
14
14
 
15
15
  こちらのURLサイトを参考に作成してみました。
16
16
  毎度すべてのデータを拾ってきてしまうため、前回抽出してきたあと以降、もしくは日付指定ができたら、と考えております。
17
+
18
+ →// 抽出条件指定
19
+ let query = 'subject:"◎◎",after:2022/12/09';
20
+
21
+ と現在記入しておりますが、なにかほかに良い方法があればご教示いただきたく存じます。
22
+
17
23
 
18
24
  また、実現したいこと にも記載いたしましたが、
19
25
  似たようなお問い合わせメールがもう1種類あるため、