質問編集履歴

2

具体的に行いたい事を編集

2019/09/20 05:42

投稿

kei-kappa564
kei-kappa564

スコア19

test CHANGED
File without changes
test CHANGED
@@ -87,6 +87,8 @@
87
87
  スプレッドシートの"在庫台帳"シートにある特定のセルの内容をfunction zaiko()にて変数new_arrayにLISTで詰めており、
88
88
 
89
89
  このnew_arrayの値を別シート("過不足")にfunction test()で形を整え転記させようとしております。
90
+
91
+ new_arrayをfunction test()の中で使用する方法はございませんでしょうか。
90
92
 
91
93
  以下が汚いですが書き途中のコードとなっております。
92
94
 

1

具体的に行いたい事を追加

2019/09/20 05:42

投稿

kei-kappa564
kei-kappa564

スコア19

test CHANGED
File without changes
test CHANGED
@@ -66,7 +66,7 @@
66
66
 
67
67
 
68
68
 
69
- ### 補足情報(FW/ツールのバージョンなど)
69
+ ### 補足情報
70
70
 
71
71
 
72
72
 
@@ -74,4 +74,112 @@
74
74
 
75
75
  この他の方法で別functionにで変数を呼び出すことは可能でしょうか。
76
76
 
77
- 協力をお願いいたします。
77
+ 教授をお願いいたします。
78
+
79
+
80
+
81
+ ### 具体的に行いたい事
82
+
83
+ 説明や詳細が乏しくて申し訳ありません。
84
+
85
+ 具体的に行いたい事としましては、
86
+
87
+ スプレッドシートの"在庫台帳"シートにある特定のセルの内容をfunction zaiko()にて変数new_arrayにLISTで詰めており、
88
+
89
+ このnew_arrayの値を別シート("過不足")にfunction test()で形を整え転記させようとしております。
90
+
91
+ 以下が汚いですが書き途中のコードとなっております。
92
+
93
+
94
+
95
+ ```
96
+
97
+ function zaiko(){
98
+
99
+ // 対象シートを取得
100
+
101
+ var sheet = SpreadsheetApp.getActive().getSheetByName("在庫台帳");
102
+
103
+ // 最終の行数を取得
104
+
105
+ var range = sheet.getLastRow();
106
+
107
+ // アイテム行数をキャスト
108
+
109
+ var itemcastrange = "A" + String(range);
110
+
111
+ // 場所行数をキャスト
112
+
113
+ var placecastrange = "B" + String(range);
114
+
115
+ // 在庫行数をキャスト
116
+
117
+ var zaikocastrange = "D" + String(range);
118
+
119
+ // LIST作成
120
+
121
+ var array = [];
122
+
123
+ // アイテムを取得
124
+
125
+ var itemvalue = sheet.getRange("A2:" + itemcastrange).getValues();
126
+
127
+ // 場所を取得
128
+
129
+ var placevalue = sheet.getRange("B2:" + placecastrange).getValues();
130
+
131
+ // 在庫数を取得
132
+
133
+ var zaikovalue = sheet.getRange("D2:"+ zaikocastrange).getValues();
134
+
135
+ // LISTに集約
136
+
137
+ for(var i = 0;i < range;i++){
138
+
139
+ var count = 0;
140
+
141
+ if(itemvalue[i] == ""){
142
+
143
+ // アイテム+場所+数量
144
+
145
+ array[i] = itemvalue[count] + placevalue[i] + "/" + zaikovalue[i];
146
+
147
+ }
148
+
149
+ else{
150
+
151
+ // アイテム名がある行数
152
+
153
+ count = i;
154
+
155
+ }
156
+
157
+ }
158
+
159
+ // 空欄の配列を削除
160
+
161
+ var new_array = array.filter(function(x){
162
+
163
+ return !(x === "" || x === null || x === " ");
164
+
165
+ });
166
+
167
+ Browser.msgBox(new_array);
168
+
169
+ }
170
+
171
+
172
+
173
+ function test(){
174
+
175
+ // 対象シートを取得
176
+
177
+ var sheet = SpreadsheetApp.getActive().getSheetByName("過不足");
178
+
179
+ //
180
+
181
+ Browser.msgBox(new_array);
182
+
183
+ }
184
+
185
+ ```