Office Scriptsでセル値を一括変換!Excel自動化でトリム・置換・整形をする方法
生徒
「Office ScriptsでExcelのセルの文字をまとめてきれいにしたいんですが、どうやって一括変換するんですか?」
先生
「Office Scriptsを使えば、トリムや置換、文字の整形をまとめて自動化できます。Excelの面倒な手作業をコードで一気に処理できますよ。」
生徒
「トリムや置換って何ですか?」
先生
「空白を削除したり、特定の文字を別の文字に変えたりすることです。それでは、Office Scriptsでセル値を一括変換する方法を一緒に見ていきましょう!」
1. Office Scriptsとは?
Office Scriptsとは、Excel Onlineで使える自動化機能です。Excelの自動化タブからスクリプトを作成し、セル操作、レンジ取得、データ加工、表の作成などをコードで実行できます。
普段はマウスでセルを選択し、コピーや貼り付けをしている作業も、Office Scriptsを使えば一瞬で完了します。特に大量データの一括変換やデータ整形は、自動化との相性がとても良い作業です。
Office ScriptsはTypeScriptという言語で書きますが、難しく考える必要はありません。Excelに命令を書いているだけ、と考えると分かりやすいです。
2. セル値の一括変換とは?
セル値の一括変換とは、複数のセルに入っている文字や数字をまとめて変更することです。例えば、名前の前後に余計な空白が入っている場合、それをすべて削除する処理がトリムです。
また、半角スペースを全角スペースに変える、不要な記号を削除する、電話番号の形式を整える、といった処理も一括変換に含まれます。
Excelで一つずつ修正するのは大変ですが、Office Scriptsならレンジを取得してまとめて処理できます。レンジとは、複数セルのまとまりのことです。
3. トリムで空白を削除する方法
トリムとは、文字列の前後にある不要な空白を取り除く処理です。データ入力時にスペースが混ざることはよくあります。これを自動で削除します。
function main(workbook: ExcelScript.Workbook) {
const sheet = workbook.getActiveWorksheet();
const range = sheet.getRange("A1:A5");
const values = range.getValues();
for (let i = 0; i < values.length; i++) {
let text = values[i][0] as string;
if (text) {
values[i][0] = text.trim();
}
}
range.setValues(values);
}
trimは文字の前後の空白を削除する命令です。getValuesでセルの値を取得し、setValuesでまとめて書き戻します。これがOffice Scriptsの基本パターンです。
4. 文字の置換をする方法
置換とは、特定の文字を別の文字に変更することです。例えば「㈱」を「株式会社」に変える処理です。これはデータ整形や名寄せ作業でよく使われます。
function main(workbook: ExcelScript.Workbook) {
const sheet = workbook.getActiveWorksheet();
const range = sheet.getRange("B1:B5");
const values = range.getValues();
for (let i = 0; i < values.length; i++) {
let text = values[i][0] as string;
if (text) {
values[i][0] = text.replace("㈱", "株式会社");
}
}
range.setValues(values);
}
replaceは文字を置き換える命令です。このようにOffice Scriptsでセル値を一括変換すれば、Excelのデータクレンジング作業が効率化できます。
5. 数値や文字の整形をする方法
整形とは、表示形式をきれいに整えることです。例えば電話番号をハイフン付きに変更するなどの処理です。
function main(workbook: ExcelScript.Workbook) {
const sheet = workbook.getActiveWorksheet();
const range = sheet.getRange("C1:C5");
const values = range.getValues();
for (let i = 0; i < values.length; i++) {
let text = values[i][0] as string;
if (text && text.length === 10) {
values[i][0] = text.slice(0,3) + "-" + text.slice(3,6) + "-" + text.slice(6);
}
}
range.setValues(values);
}
sliceは文字を切り出す命令です。これを組み合わせることで自由にフォーマットを整えられます。Excel自動化ではこのような文字列操作が重要です。
6. 複数処理をまとめて実行する方法
トリムと置換を同時に行うことも可能です。実務では複数の変換をまとめて行うことが多いため、組み合わせが重要です。
function main(workbook: ExcelScript.Workbook) {
const sheet = workbook.getActiveWorksheet();
const range = sheet.getRange("D1:D5");
const values = range.getValues();
for (let i = 0; i < values.length; i++) {
let text = values[i][0] as string;
if (text) {
text = text.trim();
text = text.replace(" ", "");
values[i][0] = text;
}
}
range.setValues(values);
}
このようにOffice Scriptsでセル操作を行えば、Excelの大量データ処理も自動化できます。レンジ取得、値の加工、書き戻しという流れを覚えることが大切です。
7. Office ScriptsでExcel自動化を成功させるポイント
Office Scriptsでセル値を一括変換する場合、まずは小さい範囲でテストすることが重要です。いきなり全シートに実行すると、誤変換が起きたときに修正が大変になります。
また、データ加工やデータ整形では、どの文字を削除するのか、どの形式に統一するのかを事前に決めておくことが大切です。
Excel自動化、Office Scripts、セル一括変換、トリム処理、文字列置換、データ整形といったキーワードは、実務でもよく検索される重要なテーマです。繰り返し練習することで、確実に使いこなせるようになります。
まとめ
今回はOffice Scriptsを使ったExcel自動化の基本として、セル値を一括変換する方法を詳しく解説しました。トリム処理による空白削除、replaceを使った文字列置換、sliceを使った文字列整形、そして複数処理をまとめて実行する方法まで、一連の流れを学びました。Excelでの手作業によるデータ修正は時間がかかり、入力ミスや修正漏れが発生しやすい作業です。しかしOffice Scriptsを活用することで、レンジ取得、値の加工、書き戻しという基本パターンを使いながら、正確かつ高速にデータクレンジングを実行できます。
特に業務でよくあるのが、氏名の前後に入った不要な空白の削除、会社名の表記ゆれ修正、電話番号の形式統一、全角半角の混在解消などです。これらはExcel自動化と非常に相性がよく、Office Scriptsで一括変換することで業務効率が大きく向上します。セル操作を理解し、TypeScriptの基本的な文字列操作を覚えるだけで、実務レベルのデータ整形が可能になります。
また、重要なポイントは必ず小さな範囲でテストを行うことです。大量データに対して一気に処理を実行すると、誤変換が発生した場合の影響が大きくなります。まずは数行で動作確認を行い、問題がないことを確認してから範囲を拡大することが、Excel自動化を安全に進めるコツです。レンジ取得、getValuesで配列取得、文字列加工、setValuesで書き戻す流れを確実に身につけましょう。
セル値一括変換の総合サンプルプログラム
最後に、トリム処理、全角空白削除、特定文字の置換、電話番号整形をまとめて実行するサンプルを紹介します。Excel自動化の実践例として活用してください。
function main(workbook: ExcelScript.Workbook) {
const sheet = workbook.getActiveWorksheet();
const range = sheet.getRange("A1:A10");
const values = range.getValues();
for (let i = 0; i < values.length; i++) {
let text = values[i][0] as string;
if (text) {
// 前後空白削除
text = text.trim();
// 全角空白削除
text = text.replace(" ", "");
// 表記ゆれ修正
text = text.replace("㈱", "株式会社");
// 電話番号整形
if (text.length === 10 && !text.includes("-")) {
text = text.slice(0,3) + "-" + text.slice(3,6) + "-" + text.slice(6);
}
values[i][0] = text;
}
}
range.setValues(values);
}
このように複数の処理を組み合わせることで、Excelのデータ加工、データ整形、データクレンジングを完全に自動化できます。Office Scriptsは単なるマクロ代替ではなく、クラウド環境で安全に実行できるExcel自動化ツールです。繰り返し実践することで、セル一括変換のスキルは確実に向上します。
生徒
「Office Scriptsでセル値を一括変換する流れが理解できました。レンジ取得して配列で処理して書き戻すのが基本なんですね。」
先生
「その通りです。Excel自動化ではレンジ取得、値取得、文字列操作、書き戻しが基本構造です。トリムや置換、整形を組み合わせれば実務で使えるデータ整形ができます。」
生徒
「手作業でやっていた空白削除や電話番号の統一も、自動化すれば一瞬で終わりますね。業務効率がかなり上がりそうです。」
先生
「まさにそれがExcel自動化の価値です。Office Scriptsを使えば大量データでも正確に処理できます。小さなテストから始めて、徐々に応用範囲を広げていきましょう。」
生徒
「これからはセル一括変換やデータクレンジングを積極的に自動化していきます。まずは今回のサンプルを自分のシートで試してみます。」
先生
「それが一番の近道です。繰り返し実践して、Excel自動化とOffice Scriptsを使いこなせるようになりましょう。」