質問編集履歴
6
解決方法を追記した。
test
CHANGED
File without changes
|
test
CHANGED
@@ -39,3 +39,115 @@
|
|
39
39
|
先に書かないといけなかったのですが、忘れていたので追記します。
|
40
40
|
|
41
41
|
Excelのタグを付けていますが、当方スプレッドシートを使っています。
|
42
|
+
|
43
|
+
|
44
|
+
|
45
|
+
**~解決後のまとめ~**
|
46
|
+
|
47
|
+
---
|
48
|
+
|
49
|
+
ttyp03さんの回答を参考に解決しましたので、まとめておきます!
|
50
|
+
|
51
|
+
|
52
|
+
|
53
|
+
---
|
54
|
+
|
55
|
+
|
56
|
+
|
57
|
+
「GAS スプレッドシート 1が入力されたら」で検索したところ、
|
58
|
+
|
59
|
+
参考になりそうな記事を見つけまして(下記参照)、
|
60
|
+
|
61
|
+
それをカスタマイズ?してみたところ、ななんと、うまくいきました。
|
62
|
+
|
63
|
+
なので、ご報告に上がりました。
|
64
|
+
|
65
|
+
|
66
|
+
|
67
|
+
もうひとつ、別のスクリプトから、
|
68
|
+
|
69
|
+
「右隣にアクティブセルを移動する」という要素もお借りして、
|
70
|
+
|
71
|
+
|
72
|
+
|
73
|
+
「変更のあったセルの値が1だったときに、
|
74
|
+
|
75
|
+
変更のあったセルのある行の1行下の2列目のセルに0を入力し、
|
76
|
+
|
77
|
+
右隣のセルにアクティブセルを移動。」
|
78
|
+
|
79
|
+
という内容にしてみました。
|
80
|
+
|
81
|
+
|
82
|
+
|
83
|
+
### 完成形
|
84
|
+
|
85
|
+
```javaScript
|
86
|
+
|
87
|
+
// シートに変更があった時に実行する関数
|
88
|
+
|
89
|
+
function onEditEvent() {
|
90
|
+
|
91
|
+
// 変更のあったシート
|
92
|
+
|
93
|
+
var ss = SpreadsheetApp.getActiveSpreadsheet();
|
94
|
+
|
95
|
+
var sh = ss.getActiveSheet();
|
96
|
+
|
97
|
+
// 変更のあったセル
|
98
|
+
|
99
|
+
var cell = ss.getActiveRange();
|
100
|
+
|
101
|
+
// 変更のあったセルの値
|
102
|
+
|
103
|
+
var val = cell.getValue();
|
104
|
+
|
105
|
+
// 変更のあったセルの値が1だった時に
|
106
|
+
|
107
|
+
if( ( val == 1 ) ) {
|
108
|
+
|
109
|
+
// 変更のあったセルの有る行番号
|
110
|
+
|
111
|
+
var r = cell.getRow();
|
112
|
+
|
113
|
+
// 変更のあったセルの有る行の下の行の2列目を選択
|
114
|
+
|
115
|
+
var rowRange = sh.getRange(r+1, 2);
|
116
|
+
|
117
|
+
rowRange.setValue(0).offset(0, 1).activate() ;
|
118
|
+
|
119
|
+
}
|
120
|
+
|
121
|
+
}
|
122
|
+
|
123
|
+
```
|
124
|
+
|
125
|
+
|
126
|
+
|
127
|
+
### 【ありがたい参考記事】
|
128
|
+
|
129
|
+
・[https://teratail.com/questions/118993](https://teratail.com/questions/118993)
|
130
|
+
|
131
|
+
当記事です。希望を実現するにはスクリプトが必要ということがわかりました。
|
132
|
+
|
133
|
+
・[http://chaika.hatenablog.com/entry/2015/09/03/143622](http://chaika.hatenablog.com/entry/2015/09/03/143622)
|
134
|
+
|
135
|
+
セルに特定の値を入力したら処理を行う方法を参考にしました。
|
136
|
+
|
137
|
+
スクリプトのベースはこちらの方のもの。
|
138
|
+
|
139
|
+
・[http://www.relief.jp/docs/google-spreadsheet-gas-offset.html](http://www.relief.jp/docs/google-spreadsheet-gas-offset.html)
|
140
|
+
|
141
|
+
アクティブセルを隣に移動する方法を参考にしました。
|
142
|
+
|
143
|
+
|
144
|
+
|
145
|
+
これまで、解決した際、参考記事のことについては書いていなかったのですが、
|
146
|
+
|
147
|
+
自分のためにもみんなのためにも書くべきかもしれないと思ったので、
|
148
|
+
|
149
|
+
これからは可能な限り書いていこうと思いました。
|
150
|
+
|
151
|
+
これまでした質問についても、ちょっと遡って、参考記事を追記してみようと思います。
|
152
|
+
|
153
|
+
ただ、どこまで追えるかわかりませんが…。
|
5
Excelタグの削除
test
CHANGED
File without changes
|
test
CHANGED
File without changes
|
4
GASを使う必要がありそうなので、タグを追加。
test
CHANGED
File without changes
|
test
CHANGED
File without changes
|
3
空白の削除
test
CHANGED
File without changes
|
test
CHANGED
@@ -28,7 +28,7 @@
|
|
28
28
|
|
29
29
|
### 追記(現状)
|
30
30
|
|
31
|
-
右端の値は```=INDEX(B2:K2,MATCH(MAX(B2:K2)+1,B2:K2,1)```で取得できるとあったので、これを使って、```=IF(INDEX(B2:K2,MATCH(MAX(B2:K2)+1,B2:K2,1))=1,B3=0,INDEX(B2:K2,MATCH(
|
31
|
+
右端の値は```=INDEX(B2:K2,MATCH(MAX(B2:K2)+1,B2:K2,1)```で取得できるとあったので、これを使って、```=IF(INDEX(B2:K2,MATCH(MAX(B2:K2)+1,B2:K2,1))=1,B3=0,INDEX(B2:K2,MATCH(MAX(B2:K2)+1,B2:K2,1)))```
|
32
32
|
|
33
33
|
みたいなことまでは考えました。B3というのは、行を変えた先を想定しています。
|
34
34
|
|
2
追記
test
CHANGED
File without changes
|
test
CHANGED
@@ -31,3 +31,11 @@
|
|
31
31
|
右端の値は```=INDEX(B2:K2,MATCH(MAX(B2:K2)+1,B2:K2,1)```で取得できるとあったので、これを使って、```=IF(INDEX(B2:K2,MATCH(MAX(B2:K2)+1,B2:K2,1))=1,B3=0,INDEX(B2:K2,MATCH( MAX(B2:K2)+1,B2:K2,1)))```
|
32
32
|
|
33
33
|
みたいなことまでは考えました。B3というのは、行を変えた先を想定しています。
|
34
|
+
|
35
|
+
|
36
|
+
|
37
|
+
### 追記2
|
38
|
+
|
39
|
+
先に書かないといけなかったのですが、忘れていたので追記します。
|
40
|
+
|
41
|
+
Excelのタグを付けていますが、当方スプレッドシートを使っています。
|
1
現状を追記。
test
CHANGED
File without changes
|
test
CHANGED
@@ -23,3 +23,11 @@
|
|
23
23
|
でも、なんか自動化できそうな気もするので、こちらで尋ねてから判断しようと思いました。
|
24
24
|
|
25
25
|
可能でしたら、アイデアをいただけると嬉しいです。
|
26
|
+
|
27
|
+
|
28
|
+
|
29
|
+
### 追記(現状)
|
30
|
+
|
31
|
+
右端の値は```=INDEX(B2:K2,MATCH(MAX(B2:K2)+1,B2:K2,1)```で取得できるとあったので、これを使って、```=IF(INDEX(B2:K2,MATCH(MAX(B2:K2)+1,B2:K2,1))=1,B3=0,INDEX(B2:K2,MATCH( MAX(B2:K2)+1,B2:K2,1)))```
|
32
|
+
|
33
|
+
みたいなことまでは考えました。B3というのは、行を変えた先を想定しています。
|