回答編集履歴
8
test
CHANGED
@@ -11,9 +11,9 @@
|
|
11
11
|
コードのXXXXXの部分をBのIDで書き換えてから
|
12
12
|
実行してください
|
13
13
|
IDとは、Bのシートを開いた時のURL欄の
|
14
|
-
https://docs.google.com/spreadsheets/d/1XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX/edit?gid=0123456789
|
14
|
+
```https://docs.google.com/spreadsheets/d/1XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX/edit?gid=0123456789```
|
15
15
|
の
|
16
|
-
1XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
|
16
|
+
```1XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX```
|
17
17
|
の部分です
|
18
18
|
|
19
19
|
```JavaScript
|
7
test
CHANGED
@@ -10,7 +10,11 @@
|
|
10
10
|
|
11
11
|
コードのXXXXXの部分をBのIDで書き換えてから
|
12
12
|
実行してください
|
13
|
-
|
13
|
+
IDとは、Bのシートを開いた時のURL欄の
|
14
|
+
https://docs.google.com/spreadsheets/d/1XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX/edit?gid=0123456789
|
15
|
+
の
|
16
|
+
1XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
|
17
|
+
の部分です
|
14
18
|
|
15
19
|
```JavaScript
|
16
20
|
// Aで開いているシートをBに同じ名前でコピペ(または置換)
|
6
test
CHANGED
@@ -44,5 +44,13 @@
|
|
44
44
|
.addToUi();
|
45
45
|
}
|
46
46
|
```
|
47
|
+
なお、
|
48
|
+
このスクリプトを保存した後で、
|
49
|
+
Aを一度閉じてから再度開くと
|
50
|
+
次の画像のようにヘルプの隣にメニューができますので、
|
51
|
+
1ヶ月分のシフト表の修正が終わったら、そのシートを閉じる前に
|
52
|
+
メニューからスクリプトを実行すると B にコピペされます
|
47
53
|
|
48
54
|
|
55
|
+
![メニューの表示](https://ddjkaamml8q8x.cloudfront.net/questions/2024-12-08/eefdce5b-5c3a-4ada-aa42-302f9a1b714c.png)
|
56
|
+
|
5
test
CHANGED
@@ -2,7 +2,7 @@
|
|
2
2
|
Aでいずれかの月のシートの修正が終わった時点で
|
3
3
|
その月のシートを開いたまま
|
4
4
|
ヘルプの右隣のメニューからスクリプトを実行すると
|
5
|
-
Bの同月のシートがA
|
5
|
+
Bの同月のシートがAで開いている月のシートと同じ内容になります
|
6
6
|
(もしBに同じ月のシートがなかったらBに新たに追加されます)
|
7
7
|
|
8
8
|
という動作でよければ…
|
4
test
CHANGED
@@ -13,7 +13,7 @@
|
|
13
13
|
|
14
14
|
|
15
15
|
```JavaScript
|
16
|
-
// Aで開いているシート
|
16
|
+
// Aで開いているシートをBに同じ名前でコピペ(または置換)
|
17
17
|
function copySheet() {
|
18
18
|
// * 初期設定 *
|
19
19
|
// BのID(↓引用符の中にBのIDをコピペ)
|
3
test
CHANGED
@@ -8,7 +8,7 @@
|
|
8
8
|
という動作でよければ…
|
9
9
|
次のコードを参考にしてください
|
10
10
|
|
11
|
-
コードのXXXXXの部分を
|
11
|
+
コードのXXXXXの部分をBのIDで書き換えてから
|
12
12
|
実行してください
|
13
13
|
|
14
14
|
|
2
コメントもA, Bとしました
test
CHANGED
@@ -1,8 +1,11 @@
|
|
1
1
|
ご希望の動作がよくわかりませんが、
|
2
|
-
|
2
|
+
Aでいずれかの月のシートの修正が終わった時点で
|
3
|
+
その月のシートを開いたまま
|
3
|
-
メニューからスクリプトを実行すると
|
4
|
+
ヘルプの右隣のメニューからスクリプトを実行すると
|
4
|
-
|
5
|
+
Bの同月のシートがAの開いている月のシートと同じ内容になります
|
5
|
-
もし
|
6
|
+
(もしBに同じ月のシートがなかったらBに新たに追加されます)
|
7
|
+
|
8
|
+
という動作でよければ…
|
6
9
|
次のコードを参考にしてください
|
7
10
|
|
8
11
|
コードのXXXXXの部分をアルバイト向けのスプレッドシートのIDで書き換えてから
|
1
社員向け: A , アルバイト向け: B としました
test
CHANGED
@@ -10,33 +10,34 @@
|
|
10
10
|
|
11
11
|
|
12
12
|
```JavaScript
|
13
|
-
//
|
13
|
+
// Aで開いているシートでBの同じ名前のシートを置換(またはAからBにコピペ)
|
14
14
|
function copySheet() {
|
15
15
|
// * 初期設定 *
|
16
|
-
//
|
16
|
+
// BのID(↓引用符の中にBのIDをコピペ)
|
17
|
-
const
|
17
|
+
const B_ID = '1XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX';
|
18
18
|
|
19
|
-
//
|
19
|
+
// 開いているAのシートをBにコピペ
|
20
|
+
// 同じ名前のシートがあったら置換
|
20
|
-
const
|
21
|
+
const A = SpreadsheetApp.getActiveSpreadsheet();
|
21
|
-
const
|
22
|
+
const B = SpreadsheetApp.openById(B_ID);
|
22
|
-
const s
|
23
|
+
const sheetInA = A.getActiveSheet();
|
23
|
-
const
|
24
|
+
const nameSheetInA = sheetInA.getName();
|
24
|
-
const temp
|
25
|
+
const sheetTemp = sheetInA.copyTo(B);
|
25
|
-
const
|
26
|
+
const sheetInB = B.getSheetByName(nameSheetInA);
|
26
|
-
if (
|
27
|
+
if (sheetInB) {
|
27
|
-
const index =
|
28
|
+
const index = sheetInB.getIndex();
|
28
|
-
|
29
|
+
B.deleteSheet(sheetInB);
|
29
|
-
temp
|
30
|
+
sheetTemp.activate();
|
30
|
-
|
31
|
+
B.moveActiveSheet(index);
|
31
32
|
}
|
32
|
-
temp
|
33
|
+
sheetTemp.setName(nameSheetInA);
|
33
34
|
}
|
34
35
|
|
35
|
-
// メニュー
|
36
|
+
// メニューのヘルプの右に新たなメニューを作成
|
36
37
|
function onOpen() {
|
37
38
|
const ui = SpreadsheetApp.getUi();
|
38
|
-
ui.createMenu('
|
39
|
+
ui.createMenu('シートのコピペ')
|
39
|
-
.addItem('
|
40
|
+
.addItem('開いているシートをBにコピペ', 'copySheet')
|
40
41
|
.addToUi();
|
41
42
|
}
|
42
43
|
```
|