もむん blog

普通の会社員です。趣味の海外ドラマ、ガジェットを中心に、気楽に書きます。

ExcelVBAのソースの比較方法

こんにちは。

 

今回は、ExcelVBAのソースの比較方法を書きたいと思います。

 

状況

僕の、仕事を簡単に言いますと、ソフトのシステムのテストやメンテの仕事をしています。言語は、C言語JavaVBAをちょっとかじっています。

その影響で、ExcelVBAで作成したツールのメンテを依頼されました。

 

分かる人には分かると思いますが、会社のExcelVBAのツールと言うのは、個人が勝手に便利だと思い作ったものが多く、管理されていません。

基幹系システムは、仕様書やマニュアルがありますが、ExcelVBAのツールはないことが多いです。

よって、ExcelVBAのツールのメンテと言うのは結構大変です。

基本、リバースエンジニアリングで頑張るしかありません(😭)。

 

ExcelVBAのツールを、修正したんですが、修正前のソースと比較しようと思い、やり方を調べましたので、書きます。

 

 WinMergeを使って比較

ExcelVBAのソースは、Excelに組み込まれているので、単純にソースの比較ができません。最初は、DFを使用して、比較しようと思いましたが、無理でした。

 

ググったら、WinMergeを使ったら良いと言うことが分かりました。

と言うわけで、以下のサイトからダウンロードして、インストールします。

winmergejp.bitbucket.io

僕の、PC環境は以下のようになっています。

WinMerge:Ver2.16.0.7

ExcelExcel2013

Windows10 Pro 64bit

インストール

基本、デフォルトのままで、次へボタンでインストールはOKです。

気を付けることは、プラグインが要りますので、プラグインにチェックが入っていることだけは確認しましょう。

入ってなかったら、インストール方法をカスタムにして、プラグインにチェックを入れて、インストールします。

 準備

マクロを組んだExcelファイルを開きます。

「ファイル→オプション→セキュリティセンター→セキュリティセンター設定→マクロの設定→VBAプロジェクトオブジェクトモデルへのアクセスを信頼する」にチェックを入れます。

マクロを組んだExcelファイルが2個以上あると思いますので、すべて開いて確認しましょう。

f:id:c5dt0w25:20190206134004p:plain

比較

WinMergeを開き、マクロを組んだExcelを選択します。

右下に「展開プラグイン」と言う場所ありますので、自動を選択します。

f:id:c5dt0w25:20190206134002p:plain

 環境によっては、「展開プラグイン」が自動では、Excelファイルの比較ができない場合があります。

そう言うときは、「展開プラグイン→選択→ファイル展開プラグイン→CompareMSExcelFiles.sct」を選んでOKを押しましょう。

f:id:c5dt0w25:20190206133959p:plain

 「CompareMSExcelFiles.sct」はExcelファイルを比較するための、プラグインになります。

 

成功すると、以下のように、Excelファイル部分とソース部分が比較できます。

色付きは、相違があるとこになります。

f:id:c5dt0w25:20190206133956p:plain

 

以上です。

ソースを修正する場合、キーボードやマウスの操作ミスなどで、意図しない箇所が変更されている恐れがあります。

バグの元になりますので、ソースの履歴は確認するようにしましょう。

 

 

 

 人気ブログランキング

ブログランキング・にほんブログ村へにほんブログ村