4

Excel2007のVisualBasicEditorを使用していると仮定します。次の名前のモジュールを1つ作成しますmodGlass

Sub VolatileGlass()
    Dim Glass As shiny_surface

End Sub

次に、次の名前の2番目のモジュールを作成しますmodMetal

Sub durableMetal()
    Dim metal As metal_compound

End Sub

ここに画像の説明を入力してください

両方のモジュールの潜水艦にはエラーが含まれています:"User-defined type not defined."

Debug:Compile VBAProjectメニューエントリを使用してプロジェクトをコンパイルすると、modGlassモジュールは常に最初にコンパイルされます。もし私が:

  • モジュールをダブルクリックしてmodMetalコンパイルします(それ?)または
  • 名前modMetalを変更しamodMetalます(金属モジュールがプロジェクトのモジュールツリー階層の最初になるように)

それでも、modGlassモジュールは最初にコンパイルされます。

質問:VBEに複数のモジュールがあるプロジェクトがある場合、モジュールをコンパイルする順序を指定する方法はありますか?

私はこの機能を本当に必要としませんが、それを行うための簡単な方法があるかどうかだけ知りたいです。私はExcel2007を使用しています。

4

1 に答える 1

4

モジュールは、名前に基づいてコンパイルされるのではなく、作成された順序でコンパイルされます。したがって、前に「a」を付けてもかまいません。modMetal

テストするには、2つのモジュールを作成します。両方のモジュールにエラーがあることを確認します。コンパイルすると、最初に作成されたモジュールが最初にコンパイルされることに気付くでしょう。次に、最初のモジュールを削除して再作成します。今回コンパイルすると、2番目(新しく作成されたものではない)が最初にコンパイルされます:)

いいえ、残念ながら、そのシーケンスを指定する直接的な方法(AFAIK)はありません。しかし、それを行うための汚い方法は、私が上で提案したことに基づいています。すべてのデータをメモ帳にコピーしてから、すべてのモジュールを削除してから、最初から(コンパイルする順序で)再作成します。

HTH

于 2013-03-22T20:12:20.560 に答える