Office ScriptsでCSVを読み書きする基本構造|Excel自動化とデータ変換の入門ガイド
生徒
「Office ScriptsでCSVファイルを読み込んだり、書き出したりしたいんですが、どうやってExcel自動化をすればいいんですか?」
先生
「Office Scriptsを使えば、Excel Online上でCSVデータの読み書きや変換処理を自動化できます。コードはシンプルですよ。」
生徒
「CSVってそもそも何ですか?パソコンもあまり触ったことがなくて…。」
先生
「CSVはデータをカンマで区切ったテキストファイルです。Excelととても相性が良いので、基本構造を一緒に見ていきましょう。」
1. Office Scriptsとは?
Office Scriptsは、Excel Onlineで使える自動化スクリプト機能です。Excelの操作をコードで自動化できるため、繰り返し作業やデータ処理を効率化できます。プログラミング未経験者でも、セルに文字を書く、表を作る、といった身近な操作から始められます。
Office ScriptsはTypeScriptという言語を使います。TypeScriptとは、JavaScriptをより安全に書けるようにした言語です。難しく感じるかもしれませんが、最初は「Excelを動かすための命令文」と考えてください。
2. CSVとは?Excelとの関係
CSVとは「Comma Separated Values」の略で、カンマ区切りのデータ形式です。たとえば、名前と年齢を保存するときに「山田,20」のように保存します。とてもシンプルなテキスト形式なので、データ交換やデータ変換でよく使われます。
ExcelではCSVファイルを開くことができ、表形式で表示されます。Office Scriptsを使えば、このCSVデータを自動で読み込み、加工し、再びCSV形式で書き出すことができます。
3. Office ScriptsでCSVを書き出す基本構造
まずはExcelのデータをCSV形式の文字列に変換する方法を見てみましょう。CSVへの書き出しは「セルの値を取得して、カンマでつなぐ」という流れです。
function main(workbook: ExcelScript.Workbook) {
const sheet = workbook.getActiveWorksheet();
const range = sheet.getRange("A1:B2");
const values = range.getValues();
let csv = "";
for (let row of values) {
csv += row.join(",") + "\n";
}
console.log(csv);
}
このコードでは、A1からB2の範囲を取得し、値を配列として取り出しています。配列とは、データを箱に順番に入れたものです。その後、joinという命令でカンマ区切りの文字列に変換しています。
例:
名前,年齢
山田,20
このように、ExcelのデータをCSV形式に変換できます。Excel自動化とデータ出力の基本構造です。
4. CSVを読み込む基本構造
次はCSV形式の文字列をExcelに書き込む方法です。CSVはただの文字列なので、カンマで分割すればExcelの表に戻せます。
function main(workbook: ExcelScript.Workbook) {
const csvData = "商品,価格\nりんご,100\nみかん,150";
const rows = csvData.split("\n");
const result: string[][] = [];
for (let row of rows) {
result.push(row.split(","));
}
const sheet = workbook.getActiveWorksheet();
sheet.getRange("A1").getResizedRange(result.length - 1, result[0].length - 1).setValues(result);
}
splitは、文字を区切る命令です。改行で分けて行を作り、カンマで分けて列を作ります。これがCSV読み込みの基本構造です。
5. TSVとの違いと変換方法
TSVは「Tab Separated Values」の略で、タブで区切る形式です。CSVとの違いは区切り文字だけです。Office Scriptsでは区切り文字を変えるだけで対応できます。
function main(workbook: ExcelScript.Workbook) {
const sheet = workbook.getActiveWorksheet();
const values = sheet.getRange("A1:B2").getValues();
let tsv = "";
for (let row of values) {
tsv += row.join("\t") + "\n";
}
console.log(tsv);
}
「\t」はタブを表します。CSV変換とTSV変換の基本は同じです。データ変換の仕組みを理解すれば応用できます。
6. 実務で使えるCSV自動化の例
実際の業務では、特定の列だけを書き出したい場合もあります。たとえば名前だけをCSV出力する例です。
function main(workbook: ExcelScript.Workbook) {
const sheet = workbook.getActiveWorksheet();
const values = sheet.getRange("A1:A5").getValues();
let csv = "";
for (let row of values) {
csv += row[0] + "\n";
}
console.log(csv);
}
このように、Office Scriptsを使えばExcelのデータ抽出、CSV書き出し、データ加工を自動化できます。Excel自動化、CSV変換、TSV変換、データ処理といったキーワードは、業務効率化に直結します。
7. CSV読み書きの基本構造まとめ理解
CSVの読み書きの基本構造は、「取得」「分割」「結合」「書き込み」の四つです。Excelのセル範囲を取得し、配列として扱い、カンマやタブで区切り、再び書き戻す流れです。
Office Scriptsを使ったExcel自動化は、難しい専門知識がなくても始められます。CSVファイル処理やデータ変換は、多くの現場で求められるスキルです。まずは小さなコードから試し、Excel操作を自動化する感覚を身につけていきましょう。
まとめ
今回はOffice Scriptsを使ったCSV読み書きの基本構造について学びました。Excel自動化を実現するためには、セルの取得、配列操作、文字列の分割と結合、そして書き込みという流れを理解することが重要です。CSVはカンマ区切りのシンプルなテキスト形式ですが、データ変換やデータ出力、データ加工の現場では非常に重要な役割を持っています。Office Scriptsを活用すれば、Excel Online上での定型業務を自動化でき、手作業による入力ミスや転記作業の負担を大きく減らせます。
特にExcel自動化とCSV変換の組み合わせは、売上管理、顧客情報整理、商品一覧出力、在庫データ処理など幅広い業務に応用できます。配列としてデータを扱うことに慣れることで、行と列の概念が自然と身につきます。splitで分割し、joinで結合するという基本操作を理解すれば、CSVだけでなくTSV変換やその他のテキストデータ処理にも応用できます。データ処理の基本は「区切る」「まとめる」「整える」です。この流れを意識することがExcelスクリプト活用の第一歩です。
また、Office ScriptsはTypeScriptを使いますが、難しい構文をすべて覚える必要はありません。まずはworkbookからシートを取得し、getRangeで範囲を指定し、getValuesで配列を取得するという基本形を繰り返し練習しましょう。CSV出力ではjoin、CSV読み込みではsplitを使うというパターンを理解すれば、実務でのデータ変換や自動レポート作成にも対応できます。
サンプルプログラムで振り返るCSV変換処理
function main(workbook: ExcelScript.Workbook) {
const sheet = workbook.getActiveWorksheet();
const values = sheet.getRange("A1:C3").getValues();
let csv = "";
for (let row of values) {
csv += row.join(",") + "\n";
}
console.log(csv);
}
商品,価格,在庫
りんご,100,30
みかん,150,20
このように、セル範囲の取得からCSV文字列への変換までの流れは非常にシンプルです。Excel自動化の基本は、繰り返し処理とデータの整形です。CSV読み込みでも同様に、改行で分割し、カンマで列を分けて二次元配列に変換することで、Excelの表として再構築できます。
function main(workbook: ExcelScript.Workbook) {
const csvData = "名前,年齢\n佐藤,25\n田中,30";
const rows = csvData.split("\n");
const result: string[][] = [];
for (let row of rows) {
result.push(row.split(","));
}
const sheet = workbook.getActiveWorksheet();
sheet.getRange("A1")
.getResizedRange(result.length - 1, result[0].length - 1)
.setValues(result);
}
CSV読み書きの基本構造を理解すれば、データ抽出、自動整形、自動保存、定期レポート作成など、Excel業務効率化の幅が大きく広がります。Office Scriptsはクラウド環境で動作するため、複数人での共有や自動実行にも対応しやすい点が特徴です。Excel操作の自動化スキルは、現代の業務効率化において重要な武器になります。
生徒
「CSV読み書きの流れがやっと分かってきました。取得して、分割して、結合して、書き込むという順番なんですね。」
先生
「その通りです。Excel自動化では配列の扱いがとても大切です。getValuesで取得し、splitとjoinで整形する。この基本構造を覚えておきましょう。」
生徒
「TSV変換も区切り文字が違うだけでしたね。応用すればいろいろなデータ変換ができそうです。」
先生
「そうですね。CSV変換、TSV変換、データ加工、データ出力はすべて同じ考え方です。まずは小さな表で練習し、Excelスクリプトの感覚を身につけてください。」
生徒
「これからは手作業でコピーするのではなく、Office Scriptsで自動化してみます。」
先生
「それが大切です。繰り返し作業は自動化し、時間をより価値のある分析や改善に使いましょう。CSV読み書きの基本構造を理解したあなたなら、きっと応用できますよ。」