3

私は Excel 2010 を使用しています。バックグラウンド (VBA) でコードが時々成長しています。ソース コードを xls ファイルから分離する方法を見つけようとしているので、コードの変更を比較できます。つまり、コードをテキスト ファイルにして、Excel ファイルを開くたびに、マクロのソース コードがこのファイルから取得されるようにしたいと考えています。

前もって感謝します!

4

4 に答える 4

2

SOでこの質問を見てください。

SourceTools と呼ばれるアドインについての言及があり、私が使用して価値があると判断しました。
また、ソース コードが付属しているため、使用に固有のソース コード管理ソフトウェア (SVN など) を指すように変更できます。

私が提供したリンクにはあなたと同じ質問があり、あなたが探していると思われるものに答えているので、この質問を閉じてください.

于 2012-04-22T19:06:32.273 に答える
1

次のような、VBA で使用できるさまざまなコード クリーナー アプリ/コードをご覧ください。

http://www.appspro.com/Utilities/CodeCleaner.htm

とりわけ、これらはモジュール/フォーム/クラスをテキスト ファイルにエクスポートし、それらを削除してから、プロジェクトに再挿入します。

いくつかの改造で、それはあなたが求めているものの基礎を形成します.

もう 1 つの可能性: 私は Excel で多くのことを行うわけではありませんが、Excel のアドインが PowerPoint のアドインと同じように動作する場合は、それも役立つかもしれません。PPT では、インストールされたアドインは PowerPoint の起動時に自動的に読み込まれ、必要なユーザー インターフェイスを作成し、アプリで開いているファイルで使用できます。コードを更新するには、コードを変更して新しいアドインを作成し、PPT が探している場所に配置して、PPT を再起動します。出来上がり...すべてのPPTファイルのコードが更新されました。

于 2012-04-22T16:02:36.990 に答える
1

まず、皆さんの回答に感謝します。私の解決策は次のとおりです。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 に保存されません。

于 2012-04-24T08:58:36.660 に答える
0

このようなシナリオでは、手動プロセスをお勧めします

のバックアップを取りたいと仮定しModule1、それを右クリックして [ファイルのエクスポート] をクリックします。[ファイルのエクスポート] ダイアログ ボックスが表示されます。名前を付けて保存します。たとえばModule1 - 22 Apr - 2012.bas、関連する場所に保存します。そして、あなたは終わった

これはどのように役立ちますか?

1)ファイル名の日付は、バックアップが作成された日付を示しているため、実際にマクロが変更された日付を追跡できます。

2) .Basファイルはメモ帳で開くことができます。これは、現在の VBA コードを関連するバックアップ ファイルと比較するのに役立ちます。

3)いつでも特定の日付からバックアップを取得したい場合は、既存のモジュールを削除し (必要に応じてバックアップを取ります)、[ファイルのインポート] をクリックして VBA にインポートします。

ここに画像の説明を入力

HTH

于 2012-04-22T15:51:03.710 に答える