回答編集履歴

3

修正

2021/05/28 09:19

投稿

Tatsunosuke
Tatsunosuke

スコア599

test CHANGED
@@ -16,7 +16,7 @@
16
16
 
17
17
  const ss = SpreadsheetApp.getActiveSpreadsheet();
18
18
 
19
- const sheet = ss.getSheetByName('検索') //[todo] シート名を入れる。
19
+ const sheet = ss.getSheetByName('***') //[todo] シート名を入れる。
20
20
 
21
21
 
22
22
 

2

修正

2021/05/28 09:19

投稿

Tatsunosuke
Tatsunosuke

スコア599

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

1

追記

2021/05/28 09:19

投稿

Tatsunosuke
Tatsunosuke

スコア599

test CHANGED
@@ -48,7 +48,7 @@
48
48
 
49
49
  if(values[i][0].match(new RegExp(startMonth))){ //開始する月が入っているセルを確認 今回だと"A5"
50
50
 
51
- startRow = i+1 //i は0スタートなので+1
51
+ startRow = Number(i)+1 //i は0スタートなので+1
52
52
 
53
53
  }else if(values[i][0].match(new RegExp(nextMonth))){ //次月が入っているセルを確認 今回だと"A37"
54
54
 
@@ -64,7 +64,7 @@
64
64
 
65
65
  //終了列を取得
66
66
 
67
- column = values[i][0].length
67
+ column = values[i].length
68
68
 
69
69
  //for文終了
70
70