質問編集履歴
4
説明の補足・改善
test
CHANGED
File without changes
|
test
CHANGED
@@ -1,6 +1,18 @@
|
|
1
1
|
### 前提・実現したいこと
|
2
2
|
|
3
3
|
業務上で翻訳作業が多いため、効率化を向上させるためにGoogle Apps Scriptで、指定列のデータを正規表現式で条件と一致した文字列を一括置換えるコードを作りたいです。
|
4
|
+
|
5
|
+
今回は関数を二つ、作成して行きたいと思います。
|
6
|
+
|
7
|
+
①指定した条件で回数や数値、計算式表現を含む少数の特定のパターンを正規表現で置き換える関数
|
8
|
+
|
9
|
+
②予めに作成した用語集を使って、指定範囲(ブック名、シート名、列を指定)にて辞書のA列にある文字を順番に検索を行い、検索した際に対応するB列の文字を置き換える関数
|
10
|
+
|
11
|
+
|
12
|
+
|
13
|
+
①につきまして、翻訳の文章は数値表記、難易度や表記、色付けや改行などの計算式を含む文章が多いです。
|
14
|
+
|
15
|
+
そのため、それ以外の文章を略せば、難易度のみ異なる文章を一括に翻訳することができ、効率が捗ります。、自動的に任務名、回数、難易度を記憶し一括に別の書き方の文章に置換えたいです。
|
4
16
|
|
5
17
|
|
6
18
|
|
@@ -10,11 +22,7 @@
|
|
10
22
|
|
11
23
|
|
12
24
|
|
13
|
-
翻訳の文章は回数や難易度を示す文字が多いため、自動的に任務名、回数、難易度を記憶し一括に別の書き方の文章に置換えたいです。
|
14
|
-
|
15
|
-
|
25
|
+
正規表現式を使用すれば、回数などは\dで検索でき、難易度表記や計算式などは英数字か括弧などで検索できると思い、コードを作成しましたが実行しても何も反応なかったため、質問させていただきました。
|
16
|
-
|
17
|
-
ご教授頂ければ幸いでございます。
|
18
26
|
|
19
27
|
|
20
28
|
|
@@ -24,7 +32,7 @@
|
|
24
32
|
|
25
33
|
|
26
34
|
|
27
|
-
|
35
|
+
ご教授頂ければ幸いでございます。
|
28
36
|
|
29
37
|
|
30
38
|
|
3
コードの更新
test
CHANGED
File without changes
|
test
CHANGED
@@ -88,44 +88,42 @@
|
|
88
88
|
|
89
89
|
### 用語集のデータを取得するコード
|
90
90
|
|
91
|
-
|
91
|
+
用語集のデータを配列として取得できましたが、どう利用すればいいのかご教授頂ければ幸いです、
|
92
|
-
|
93
|
-
```
|
94
|
-
|
95
|
-
function getDictionaryValue() {
|
96
|
-
|
97
|
-
const dictionary = SpreadsheetApp.openById('用語集リンク');
|
98
|
-
|
99
|
-
const Arow_lastColumn = dictionary.getActiveSheet().getRange(1,2).getLastColumn();
|
100
|
-
|
101
|
-
const ArowRange = dictionary.getActiveSheet().getRange(1,Arow_lastColumn);
|
102
|
-
|
103
|
-
const Brow_lastColumn = dictionary.getActiveSheet().getRange(2,1).getLastColumn();
|
104
|
-
|
105
|
-
const BrowRange = dictionary.getActiveSheet().getRange(2,Brow_lastColumn);
|
106
|
-
|
107
|
-
const dict_Arow_value = [];
|
108
|
-
|
109
|
-
const dict_Brow_value = [];
|
110
|
-
|
111
|
-
for (var i = 1; i <= Arow_lastColumn.length; i++) {
|
112
|
-
|
113
|
-
var Arow_value =dictionary.getgetActiveSheet().getRange(1,1).getValue();
|
114
|
-
|
115
|
-
dict_Arow_value.push(Arow_value);
|
116
|
-
|
117
|
-
}
|
118
|
-
|
119
|
-
for (var i = 1; i <= Brow_lastColumn.length; i++) {
|
120
|
-
|
121
|
-
dict_Brow_value.push([BrowRange[i].getValues()]);
|
122
|
-
|
123
|
-
}
|
124
|
-
|
125
|
-
Browser.msgBox(dict_Arow_value);
|
126
|
-
|
127
|
-
Browser.msgBox(dict_Brow_value);
|
128
|
-
|
129
|
-
}
|
130
92
|
|
131
93
|
```
|
94
|
+
|
95
|
+
function getValue() {
|
96
|
+
|
97
|
+
var ss = SpreadsheetApp.openById('用語集リンクID');
|
98
|
+
|
99
|
+
var sheet = ss.getSheetByName('dict');
|
100
|
+
|
101
|
+
var CH_column = 1, //対象列の指定
|
102
|
+
|
103
|
+
lastRow = sheet.getLastRow(), //最終列を取得
|
104
|
+
|
105
|
+
CH_Range = sheet.getRange(1,CH_column,lastRow,1), //範囲を取得
|
106
|
+
|
107
|
+
CH_Values = CH_Range.getValues(), //データを取得
|
108
|
+
|
109
|
+
CH_Values = [].concat.apply([],CH_Values);
|
110
|
+
|
111
|
+
var JP_column = 2,
|
112
|
+
|
113
|
+
JP_Range = sheet.getRange(1,JP_column,lastRow,1), //範囲を取得
|
114
|
+
|
115
|
+
JP_Values = JP_Range.getValues(), //データを取得
|
116
|
+
|
117
|
+
JP_Values = [].concat.apply([],JP_Values);
|
118
|
+
|
119
|
+
Logger.log(CH_Values);
|
120
|
+
|
121
|
+
Logger.log(JP_Values);
|
122
|
+
|
123
|
+
return CH_Values;
|
124
|
+
|
125
|
+
return JP_Values;
|
126
|
+
|
127
|
+
}
|
128
|
+
|
129
|
+
```
|
2
試したコードを追加、説明の改善
test
CHANGED
File without changes
|
test
CHANGED
@@ -28,7 +28,9 @@
|
|
28
28
|
|
29
29
|
|
30
30
|
|
31
|
-
###
|
31
|
+
### 特定の文字列を置換えるソースコード
|
32
|
+
|
33
|
+
正規表現式で取得した文字の中に、数字などの取得方法がわからず、せめては固定の文章を一括に置き換えるように書いてみましたが、コードを実行しても何も起こらなかったです。
|
32
34
|
|
33
35
|
```Google Apps script
|
34
36
|
|
@@ -81,3 +83,49 @@
|
|
81
83
|
}
|
82
84
|
|
83
85
|
```
|
86
|
+
|
87
|
+
|
88
|
+
|
89
|
+
### 用語集のデータを取得するコード
|
90
|
+
|
91
|
+
何故かうまくデータを取得できず、msgBoxで帰って来たのは空白でした
|
92
|
+
|
93
|
+
```
|
94
|
+
|
95
|
+
function getDictionaryValue() {
|
96
|
+
|
97
|
+
const dictionary = SpreadsheetApp.openById('用語集リンク');
|
98
|
+
|
99
|
+
const Arow_lastColumn = dictionary.getActiveSheet().getRange(1,2).getLastColumn();
|
100
|
+
|
101
|
+
const ArowRange = dictionary.getActiveSheet().getRange(1,Arow_lastColumn);
|
102
|
+
|
103
|
+
const Brow_lastColumn = dictionary.getActiveSheet().getRange(2,1).getLastColumn();
|
104
|
+
|
105
|
+
const BrowRange = dictionary.getActiveSheet().getRange(2,Brow_lastColumn);
|
106
|
+
|
107
|
+
const dict_Arow_value = [];
|
108
|
+
|
109
|
+
const dict_Brow_value = [];
|
110
|
+
|
111
|
+
for (var i = 1; i <= Arow_lastColumn.length; i++) {
|
112
|
+
|
113
|
+
var Arow_value =dictionary.getgetActiveSheet().getRange(1,1).getValue();
|
114
|
+
|
115
|
+
dict_Arow_value.push(Arow_value);
|
116
|
+
|
117
|
+
}
|
118
|
+
|
119
|
+
for (var i = 1; i <= Brow_lastColumn.length; i++) {
|
120
|
+
|
121
|
+
dict_Brow_value.push([BrowRange[i].getValues()]);
|
122
|
+
|
123
|
+
}
|
124
|
+
|
125
|
+
Browser.msgBox(dict_Arow_value);
|
126
|
+
|
127
|
+
Browser.msgBox(dict_Brow_value);
|
128
|
+
|
129
|
+
}
|
130
|
+
|
131
|
+
```
|
1
誤字の修正
test
CHANGED
File without changes
|
test
CHANGED
@@ -52,7 +52,7 @@
|
|
52
52
|
|
53
53
|
autochange_value.push(value[i]);
|
54
54
|
|
55
|
-
autochange_value = autochange_value.replace(
|
55
|
+
autochange_value = autochange_value.replace(value,'任務'&lvjp&'を:10回完成する') ;
|
56
56
|
|
57
57
|
}
|
58
58
|
|