teratail header banner
teratail header banner
質問するログイン新規登録

質問編集履歴

2

9/10 追記内容 の項目を追加致しました

2021/09/10 10:41

投稿

oimokorori
oimokorori

スコア1

title CHANGED
File without changes
body CHANGED
@@ -10,11 +10,132 @@
10
10
  ### 該当のソースコード
11
11
 
12
12
  ```ここに言語名を入力
13
+ function rennbann() {//管理番号付与
14
+ var mySheet2 = SpreadsheetApp.getActiveSheet(); //シートを取得
15
+
16
+ var range = mySheet2.getRange(mySheet2.getLastRow(),1);
17
+ if(range.isBlank() == true){
18
+ range.setValue("=ROW()-1");
19
+ }
20
+ }
21
+
22
+ function mMail() { //依頼メールを承認者へ送付
23
+ var mySheet = SpreadsheetApp.getActiveSheet(); //シートを取得
24
+ var myCell = mySheet.getActiveCell();
25
+ var row = myCell.getRow();
26
+
27
+ var email = mySheet.getRange(row, 3).getValue();
28
+ var tennpu =mySheet.getRange(row, 7).getValue();
29
+ var kannri =mySheet.getRange(row, 1).getValue();
30
+ var name = mySheet.getRange(row, 4).getValue();
31
+ var bumon = mySheet.getRange(row, 5).getValue();
32
+ var kinngaku =mySheet.getRange(row, 6).getValue();
33
+
34
+ var subject = '【交通費精算依頼】管理No.' + kannri + ")";
35
+ var body = "標記の件で、以下ご承認の程宜しくお願い致します\n\n" + "依頼者:" + name + "\n部門:" + bumon + "\n金額:" + kinngaku + "\n\n以上、宜しくお願い致します\n" + tennpu;
36
+
37
+ MailApp.sendEmail({to:email, subject:subject,body:body});
38
+ }
39
+
13
- JavaScript gas
40
+ function kaisi(){
41
+ rennbann();
42
+ mMail();
43
+
44
+ }
45
+ --------------------------------------------------------------
46
+ function showCheckboxInfo() { //承認者がチャックボックスを押下を確認
47
+ var mySheet = SpreadsheetApp.getActiveSheet(); //シートを取得
48
+ var myCell = mySheet.getActiveCell();
49
+ var rule = myCell.getDataValidation();
50
+ if (rule != null) {
51
+ var criteria = rule.getCriteriaType();
52
+ var status = myCell.getValue()
53
+ if ( criteria == 'CHECKBOX' && status == true) {
54
+ var row = myCell.getRow();
55
+ var result = Browser.msgBox('チェックボックスが押されました。メールを送信しますか?', Browser.Buttons.OK_CANCEL);
56
+ if(result == 'ok'){
57
+ sendMail(row);
58
+ } else if (result == 'cancel'){
59
+ mySheet.getRange(row,2).uncheck(); // チェックを外す
60
+ }
61
+ }
62
+ }
63
+ }
64
+
65
+ function sendMail(row) { //承認者がチェックボックスを押すとメール送信
66
+ var mySheet = SpreadsheetApp.getActiveSheet(); //シートを取得
67
+ var myCell = mySheet.getActiveCell();
68
+ var row = myCell.getRow();
69
+
70
+ var email = mySheet.getRange(row, 8).getValue();
71
+ var tennpu =mySheet.getRange(row, 7).getValue();
72
+ var kannri =mySheet.getRange(row, 1).getValue();
73
+
74
+ var subject = '【交通費精算依頼】管理No.' + kannri + ")";
75
+ var body = "標記の件で、承認致します\n" + tennpu;
76
+
77
+ MailApp.sendEmail({to:email, subject:subject,body:body});
78
+ }
79
+ --------------------------------------------------------------
80
+ function addCheckboxes() { //チェックボックスを追加
81
+ targetRange().insertCheckboxes();
82
+ }
83
+
84
+ function checked() {
85
+ targetRange().check();
86
+ }
87
+
88
+ function unchecked() {
89
+ targetRange().uncheck();
90
+ }
91
+
92
+ function remove() {
93
+ targetRange().removeCheckboxes();
94
+ }
95
+
96
+ function judge() {
97
+ var result = targetRange().isChecked();
98
+ Logger.log(result);
99
+ }
100
+
101
+ function targetRange() {
102
+ var sheet = SpreadsheetApp.getActiveSheet();
103
+ var lastRow = sheet.getLastRow();
104
+ var range = sheet.getRange('B2:B' + lastRow);
105
+ return range;
106
+ }
14
107
  ```
15
108
 
16
109
  ### 調べたこと
17
110
 
18
111
  Excelを一旦スプレッドシートに変更するなど、様々な方法を調べ検討しましたが、変換までしかできず、全く糸口が掴めず困っております。不可能なのか、可能であればサンプルコードを教えて頂けないでしょうか。
19
112
 
20
- 初投稿につき、至らない点などありましたら申し訳ございません。
113
+ 初投稿につき、至らない点などありましたら申し訳ございません。
114
+
115
+ ### 9/10 追記内容
116
+ ご指摘を踏まえ、やりたいことをもう少し詳細に記載します。
117
+ それに伴いコードも作成し、追記致しました。
118
+
119
+ ・申請内容は、1つ(「交通費精算の承認」)
120
+ ・承認者は1人(申請者がエクセル内にて指定)
121
+
122
+ 1.あらかじめフォーマットを決めた、交通費申請用のエクセル(E)を用意する。 
123
+ (例:B1セル;申請者のメールアドレス、B2:申請者部門名、B3:申請者名、B4セル:承認依頼先メールアドレス、B5セル:金額)
124
+  
125
+ 2.申請者は、Eに申請する内容を書き込み、Googleフォーム(F)からアップロードする。
126
+  
127
+ 3.回答を集計しているGoogleスプレッドシート(S)のFのコンテナバインドスクリプトは下記のような内容とする。(トリガー:フォームの送信時)
128
+
129
+ 回答(アップロード)されたEに対応するGoogleドライブURLを読み取り、
130
+ DriveAppサービスを使ってEをGoogleスプレッドシートに変換し、
131
+ 申請者のメールアドレス、申請者部門名、申請者名、承認依頼先メールアドレス、金額を取得し、(S)のEのリンクのある行に書き込む。
132
+ ※別シートの末尾行に書き込むでも大丈夫です
133
+ ・Sの1列目には管理NOとして連番1~を記載。2列目は承認用のチェックボックスを設置、残りの列は申請者のメールアドレス、申請者部門名、申請者名、承認依頼先メールアドレス、金額を記録する。
134
+  
135
+ 4.承認者は、Googleフォーム送信時にメールを自動受信、後にSを適当なタイミングで確認し、下記の作業を行う。
136
+
137
+ B列のチェックボックスのうち「未チェック」となっている行について、内容を確認する。
138
+ ・内容が妥当であればチェック入れる。
139
+ ・申請者へ承認完了の申請者のメールアドレス宛にメールが送信される。
140
+
141
+ 上記のうち、3の箇所をどのようにすればいいかわからず、どうかお力を頂けないでしょうか。

1

タグを追加致しました。

2021/09/10 10:40

投稿

oimokorori
oimokorori

スコア1

title CHANGED
File without changes
body CHANGED
File without changes