Googleドキュメントのすべての全角英数字を半角に置換する方法

すべての全角英数字を半角に置換する方法

Googleドキュメントを使用していると、ドキュメント内のテキストの全角英数字をすべて半角に置換して文字表記を統一したいことがあります。

例えば下図のように全角英数字と半角英数字が混合されていると、文章の見栄えが悪いので、すべて半角英数字に統一したほうが良いです。

全角英数字と半角英数字の混合だと、例えば「docomo」のようになっている場合、「docomo」で検索しても検出されないという問題も発生します。

Googleドキュメントのすべての全角英数字を半角に置換する方法

全角英数字と半角英数字が混合された文章

Google Apps Scriptで全角英数字を置換する

Googleドキュメントは編集メニューから「検索と置換」を開けますが、「検索と置換」ではすべての全角英数字を一括で半角英数字に置換できません。

そのため、すべての全角英数字を一括で半角英数字に置換したい場合はApps Scriptを使用します。

Apps Scriptを使用するには拡張機能から「Apps Script」を選択します。

拡張機能メニューのGoogle Apps Script

選択後にApps Scriptエディタが表示されるので、以下のすべての全角英数字を半角に置換するApps Scriptのコードをコード.gs内に貼り付けて保存します。

Apps Script
function convertFullWidthToHalfWidth() {
  const body = DocumentApp.getActiveDocument().getBody()
  const totalElements = body.getNumChildren()
  
  for (let i = 0; i < totalElements; i++) {
    replaceItem(body.getChild(i))
  }
}

function zen2Han(str) {
  return str.replace(/[A-Za-z0-9]/g, function(s) {
    return String.fromCharCode(s.charCodeAt(0) - 0xFEE0)
  })
}

function replaceItem(item) {
  const text = item.getText()
  const newText = zen2Han(text)
  
  if (text !== newText) {
    const attributes = item.getAttributes()
    item.setText(newText)
    item.setAttributes(attributes)
  }
}

あとはconvertFullWidthToHalfWidth関数を選択して「実行」を押せば、Googleドキュメント内のすべての「全角英数字」が「半角英数字」に置換されます。

Apps Script Editorの実行ボタン

※ 初回実行時は「承認が必要です」のダイアログが表示されるので、承認してください。

Apps Scriptで置換後の文章

手作業だと時間と労力がかかる

Googleドキュメント内の全角英数字を目視ですべて確認して、手作業で修正するとかなりの時間と労力がかかりますし、目視だと全角英数字の見落としも発生します。

Apps Scriptなら1回実行するだけですべての全角英数字を半角英数字に置換できますので、特に理由がなければApps Scriptで置換したほうが良いです。