カテゴリ: Office Scripts 更新日: 2026/03/04

Office ScriptsでCSVを2次元配列に変換!Excel自動化で使えるCSVパース入門

CSV→2次元配列へパースするスクリプト
CSV→2次元配列へパースするスクリプト

先生と生徒の会話形式で理解しよう

生徒

「Office ScriptsでCSVファイルを読み込んで、Excelで使える形にしたいです。CSVを2次元配列に変換するってどういう意味ですか?」

先生

「CSVはカンマで区切られたテキストデータです。それをExcelで扱いやすい『行と列の形』、つまり2次元配列に変換するのがポイントです。」

生徒

「2次元配列って難しそうです……。」

先生

「ノートのマス目を思い浮かべてください。横が列、縦が行です。そのマス目の形にデータを並べることを2次元配列と言います。Office Scriptsなら簡単に実現できますよ。」

1. Office Scriptsとは?

1. Office Scriptsとは?
1. Office Scriptsとは?

Office Scriptsは、Excel Onlineで使える自動化機能です。ブラウザ上のExcelで「自動化」タブからスクリプトを作成し、繰り返し作業やデータ処理を自動化できます。使用する言語はTypeScriptで、Excelのセル操作、データ変換、CSV読み込み処理などが可能です。

特にCSVの読み込みやデータ整形は、業務効率化やデータ分析の現場でよく使われます。CSVを2次元配列に変換できると、ExcelのsetValuesメソッドを使って一括でセルに書き込めるため、大量データ処理にも便利です。

2. CSVとは?初心者向けやさしい解説

2. CSVとは?初心者向けやさしい解説
2. CSVとは?初心者向けやさしい解説

CSVとは「カンマ区切りのテキストファイル」です。たとえば次のような内容です。


名前,年齢,住所
田中,30,東京
佐藤,25,大阪

このように、カンマで区切られたデータが1行ずつ並んでいます。改行ごとに行が変わります。Excelで開くと表のように見えますが、実際はただのテキストです。

Office ScriptsでCSVパースを行うとは、このテキストを分解して「行」と「列」に分けることです。これが2次元配列への変換です。

3. CSVを2次元配列に変換する基本スクリプト

3. CSVを2次元配列に変換する基本スクリプト
3. CSVを2次元配列に変換する基本スクリプト

まずは一番シンプルなCSVパースの例です。文字列としてCSVを用意し、改行とカンマで分割します。


function main(workbook: ExcelScript.Workbook) {
  const csvText = "名前,年齢,住所\n田中,30,東京\n佐藤,25,大阪";

  const rows = csvText.split("\n");
  const result: string[][] = rows.map(row => row.split(","));

  const sheet = workbook.getActiveWorksheet();
  sheet.getRange("A1").getResizedRange(result.length - 1, result[0].length - 1).setValues(result);
}

ここで使っているsplitは「区切る」という意味です。改行でまず行ごとに分け、次にカンマで列ごとに分けています。こうして2次元配列が完成します。

4. TSVにも対応する応用パターン

4. TSVにも対応する応用パターン
4. TSVにも対応する応用パターン

TSVはタブ区切りのテキストです。区切り文字が違うだけなので、少し変更すれば対応できます。


function main(workbook: ExcelScript.Workbook) {
  const tsvText = "商品\t価格\t在庫\nりんご\t100\t20\nみかん\t80\t15";

  const rows = tsvText.split("\n");
  const result: string[][] = rows.map(row => row.split("\t"));

  const sheet = workbook.getActiveWorksheet();
  sheet.getRange("A1").getResizedRange(result.length - 1, result[0].length - 1).setValues(result);
}

CSVとTSVの違いは区切り文字だけです。データ変換やファイル形式変換の基本を理解しておくと、Excel自動化の幅が広がります。

5. 空白行を除外するCSVパース

5. 空白行を除外するCSVパース
5. 空白行を除外するCSVパース

