Visual Studio Code(以下、VSCode)はコードエディタとしてだけでなく、データやドキュメントの比較にも活用できる強力なツールです。
特に、Excelファイル(.xlsx, .xls)を扱う機会が多い人にとって、バージョンごとの変更点をセル単位で確認できる「diff(差分表示)」は非常に便利です。
本記事では、VSCode上でExcelファイルの差分を確認する方法を、
① 拡張機能を使う方法
② Pythonコードを使って独自にdiffを出力する方法
の2つの手段で詳しく解説します。
VSCodeはMicrosoftが開発した無料の軽量エディタです。
Windows、macOS、Linuxすべてで動作し、拡張機能を追加することで機能を自在に強化できます。
特に人気の理由は次の3点です。
このVSCodeを使えば、Excelを開かなくてもセルごとの違いを確認できる環境を整えることができます。
通常、VSCodeはテキストファイル(.txtや.csvなど)のdiffには対応していますが、Excel(.xlsx)ファイルはバイナリ形式のため、標準機能では直接比較できません。
そこで、次のいずれかの方法を使います。
それぞれ順番に紹介していきましょう。
最も簡単なのは、Excelを「名前を付けて保存」で .csv 形式に変換し、そのCSVファイル同士を比較する方法です。
これで、テキストベースのdiffビューが開き、差分が色付きで表示されます。
CSVとして保存する手間はありますが、シンプルで確実な方法です。
CSVに変換するのが面倒な場合は、VSCodeの拡張機能を使って直接Excelを開いて比較する方法もあります。
拡張機能名:Excel Viewer
これで、Excelの内容を視覚的に比較できます。
ただし、大量のセルを扱う場合は表示が遅くなるため、データ量の少ないシートに向いています。
より柔軟に比較したい方には、Pythonを使ってExcelファイルの差分を出す方法がおすすめです。
VSCodeはPython開発環境としても優れており、結果をVSCodeのターミナル上で確認できます。
ターミナルで以下を実行します。
pip install pandas openpyxl
以下のコードを新規ファイル(例: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を使えば、次のような方法で柔軟に対応できます。
特にPythonによるdiff表示は、データ更新の検証やレポート作成にも応用可能です。
VSCodeを使いこなせば、「Excelを開かずに変更点を確認する」という効率的なワークスタイルを実現できます。