私は Excel 2010 を使用しています。バックグラウンド (VBA) でコードが時々成長しています。ソース コードを xls ファイルから分離する方法を見つけようとしているので、コードの変更を比較できます。つまり、コードをテキスト ファイルにして、Excel ファイルを開くたびに、マクロのソース コードがこのファイルから取得されるようにしたいと考えています。
前もって感謝します!
SOでこの質問を見てください。
SourceTools と呼ばれるアドインについての言及があり、私が使用して価値があると判断しました。
また、ソース コードが付属しているため、使用に固有のソース コード管理ソフトウェア (SVN など) を指すように変更できます。
私が提供したリンクにはあなたと同じ質問があり、あなたが探していると思われるものに答えているので、この質問を閉じてください.
次のような、VBA で使用できるさまざまなコード クリーナー アプリ/コードをご覧ください。
http://www.appspro.com/Utilities/CodeCleaner.htm
とりわけ、これらはモジュール/フォーム/クラスをテキスト ファイルにエクスポートし、それらを削除してから、プロジェクトに再挿入します。
いくつかの改造で、それはあなたが求めているものの基礎を形成します.
もう 1 つの可能性: 私は Excel で多くのことを行うわけではありませんが、Excel のアドインが PowerPoint のアドインと同じように動作する場合は、それも役立つかもしれません。PPT では、インストールされたアドインは PowerPoint の起動時に自動的に読み込まれ、必要なユーザー インターフェイスを作成し、アプリで開いているファイルで使用できます。コードを更新するには、コードを変更して新しいアドインを作成し、PPT が探している場所に配置して、PPT を再起動します。出来上がり...すべてのPPTファイルのコードが更新されました。
まず、皆さんの回答に感謝します。私の解決策は次のとおりです。1.すべてのモジュールを* .basにエクスポートします(モジュールごとに1つのファイル)。2. 私の呼び出し元のモジュール コードを追加します。
Application.VBE.ActiveVBProject.VBComponents.Import (filename)
ファイルごとに.. 3.終了後:
Set VBComp = VBProj.VBComponents(moduleName)
If Err.Number = 0 Then 'no error
VBProj.VBComponents.Remove VBComp
これはモジュールを削除するため、終了する前に xls に保存されません。
このようなシナリオでは、手動プロセスをお勧めします。
のバックアップを取りたいと仮定しModule1
、それを右クリックして [ファイルのエクスポート] をクリックします。[ファイルのエクスポート] ダイアログ ボックスが表示されます。名前を付けて保存します。たとえばModule1 - 22 Apr - 2012.bas
、関連する場所に保存します。そして、あなたは終わった
これはどのように役立ちますか?
1)ファイル名の日付は、バックアップが作成された日付を示しているため、実際にマクロが変更された日付を追跡できます。
2) .Bas
ファイルはメモ帳で開くことができます。これは、現在の VBA コードを関連するバックアップ ファイルと比較するのに役立ちます。
3)いつでも特定の日付からバックアップを取得したい場合は、既存のモジュールを削除し (必要に応じてバックアップを取ります)、[ファイルのインポート] をクリックして VBA にインポートします。
HTH