Visual Studio Code(以下、VSCode)はコードエディタとしてだけでなく、データやドキュメントの比較にも活用できる強力なツールです。
特に、Excelファイル(.xlsx, .xls)を扱う機会が多い人にとって、バージョンごとの変更点をセル単位で確認できる「diff(差分表示)」は非常に便利です。
本記事では、VSCode上でExcelファイルの差分を確認する方法を、
① 拡張機能を使う方法
② Pythonコードを使って独自にdiffを出力する方法
の2つの手段で詳しく解説します。
Visual Studio Codeとは?
VSCodeはMicrosoftが開発した無料の軽量エディタです。
Windows、macOS、Linuxすべてで動作し、拡張機能を追加することで機能を自在に強化できます。
特に人気の理由は次の3点です。
- Gitとの統合:変更履歴を自動的に追跡し、ファイル単位で差分が確認できる。
- 豊富な拡張機能:Excel・CSV・JSONなどのファイル比較も可能。
- 軽快な動作:IDEよりも起動が速く、プログラミング以外にも資料確認やデータチェックに最適。
このVSCodeを使えば、Excelを開かなくてもセルごとの違いを確認できる環境を整えることができます。
VSCodeでExcelファイルをdiffする基本的な方法
通常、VSCodeはテキストファイル(.txtや.csvなど)のdiffには対応していますが、Excel(.xlsx)ファイルはバイナリ形式のため、標準機能では直接比較できません。
そこで、次のいずれかの方法を使います。
- ExcelファイルをCSV形式に変換してdiff表示する
- 専用の拡張機能を導入する
- PythonなどでExcelをテキスト化してdiffを出す
それぞれ順番に紹介していきましょう。
方法①:ExcelをCSVに変換してVSCodeで比較する
最も簡単なのは、Excelを「名前を付けて保存」で .csv 形式に変換し、そのCSVファイル同士を比較する方法です。
手順
- Excelでファイルを開く
- 「ファイル」→「名前を付けて保存」→「CSV UTF-8(カンマ区切り)」形式を選択
- VSCodeで2つのCSVファイルを開く
- 比較したい2つのファイルを右クリック → 「Select for Compare」
- もう一方のファイルを右クリック → 「Compare with Selected」
これで、テキストベースのdiffビューが開き、差分が色付きで表示されます。
CSVとして保存する手間はありますが、シンプルで確実な方法です。
方法②:拡張機能「Excel Viewer」+「Compareit」で直接比較
CSVに変換するのが面倒な場合は、VSCodeの拡張機能を使って直接Excelを開いて比較する方法もあります。
① Excel Viewerをインストール
拡張機能名:Excel Viewer
- 機能:Excelファイルをテーブル形式で表示できる
- インストール方法:
VSCode左側の拡張機能アイコン(四角いアイコン) → 検索窓に「Excel Viewer」と入力 → インストール
② Compareit(またはPartial Diff)をインストール
- 機能:VSCode内で任意のファイルを比較できる拡張機能
- コマンドパレットで「Compare Active File with…」を選択すると、選んだファイル同士を比較できます。
③ 実際の操作
- 2つのExcelファイルを開く
- Excel Viewerでそれぞれ表示
- コマンドパレット(Ctrl + Shift + P)で「Compare Active File with…」を選択
- 比較対象を指定
これで、Excelの内容を視覚的に比較できます。
ただし、大量のセルを扱う場合は表示が遅くなるため、データ量の少ないシートに向いています。
方法③:PythonでExcel差分を出してVSCodeで表示する(おすすめ)
より柔軟に比較したい方には、Pythonを使ってExcelファイルの差分を出す方法がおすすめです。
VSCodeはPython開発環境としても優れており、結果をVSCodeのターミナル上で確認できます。
① 必要なライブラリをインストール
ターミナルで以下を実行します。
pip install pandas openpyxl
② diff用Pythonスクリプト
以下のコードを新規ファイル(例:excel_diff.py)に保存してください。
import pandas as pd
def compare_excel(file1, file2, sheet_name=0):
# Excel読み込み
df1 = pd.read_excel(file1, sheet_name=sheet_name)
df2 = pd.read_excel(file2, sheet_name=sheet_name)
# 行・列サイズを合わせる
df1, df2 = df1.align(df2, fill_value="", axis=None)
# 差分判定
diff = df1 != df2
changed = df1[diff].stack().reset_index()
changed.columns = ["Row", "Column", "Old Value"]
# 新しい値
changed["New Value"] = df2.stack().reset_index(drop=True)
# 結果出力
if changed.empty:
print("差分はありません。")
else:
print("変更されたセル一覧:\n")
print(changed.to_string(index=False))
# 実行例
if __name__ == "__main__":
compare_excel("old.xlsx", "new.xlsx")
③ 実行方法
VSCodeでexcel_diff.pyを開き、ターミナルで以下を実行します。
python excel_diff.py
結果は次のように出力されます。
変更されたセル一覧:
Row Column Old Value New Value
3 B 100 120
5 D 東京 大阪
このように、どの行・列が変更されたかを一目で確認できます。
VSCodeのターミナル上で動作するため、Gitのコミット時やレビュー前に簡単にチェックできます。
まとめ
Excelの差分を確認する作業は、バージョン管理や報告書レビューなど、あらゆる場面で発生します。
VSCodeを使えば、次のような方法で柔軟に対応できます。
- CSV変換してdiff(最も簡単)
- Excel Viewer + Compare拡張機能(手軽でGUI表示)
- Pythonスクリプトで自動化(柔軟かつ正確)
特にPythonによるdiff表示は、データ更新の検証やレポート作成にも応用可能です。
VSCodeを使いこなせば、「Excelを開かずに変更点を確認する」という効率的なワークスタイルを実現できます。
