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

Office ScriptsでCSV/TSVを扱う方法!UTF-8・Shift-JISの文字コード対応をやさしく解説【Excel自動化・文字化け対策】

文字コード(UTF-8/Shift-JIS)に対応する方法
文字コード(UTF-8/Shift-JIS)に対応する方法

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

生徒

「Office ScriptsでCSVファイルを読み込んだら、日本語が文字化けしました…。UTF-8とかShift-JISって何ですか?」

先生

「CSVやTSVには文字コードというルールがあります。UTF-8やShift-JISの違いを知ることで、Excel自動化でも文字化けを防げますよ。」

生徒

「Office Scriptsでも文字コードを意識しないといけないんですね?」

先生

「その通りです。CSVの読み書きや変換をするときは特に大切です。基本から一緒に見ていきましょう。」

1. Office Scriptsとは?

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

Office Scriptsは、Microsoftが提供するExcel Online用の自動化機能です。ブラウザ上のExcelで、繰り返し作業をコードで自動化できます。使用する言語はTypeScriptというJavaScriptに似た言語です。

たとえば、セルに値を入れる、CSVデータを整形する、TSV形式に変換するなどの処理をワンクリックで実行できます。Excel自動化、業務効率化、データ処理、CSV変換などの作業にとても役立ちます。

2. CSV・TSVと文字コード(UTF-8・Shift-JIS)とは?

2. CSV・TSVと文字コード(UTF-8・Shift-JIS)とは?
2. CSV・TSVと文字コード(UTF-8・Shift-JIS)とは?

CSVとは、カンマで区切られたテキストデータです。TSVはタブで区切られています。どちらも中身はただの文字の集まりです。

ここで重要なのが「文字コード」です。文字コードとは、コンピューターが文字を数字として保存するためのルールです。

UTF-8は世界共通で使われることが多い文字コードです。Shift-JISは日本語Windowsでよく使われてきた文字コードです。文字コードが合っていないと「文字化け」が起こります。

文字化けとは、本来「こんにちは」と表示されるはずの文字が「ã�“ã‚“ã�«ã�¡ã�¯」のように表示される現象です。これは保存時と読み込み時の文字コードが違うために起こります。

3. Office ScriptsでCSV文字列を作成する(UTF-8想定)

3. Office ScriptsでCSV文字列を作成する(UTF-8想定)
3. Office ScriptsでCSV文字列を作成する(UTF-8想定)

Office Scripts自体はExcel Online上で動くため、基本的にUTF-8で扱われます。そのため、UTF-8のCSVを作るのが安全です。

まずはシンプルにCSV形式の文字列を作る例です。


function main(workbook: ExcelScript.Workbook) {
  const sheet = workbook.getActiveWorksheet();
  sheet.getRange("A1").setValue("名前");
  sheet.getRange("B1").setValue("年齢");
  sheet.getRange("A2").setValue("田中");
  sheet.getRange("B2").setValue(20);

  const values = sheet.getRange("A1:B2").getValues();
  let csv = "";

  for (let row of values) {
    csv += row.join(",") + "\n";
  }

  console.log(csv);
}

実行結果は次のようになります。


名前,年齢
田中,20

この文字列をPower Automateなどと組み合わせて保存すれば、UTF-8のCSVとして出力できます。

4. TSV形式に変換する方法

4. TSV形式に変換する方法
4. TSV形式に変換する方法

TSVは区切り文字がタブになります。カンマを「\t」に変えるだけです。


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);
}

名前	年齢
田中	20

CSV変換やTSV変換は、Excel自動化やデータ連携でよく使われる重要な処理です。

5. Shift-JISのCSVに対応する考え方

5. Shift-JISのCSVに対応する考え方
5. Shift-JISのCSVに対応する考え方

Office Scripts単体では文字コードを直接Shift-JISに変換する機能はありません。Excel OnlineはUTF-8前提だからです。

ではどうするのかというと、いったんUTF-8で出力し、Power Automateや別システム側でShift-JISに変換します。

考え方としては「中身は同じ文字列、保存するときに文字コードを変える」というイメージです。


function main(workbook: ExcelScript.Workbook) {
  const sheet = workbook.getActiveWorksheet();
  const text = sheet.getRange("A1").getValue() as string;

  // UTF-8前提で文字列を取得
  console.log("出力文字列: " + text);
}

この出力を外部でShift-JISとして保存すれば、日本語Windows環境でも文字化けしにくいCSVになります。

6. CSVを読み込んでセルに分割する方法

6. CSVを読み込んでセルに分割する方法
6. CSVを読み込んでセルに分割する方法

