この記事について
この記事は、生成AIを活用した自動生成フローで作成しています。Microsoft LearnのOffice Scripts Range APIを確認し、Excelテーブル内の文字列をまとめて整えるTIPSとして整理しています。検証ステータス:📘 公式仕様確認済み・Office Scriptsサンプル実装済み・対象Microsoft 365環境での実機未確認
Excelの前後空白・全角スペースをまとめて整える ― Office Scriptsで表記ゆれを掃除する
人から集めたExcelには、「東京」「 東京」「東京 」「東京 本社」のような空白ゆれが混ざりがちです。見た目は同じでも、集計や突き合わせでは別文字列になることがあります。
Office Scriptsなら、テーブル内の文字列だけを走査して整える処理を短く書けます。
文字列だけを整える
// セルの値を文字列として取り出します。
const before = String(values[row][col]);
// 1) 全角スペースを半角へ
// 2) 連続する空白を1つへ
// 3) 先頭・末尾の空白を削除
const after = before
.replace(/\u3000/g, " ")
.replace(/\s+/g, " ")
.trim();
// 値が変わるセルだけを書き戻します。
// 変更のないセルまで書き換えないためです。
if (before !== after) {
range.getCell(row, col).setValue(after);
}
この3段階で、全角スペースを半角へ寄せ、連続空白を1つにし、前後空白を削除します。
数式セルは触らない
表全体を setValues() で書き戻すと、数式セルまで値に置き換えてしまう危険があります。そのため完全版では getFormulas() も確認し、数式が入っているセルはスキップします。
ここは「短いコード」より「壊さないコード」を優先した部分です。
何に効く?
部署名・氏名の表記ゆれ
CSV取り込み後の空白掃除
VLOOKUP / XLOOKUP前の前処理
重複チェック前の正規化
Power Automateへ渡す前の整形
flowchart LR
A[Excel Table] --> B[文字列セルだけ取得]
B --> C[全角/連続/前後空白を正規化]
C --> D[変更セルだけ書き戻す]

コメント