実務では空白行が含まれることがあります。filterを使うと不要な行を削除できます。


function main(workbook: ExcelScript.Workbook) {
  const csvText = "名前,年齢\n田中,30\n\n佐藤,25";

  const rows = csvText.split("\n").filter(row => row.trim() !== "");
  const result: string[][] = rows.map(row => row.split(","));

  workbook.getActiveWorksheet()
    .getRange("A1")
    .getResizedRange(result.length - 1, result[0].length - 1)
    .setValues(result);
}

trimは前後の空白を取り除く機能です。データクリーニングの基本テクニックとして覚えておきましょう。

6. 数値データに変換する方法

6. 数値データに変換する方法
6. 数値データに変換する方法

CSVはすべて文字列として扱われます。数値計算をする場合はnumber型に変換すると便利です。


function main(workbook: ExcelScript.Workbook) {
  const csvText = "商品,価格\nりんご,100\nみかん,80";

  const rows = csvText.split("\n");
  const result = rows.map((row, index) => {
    const cols = row.split(",");
    if (index > 0) {
      cols[1] = Number(cols[1]).toString();
    }
    return cols;
  });

  workbook.getActiveWorksheet()
    .getRange("A1")
    .getResizedRange(result.length - 1, result[0].length - 1)
    .setValues(result);
}

Numberは文字列を数値に変換する機能です。CSVデータ分析や売上集計などを行う場合に役立ちます。

7. 2次元配列とExcel自動化の関係

7. 2次元配列とExcel自動化の関係
7. 2次元配列とExcel自動化の関係

2次元配列はExcelの表と同じ構造です。Office ScriptsのsetValuesは2次元配列をそのままセル範囲に書き込みます。つまりCSVパースができれば、大量データの自動入力、データ移行、システム連携も可能になります。

Excel自動化、CSV読み込み、データ変換、業務効率化、データ処理スクリプトといったキーワードは、現代のデータ活用で重要です。Office Scriptsを使えば、マクロよりも安全でクラウド対応の自動化が実現できます。

まずはシンプルなCSVパースから始めて、少しずつ改良していきましょう。コードは短くても強力です。自分の手でデータを扱えるようになると、Excel作業が一気に楽になります。

まとめ

まとめ
まとめ

今回は、Office Scriptsを使ってCSVを2次元配列に変換する方法について、基礎から丁寧に確認してきました。CSVとはカンマ区切りのテキストデータであり、そのままでは単なる文字列ですが、改行で行に分割し、さらにカンマで列に分割することで、Excelの表構造と同じ2次元配列へと変換できることを学びました。

Office ScriptsでのCSVパースは、splitによる文字列分割が基本です。改行コードで行単位に分け、各行をさらに区切り文字で分解することで、行と列を持つ配列が完成します。この2次元配列をsetValuesメソッドに渡すことで、Excelのセル範囲へ一括書き込みが可能になります。これがExcel自動化における重要なテクニックです。

また、TSVのようなタブ区切りデータにも応用できる点も押さえました。区切り文字を変更するだけで、さまざまなテキストデータ形式に対応できます。さらに、空白行の除外やtrimによる前後空白削除、Numberを使った数値変換など、実務で役立つデータ整形の基本テクニックも理解しました。

CSV読み込み、CSVパース、2次元配列変換、Excel自動化、データ変換、データ整形、業務効率化といった一連の流れは、日常業務の中で非常に重要です。特に大量データ処理や売上集計、顧客データ管理などの場面では、手作業ではなくスクリプトによる自動処理が大きな差を生みます。

Office Scriptsはブラウザ版Excelで動作するため、従来のマクロとは異なり、クラウド環境でも安全に実行できます。これからExcel自動化を学ぶ方にとって、CSVを2次元配列へ変換するスキルは最初の大切な一歩です。文字列操作、配列処理、セル書き込みという基本を確実に理解することで、より高度なデータ分析や自動化処理へと発展させることができます。

