【Excel マクロ開発】に関する質問です。コードの差分を簡単に調べる方法を知りたいです。


VBAのプログラムが格納されているExcelファイルがあります。このプログラムはファイル内で多数のモジュールに分けて格納されています。

今ここに、現在のバージョンのプログラムが入っているExcelファイルAと、過去のバージョンのプログラムが入っているExcelファイルBがあるのですが、この2つの差分を簡単に調べる方法はあるでしょうか?

商用のユーティリティソフトを使う方法でも構いませんが、次のような回答はご遠慮下さい。

1. シートの差分だけを調べる方法:
シートの差分にはあまり興味がありません。知りたいのはVBAコードの差分です。

2. モジュールを1つ1つエクスポートしてテキスト比較する方法:
モジュールがたくさんあるのでやってられません。ただ、全モジュールをまとめて1つのテキストファイルに書き出すことができるなら、それは有り難いです。

回答の条件
  • 1人3回まで
  • 登録:2007/03/12 17:45:52
  • 終了:2007/03/19 17:50:02

回答(0件)

回答はまだありません

  • id:you1982
    回答待っている間にコードを書けてしまったので中止します、、、
  • id:cx20
    既に解決されたようですが、一応、参考情報ということで・・・

    ■ 教えて!goo VBAのバージョン管理
    http://oshiete1.goo.ne.jp/qa2793136.html
  • id:llusall
    流石ですね。
    VBAから標準モジュールを書き出したり、書き換えたりといったことは、
    確かできると思いましたので、
    モジュールのコレクションをぐるぐるっと回して、
    コードを1つのファイルに書き出したのでしょうか。
  • id:you1982
    あ、〆切後なのにコメントありがとうございます。

    私のやったのもcx20さんのコメント同様ですね。

    '全モジュールをエクスポートする
    Sub ExportModules()

    Dim book As Workbook
    Dim doc As VBComponent
    Dim folder As String

    '対象ファイルを開く
    Set book = Workbooks.Open("XXXXXX")

    '一時フォルダ
    folder = "XXXXXXX\"

    '出力開始
    For Each doc In book.VBProject.VBComponents

    If doc.Type = vbext_ct_ClassModule Then
    doc.Export folder & "cls_" & doc.Name & ".txt"
    End If

    If doc.Type = vbext_ct_StdModule Then
    doc.Export folder & "mdl_" & doc.Name & ".txt"
    End If
    Next doc
    End Sub

    こんな感じで各モジュールをフォルダに出力し、あとはフリーソフトのDFで比較、というようにしました。

    ところで、この質問をキャンセルしてしまうといただいたコメントも消えてしまうんですよね?
    それはもったいないので、このまま〆切まで放置しておくのが良いのかな・・・。
  • id:llusall
    cx20さんのコメントで既出でしたね。
    すみません。^^;

    >you1982さん
    回答まで書かせてしまってすみません。^^;
  • id:cx20
    > この質問をキャンセルしてしまうといただいたコメントも消えてしまうんですよね?

    手動でキャンセルした場合は、この質問(ページ)が見れなくなりますが、1週間経って、自動キャンセル扱いになったものは、履歴に残るようです。
    (これが仕様なのかは不明ですが・・・(^^A)

    http://q.hatena.ne.jp/list/computer?page=16&sort=answer_count_asc

    <関連情報>
    http://i.hatena.ne.jp/idea/1748
    http://i.hatena.ne.jp/idea/10478
  • id:you1982
    たびたびありがとうございます。

    自分でキャンセルするとページが消えてしまうのに自動キャンセルなら残る、というのも考えてみたら変な話ですよね。そうなるとページを残したければ〆切状態にして一週間放置すれば良いわけで、だったら、最初から自分でキャンセルするときにページを残すかどうかを選べるようにした方が分かりやすいような気がするんです。

    勝手に想像すると現状の動作は裏仕様みたいなものなんでしょうね。はてなとしてはたぶん残したくないんでしょう。この件含めキャンセル関係のシステムの分かりにくさには、「キャンセルするな」「システムに余計な負担かけるな」というはてなの心の叫びを感じます(笑)
  • id:Yuzu-miso
    まだ、VBAの差分ツールをお求めでしょうか。
    小生も近年Excel VBAのお世話になっています。しかし、適当な差分ツールがなくて修正によるデグレーションの解析に手を焼いていました。この度、マクロ差分ツールを開発しましたので、是非評価をしていただければありがたく。

    近々にアップロードする予定です。
    URL:http://yuzu-miso.sakura.ne.jp です。

この質問への反応(ブックマークコメント)

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

絞り込み :
はてなココの「ともだち」を表示します。
回答リクエストを送信したユーザーはいません