次はCSV文字列を分解してExcelのセルに入れる例です。splitという文字列を区切る機能を使います。


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

  const rows = csvText.split("\n");

  for (let i = 0; i < rows.length; i++) {
    const columns = rows[i].split(",");
    sheet.getRangeByIndexes(i, 0, 1, columns.length).setValues([columns]);
  }
}

このようにしてCSV読み込み処理も可能です。文字コードが正しくUTF-8であれば、日本語も問題なく表示されます。

7. 文字化けを防ぐためのポイント

7. 文字化けを防ぐためのポイント
7. 文字化けを防ぐためのポイント

文字化け対策の基本は次の通りです。

  • CSVはできるだけUTF-8で保存する
  • Windows向け配布ならShift-JIS変換を検討する
  • 保存時と読み込み時の文字コードを統一する
  • Excel自動化では出力後の処理も意識する

Office ScriptsでのCSV処理、TSV変換、文字コード対応は、データ連携や業務自動化で非常に重要です。特に日本語データを扱う場合、UTF-8とShift-JISの違いを理解することがトラブル防止につながります。

まとめ

まとめ
まとめ

今回はOffice ScriptsでCSVやTSVを扱う方法を通して、UTF-8やShift-JISといった文字コードの基本から、文字化け対策、Excel自動化での活用方法までを幅広く整理しました。CSV形式やTSV形式は一見すると単純なテキストデータですが、実務で扱う場合には文字コードの理解がとても重要になります。特に日本語データを含むCSV出力やCSV読み込みでは、保存時と読み込み時の文字コードが一致していないと文字化けが発生します。

Office ScriptsはExcel Online上で動作するため、基本的にはUTF-8前提でデータを扱います。そのため、Excel自動化やデータ連携を行う際は、まずUTF-8で安全にCSV文字列を生成することが基本方針になります。そのうえで、Windows環境や既存システムとの連携が必要な場合は、Power Automateなどの外部処理でShift-JISへ変換するという流れを意識することが大切です。

また、CSV変換やTSV変換は単に区切り文字を変更するだけのように見えますが、業務効率化やデータ加工の現場では非常に頻繁に使われます。Excelのセル範囲を取得し、joinで区切り文字を指定して文字列を組み立てる処理、逆にsplitで分解してセルに戻す処理は、Office Scriptsによる自動化の基本テクニックです。これらを理解しておくことで、レポート出力、売上データ集計、顧客情報のエクスポートなど、さまざまな場面で応用できます。

文字化け対策としては、UTF-8で統一することを第一に考え、Shift-JISが必要な場合は保存時のエンコード処理を明確に分けることが重要です。日本語CSV、Excel自動化、文字コード変換、Office Scripts活用という観点で基礎を押さえておけば、実務でも安心してデータ処理が行えます。最後に、学習内容を振り返るためのサンプルプログラムを確認してみましょう。

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


function main(workbook: ExcelScript.Workbook) {
  const sheet = workbook.getActiveWorksheet();

  // データ入力
  sheet.getRange("A1").setValue("商品名");
  sheet.getRange("B1").setValue("数量");
  sheet.getRange("A2").setValue("みかん");
  sheet.getRange("B2").setValue(50);

  // 範囲取得
  const values = sheet.getRange("A1:B2").getValues();
  let csv = "";

  // CSV形式へ変換(UTF-8前提)
  for (let row of values) {
    csv += row.join(",") + "\n";
  }

  console.log(csv);
}

商品名,数量
みかん,50

上記のように、Excelのセルデータを取得し、配列として扱い、joinでカンマ区切りに変換するだけでCSV文字列を生成できます。TSVにしたい場合は区切り文字をタブに変更するだけです。さらに、splitを使えばCSV読み込み処理も実装できます。これらの基本操作を確実に身につけることが、Office ScriptsによるExcel自動化成功の鍵になります。

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

生徒

「Office ScriptsでCSVやTSVを扱うときは、まずUTF-8で考えるのが基本なんですね。文字コードを意識しないと文字化けする理由もよく分かりました。」

先生

「その通りです。UTF-8とShift-JISの違いを理解しておくことで、日本語CSVのトラブルを防げます。Excel自動化では特に重要な知識です。」

生徒

「joinでCSV変換、splitでCSV読み込みという流れも整理できました。TSV形式も区切り文字を変えるだけなので応用できそうです。」

先生

「はい。Office ScriptsはTypeScriptベースなので、配列操作や文字列処理を理解すると応用範囲が一気に広がります。CSV出力、TSV変換、文字コード対応を組み合わせれば、業務効率化やデータ連携の自動化が実現できます。」

生徒

「これでExcel Onlineでも安心して日本語データを扱えそうです。文字化け対策を意識しながら、自動化に挑戦してみます。」

先生

「ぜひ実践してください。Office ScriptsとCSV処理、UTF-8理解は、これからの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自動化コードを設計する方法