サンプルプログラムの振り返り

最後に、CSVを2次元配列へ変換し、空白行を除外してExcelに出力するサンプルをもう一度整理してみましょう。


function main(workbook: ExcelScript.Workbook) {
  const csvText = "名前,年齢,部署\n田中,30,営業\n\n佐藤,25,開発";

  const rows = csvText
    .split("\n")
    .filter(row => row.trim() !== "");

  const result: string[][] = rows.map(row => row.split(","));

  const sheet = workbook.getActiveWorksheet();
  sheet.getRange("A1")
    .getResizedRange(result.length - 1, result[0].length - 1)
    .setValues(result);
}

このように、CSV文字列を行ごとに分割し、不要な空白行を除外し、さらにカンマ区切りで列配列へ変換することで、Excelへそのまま書き込める形式になります。処理の流れを一つ一つ理解することが、Office Scripts習得の近道です。

先生と生徒の振り返り会話

生徒

「CSVを2次元配列に変換する意味がよく分かりました。改行で行を作って、カンマで列を作るんですね。splitの使い方がポイントだと理解できました。」

先生

「その通りです。CSVパースの基本は文字列分割です。Office Scriptsではその結果を2次元配列として扱い、setValuesでExcelに一括出力します。これがExcel自動化の土台になります。」

生徒

「空白行を除外するfilterや、trimで空白を取り除く処理も実務では重要ですね。データ整形の基礎が分かりました。」

先生

「はい。CSV読み込みとデータ変換は業務効率化の第一歩です。数値変換やエラー対策を組み合わせれば、売上集計や在庫管理などにも応用できます。まずは2次元配列の構造をしっかり理解することが大切です。」

生徒

「これからはExcel作業を手作業ではなく、Office Scriptsで自動化できるように練習していきます。CSV変換と配列操作をもっと深く学びたいです。」

先生

「とても良い姿勢です。CSVから2次元配列への変換、Excelへの一括書き込み、データ処理の流れを繰り返し実践すれば、確実にスキルが身に付きます。自動化の力で日々の業務をより効率的にしていきましょう。」

カテゴリの一覧へ
新着記事
New1
Office Scripts
Office Scriptsの基本!企業環境で安全にExcel自動化を使うための利用制限と管理者設定
New2
Office Scripts
Office Scriptsの基本!TypeScriptの型注釈を理解してExcel自動化を安全に書く方法
New3
Office Scripts
Office Scriptsの基本!Excel自動化で使うgetValues・setValues完全ガイド【初心者向け】
New4
Office Scripts
Office Scriptsの基本!エラー表示とログ確認でExcel自動化を安全に進める方法
人気記事
No.1
Java&Spring記事人気No1
Excel VBA
Excel VBAモジュール共有術!複数のブックでマクロを使い回す最適構成
No.2
Java&Spring記事人気No2
Excel VBA
Excel VBAのプロジェクト構成とモジュール管理!標準・シート・ThisWorkbookの違い
No.3
Java&Spring記事人気No3
Excel VBA
個人用マクロブック(PERSONAL.XLSB)で作る最強の共通ライブラリ化ガイド
No.4
Java&Spring記事人気No4
Excel VBA
VBAモジュールを安全にエクスポート・インポートする方法と注意点
No.5
Java&Spring記事人気No5
Excel VBA
ThisWorkbookに書くべき処理とは?VBAプロジェクトの正しい構成方法
No.6
Java&Spring記事人気No6
Excel VBA
Excel VBAのループ処理を徹底解説!For文とDo Loopで繰り返しを自動化
No.7
Java&Spring記事人気No7
Excel VBA
Excel VBAのブレークポイント設定と使い方!初心者でも理解できるデバッグの基本
No.8
Java&Spring記事人気No8
Office Scripts
Office Scriptsの基本!関数分割で読みやすいExcel自動化コードを設計する方法