👀
【校正】スプシで表記揺れチェックツールの作成
1.概要
こんにちは。テクニカルライターのくじらです。
私は製品のマニュアルを書いたり、人が書いた文章をレビューする仕事をしています。
文章を校正する際は、組織で決めたルールにしたがって文章が書かれているかを確認しています。
表記が統一されているかという点を見る際、人の目だけに頼ると表記揺れのある文を見逃すこともあるため、チェックツールを使うべきだと思っています!
そこで今回は、
Google スプレッドシートを使った表記揺れをチェックするツールの作成方法をご紹介します。
2.作成手順
1.Googleのスプレッドシートを作成してください
2.スプレッドシート名をつけてください(例:表記揺れチェックツール)
3.チェック表として利用するシートに、名前をつけてください(例:チェック表)
4.3のシートのA1列に、使用しないと決めている文字を追加してください
5.チェックしたい文章を入力するシートを作成してください
6.チェックしたい文章を入力するシートに名前をつけてください(例:対象)
7.チェックしたい文章を入力するシートの、文章を記載するためのセル「A2」を大きくしてください
8.下記のスクリプトをコピーしてください
クリックして、スクリプトを確認
// スプレッドシートを取得
const Spreadsheet = SpreadsheetApp.getActiveSpreadsheet();
//チェック表シート(項目3で設定したシート名)
const checkSheet = Spreadsheet.getSheetByName("チェック表");
//対象シート(項目6で設定したシート名)
const targetSheet = Spreadsheet.getSheetByName("対象");
function main() {
//チェック対象の文章(対象シートのA2)
let target = getTargetText();
//表記揺れチェックする文字列(チェック表シートのA列)
let checkLetters = getCheckLetters();
//配列にチェック結果を返却する
//例:チェック表シート1行目の「程々」がヒットした場合は、1項目目の配列内容が「○」になる
let result = checkText(target,checkLetters);
//全角数字入っているか確認するための変数
//全角数字があれば、numCheckはfalseになる
let numCheck = target.match(/[0-9]/);
let numMessage = "";
if(numCheck != null){
numMessage = "全角数字がはいっています。";
}
//複数の全角数字がある場合、1つ目の全角数字しか入らないので注意。
Logger.log("全角数字:" + numCheck);
//チェック結果を出力する
if(setResult(result)){
Browser.msgBox("チェック完了しました\\n" + numMessage, Browser.Buttons.OK);
}else{
Browser.msgBox("失敗。拡張機能>実行数>最新のログからエラー内容を確認してください。\\n" + numMessage, Browser.Buttons.OK);
}
}
/*
チェック対象の文章取得
*/
function getTargetText(){
let target = targetSheet.getRange("A2").getValues();
Logger.log("target : "+ target );
return target.toString();
}
/*
表記揺れチェックする文字列取得
*/
function getCheckLetters(){
let lastRow = checkSheet.getLastRow();
let checkLetters = checkSheet.getRange("A2:A" + lastRow).getValues();
Logger.log("checkLetters : "+ checkLetters );
Logger.log("checkLettats_length : "+ checkLetters.length );
return checkLetters;
}
function checkText(target,checkLetters,numCheck){
let result = [];
try{
for(let i = 0; i < checkLetters.length; i++ ){
if (target.indexOf(checkLetters[i]) !== -1) {
console.log("○: " + checkLetters[i]);
result[i] = "○";
}else{
console.log("×: " + checkLetters[i]);
result[i] = "×";
}
}
} catch (error) {
console.error(printError(error));
}
return result;
}
/*
チェック結果をチェック表に記載する(B列以降)
例)2023/12/30
〇
✖
〇
:
*/
function setResult(result){
try {
//記入する列のチェック
let setLine = checkSheet.getLastColumn() + 1;
//1行目には日付
let today = new Date();
checkSheet.getRange(1,setLine).setValue(Utilities.formatDate(today, 'JST', 'yyyy/MM/dd HH:mm'))
//2行目以降にチェック結果をいれる
//セルにいれるために、二次元配列にする
let result2 = [];
let length = Math.trunc(result.length);
for(i = 0; i < length; i++){
result2[i]=[result[i]];
}
checkSheet.getRange(2,setLine,length).setValues(result2);
} catch (error) {
console.error(printError(error));
return false;
}
return true;
}
/*
エラー出力
error:各メソッドでcatchした時のエラー
*/
function printError(error) {
return "[名前] " + error.name + "\n" +
"[場所] " + error.fileName + "(" + error.lineNumber + "行目)\n" +
"[メッセージ]" + error.message + "\n" +
"[StackTrace]\n" + error.stack;
}
9.スプレッドシートのメニュー[拡張機能]>[Apps Script] をクリックしてください
10.ファイルに、コピーしたスクリプトをペーストしてください
11.ファイルを保存してください(Windows:[Ctrl]+[S], Mac:[command]+[S])
12.チェックボタンを作成してください
13.チェックしたい文章を入力するシートの「B2」に、チェックボタンを追加してください
14.チェックボタンにメソッド「main」を割り当ててください
3.チェックツールの実行
1.対象シートのA2に、チェックしたい文章を入力してください(ペーストでも可)
2.対象シートのチェックボタンをクリックしてください
3.ポップアップの[OK]ボタンをクリックしてください
4.チェック表シートを確認してください
4.まとめ
ツールやソフトウェアを利用する際、上司への申請が必要になる場合があると思います。
Textlintなどをまだ使えないけど、
Googleの各種サービスだったら使える!という方におすすめします。
Discussion