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

回答編集履歴

3

修正

2021/05/28 09:19

投稿

Tatsunosuke
Tatsunosuke

スコア599

answer CHANGED
@@ -7,7 +7,7 @@
7
7
  function myFunction(){
8
8
  // PDF出力するシートを指定
9
9
  const ss = SpreadsheetApp.getActiveSpreadsheet();
10
- const sheet = ss.getSheetByName('検索') //[todo] シート名を入れる。
10
+ const sheet = ss.getSheetByName('***') //[todo] シート名を入れる。
11
11
 
12
12
    //シート内の値を全てを取得
13
13
  var values = sheet.getDataRange().getValues()

2

修正

2021/05/28 09:19

投稿

Tatsunosuke
Tatsunosuke

スコア599

answer CHANGED
@@ -1,3 +1,49 @@
1
+ 追記
2
+
3
+ 日付型に対応するのを忘れておりました。
4
+ 失礼いたしました。
5
+
6
+ ``` gas
7
+ function myFunction(){
8
+ // PDF出力するシートを指定
9
+ const ss = SpreadsheetApp.getActiveSpreadsheet();
10
+ const sheet = ss.getSheetByName('検索') //[todo] シート名を入れる。
11
+
12
+   //シート内の値を全てを取得
13
+ var values = sheet.getDataRange().getValues()
14
+
15
+ var startMonth = 5 //[todo] 抽出したい月を数字で入力する。
16
+ var nextMonth = startMonth == 12 ? 1: startMonth+1 //翌月
17
+ startMonth +="月度"
18
+ nextMonth += "月度"
19
+
20
+ var [startRow,endRow,column] = [0,0,0] //該当範囲の開始行と終了行と最終列用の変数
21
+   //取得したシートの値を確認する。
22
+ for(var i in values){
23
+ if(String(values[i][0]).match(new RegExp(startMonth))){ //開始する月が入っているセルを確認 今回だと"A5
24
+ startRow = Number(i)+1 //i は0スタートなので+1
25
+ }else if(String(values[i][0]).match(new RegExp(nextMonth))){ //次月が入っているセルを確認 今回だと"A37"
26
+ endRow = i //こちらは該当する行のひとつ前の行の番号が欲しいのでプラスしない。
27
+ }
28
+
29
+ //開始行と終了行が取得できたら。
30
+ if(startRow != 0 && endRow!=0){
31
+ //終了列を取得
32
+ column = values[i].length
33
+ //for文終了
34
+ break;
35
+ }
36
+ }
37
+
38
+ console.log("開始行 : "+startRow)
39
+ console.log("終了行 : "+endRow)
40
+ console.log("最終列 : "+column)
41
+ }
42
+ ```
43
+
44
+
45
+ ---
46
+
1
47
  これで必要な範囲が取得できます。
2
48
  これを元にPDFを出力してみてはいかがでしょうか?
3
49
 

1

追記

2021/05/28 09:19

投稿

Tatsunosuke
Tatsunosuke

スコア599

answer CHANGED
@@ -23,7 +23,7 @@
23
23
    //取得したシートの値を確認する。
24
24
  for(var i in values){
25
25
  if(values[i][0].match(new RegExp(startMonth))){ //開始する月が入っているセルを確認 今回だと"A5"
26
- startRow = i+1 //i は0スタートなので+1
26
+ startRow = Number(i)+1 //i は0スタートなので+1
27
27
  }else if(values[i][0].match(new RegExp(nextMonth))){ //次月が入っているセルを確認 今回だと"A37"
28
28
  endRow = i //こちらは該当する行のひとつ前の行の番号が欲しいのでプラスしない。
29
29
  }
@@ -31,7 +31,7 @@
31
31
  //開始行と終了行が取得できたら。
32
32
  if(startRow != 0 && endRow!=0){
33
33
  //終了列を取得
34
- column = values[i][0].length
34
+ column = values[i].length
35
35
  //for文終了
36
36
  break;
37
37
  }