問題タブ [vbide]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
vba - Excel VBAは関数またはサブルーチンを配列に格納します
C/C++ では、多数の関数 (ポインター) がある場合、それらを配列またはベクトルに格納し、それらのいくつかを特定の順序でまとめて呼び出すことができます。VBAで同様のことができますか?
ありがとう!
vba - モジュールで定義されたメソッドを繰り返す
私は最近 VBIDE ライブラリについて知りましたが、まだすべての機能を把握していません。プロジェクトで見つかったクラスに基づいて正しいクラスをインスタンス化するメソッドを作成したいと考えています。インスタンス化する候補として適合するクラスImplement
InterfaceA
、およびインスタンス化する正確なクラスにはプロパティがMType
あり、それが返されますEnumerated Value
Correct
。
Correct
したがって、Propertyを返す Class を見つけてMType
、その Class をインスタンス化するために、プロジェクトで定義されたクラスを反復処理する方法を要約すると、
これまでのところ、次のコードを使用してモジュールを反復処理できることがわかっています。
私が今欠けているものは、各クラスのメソッド/プロパティを反復処理して、これらのメソッドが返すものを見つけるにはどうすればよいですか?
これが私が見つける必要があるメソッドです。それが返す値によってクラスごとに異なります:
ご覧のとおり、このプロパティは非常に単純で、常に同じ値を返すと想定しています。
更新: Dough Gancy の観察によると、回答の一部はここにあります。プロシージャ行を反復処理するために使用できます。これらの行ProcBodyLine(InterfaceA_MType)
は
、. ProcCountLines(InterfaceA_MType)
IModel_MType = Correct
これにより、コード モジュールに基づくクラスのインスタンス化のみが除外されます。それ、どうやったら出来るの?
vba - グレー表示された VBA プロジェクト オブジェクト モデルへのアクセスを信頼する
私は MS Office 2013 を使用しています。テスト目的で、[VBA プロジェクト オブジェクト モデルへのアクセスを信頼する] チェック ボックスをオフにする必要があります。しかし、グレー表示されている(そしてチェックされている)ので、そうすることができません。
その理由は何でしょう。チェックボックスを有効にするにはどうすればよいですか?
c# - `ThisWorkbook` が `Workbook` であることをどのように知ることができますか?
私は VBIDE API を使用していますが、ホスト アプリケーションが Excel である、または Office アプリであるとは想定できません。
だから私が知っているのは、私が を見ていることVBComponent
、そしてそれが であることだけType
ですvbext_ct_document
。
VBE の即時ペインで、次の出力を取得できます。
But the Sheet1
object only exists in the runtime environment, so if I'm a C# add-in I don't even see it.
The only thing that gets anywhere close to what I need, is via the Parent
and Next
properties of the component:
This gets me the type names I'm after... but on the wrong component! And for ThisWorkbook
, which is the top-level document object, I get the Application
object as the Parent
:
このアプローチは潜在的に有用ですが、ホスト アプリケーションが Excel の場合、「アプリケーション」タイプの「親」プロパティを持つコンポーネントがインスタンスであることを認識しているホスト固有のロジックをハードコードする場合に限りWorkbook
ます。他のホストの他のドキュメント モジュールもその「親」プロパティを持っているので、私はほとんど困惑しています。
p/invoke 呼び出しや低レベルの COM "リフレクション" マジック (魔法のようなもの) から ... から ... わからない -コメントが必要なファンキーなポインターを含むコード-実用的なソリューションになる可能性のあるリードは大歓迎です。ITypeInfo
unsafe
// here be dragons
私の知る限り、VBEアドインはホストと同じプロセスに存在するため、VBAプロジェクトのどこかにポインタがThisWorkbook
ありSheet1
、その他のドキュメントタイプがあります。VBComponent
どうにかしてそのポインターをつかむ必要があり、必要な場所にいると思います。