問題タブ [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.

0 投票する
2 に答える
2401 参照

vba - Excel VBAは関数またはサブルーチンを配列に格納します

C/C++ では、多数の関数 (ポインター) がある場合、それらを配列またはベクトルに格納し、それらのいくつかを特定の順序でまとめて呼び出すことができます。VBAで同様のことができますか?

ありがとう!

0 投票する
1 に答える
185 参照

vba - モジュールで定義されたメソッドを繰り返す

私は最近 VBIDE ライブラリについて知りましたが、まだすべての機能を把握していません。プロジェクトで見つかったクラスに基づいて正しいクラスをインスタンス化するメソッドを作成したいと考えています。インスタンス化する候補として適合するクラスImplement InterfaceA、およびインスタンス化する正確なクラスにはプロパティがMTypeあり、それが返されますEnumerated Value Correct

Correctしたがって、Propertyを返す Class を見つけてMType、その Class をインスタンス化するために、プロジェクトで定義されたクラスを反復処理する方法を要約すると、

これまでのところ、次のコードを使用してモジュールを反復処理できることがわかっています。

私が今欠けているものは、各クラスのメソッド/プロパティを反復処理して、これらのメソッドが返すものを見つけるにはどうすればよいですか?

これが私が見つける必要があるメソッドです。それが返す値によってクラスごとに異なります:

ご覧のとおり、このプロパティは非常に単純で、常に同じ値を返すと想定しています。

更新: Dough Gancy の観察によると、回答の一部はここにあります。プロシージャ行を反復処理するために使用できます。これらの行ProcBodyLine(InterfaceA_MType)は 、. ProcCountLines(InterfaceA_MType)IModel_MType = Correct

これにより、コード モジュールに基づくクラスのインスタンス化のみが除外されます。それ、どうやったら出来るの?

0 投票する
2 に答える
6211 参照

vba - グレー表示された VBA プロジェクト オブジェクト モデルへのアクセスを信頼する

私は MS Office 2013 を使用しています。テスト目的で、[VBA プロジェクト オブジェクト モデルへのアクセスを信頼する] チェック ボックスをオフにする必要があります。しかし、グレー表示されている(そしてチェックされている)ので、そうすることができません。

その理由は何でしょう。チェックボックスを有効にするにはどうすればよいですか?

トラスト センターの画像

0 投票する
1 に答える
847 参照

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 "リフレクション" マジック (魔法のようなもの) から ... から ... わからない -コメント必要なファンキーなポインターを含むコード-実用的なソリューションになる可能性のあるリードは大歓迎です。ITypeInfounsafe// here be dragons


私の知る限り、VBEアドインはホストと同じプロセスに存在するため、VBAプロジェクトのどこかにポインタがThisWorkbookありSheet1、その他のドキュメントタイプがあります。VBComponent

どうにかしてそのポインターをつかむ必要があり、必要な場所にいると思います。