👀

【校正】スプシで表記揺れチェックツールの作成

2023/12/29に公開

1.概要

こんにちは。テクニカルライターのくじらです。

私は製品のマニュアルを書いたり、人が書いた文章をレビューする仕事をしています。
文章を校正する際は、組織で決めたルールにしたがって文章が書かれているかを確認しています。
表記が統一されているかという点を見る際、人の目だけに頼ると表記揺れのある文を見逃すこともあるため、チェックツールを使うべきだと思っています!

そこで今回は、
Google スプレッドシートを使った表記揺れをチェックするツールの作成方法をご紹介します。

2.作成手順

1.Googleのスプレッドシートを作成してください

2.スプレッドシート名をつけてください(例:表記揺れチェックツール)

スプレッドシートに名前付け

3.チェック表として利用するシートに、名前をつけてください(例:チェック表)

チェック表として利用するシートに名前付け

4.3のシートのA1列に、使用しないと決めている文字を追加してください

使用しないと決めている文字の記入例

5.チェックしたい文章を入力するシートを作成してください

シートの追加

6.チェックしたい文章を入力するシートに名前をつけてください(例:対象)

チェックする対象の文章を入力するシートに名前付け

7.チェックしたい文章を入力するシートの、文章を記載するためのセル「A2」を大きくしてください

対象シートの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(/[-]/);
  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] をクリックしてください

拡張機能タブ押下後、Apps Scriptタブを押下

10.ファイルに、コピーしたスクリプトをペーストしてください

ファイルに、コピーしたスクリプトをペーストする

11.ファイルを保存してください(Windows:[Ctrl]+[S], Mac:[command]+[S])

12.チェックボタンを作成してください

ボタンの作成

13.チェックしたい文章を入力するシートの「B2」に、チェックボタンを追加してください

14.チェックボタンにメソッド「main」を割り当ててください

チェックボタンにメソッド「main」を割り当てる

3.チェックツールの実行

1.対象シートのA2に、チェックしたい文章を入力してください(ペーストでも可)

2.対象シートのチェックボタンをクリックしてください

3.ポップアップの[OK]ボタンをクリックしてください

ポップアップのOKボタンクリック

4.チェック表シートを確認してください

チェック表シート確認

4.まとめ

ツールやソフトウェアを利用する際、上司への申請が必要になる場合があると思います。

Textlintなどをまだ使えないけど、
Googleの各種サービスだったら使える!という方におすすめします。

Discussion