次の方法で共有


Application.HinstancePtr プロパティ (Excel)

指定した Application オブジェクトによって表される Excel のインスタンスへのハンドルを返します。 読み取り専用のバリアント型 (Variant) の値。

構文

HinstancePtr

expressionApplication オブジェクトを 表す変数。

注釈

このプロパティは、Excel の 32 ビット バージョンと 64 ビット バージョンの両方で正しいハンドルを返します。 Application オブジェクトの Hinstance プロパティの機能が拡張されます。これは、32 ビット バージョンの Excel でのみ正しく動作します。

このプロパティで使用する理想的なデータ型は LongPtr データ型です。 このプロパティによって返される値を LongPtr 変数に割り当てると、32 ビット バージョンと 64 ビット バージョンの Excel の両方で期待どおりに機能します。 このプロパティは、内部での実装に関する理由で、バリアント型 (Variant) として定義されます。 ただし、常に、32 ビット システム上では 32 ビットの値、64 ビット システム上では 64 ビットの値を取得します。

このプロパティは、Excel 以降のみで動作し、64 ビット版の Excel でのみ必須です。 コンパイル エラーを回避するために、以前のバージョンの Excel でも動作するコードを記述する必要がある場合は、条件付きコンパイル ディレクティブでこのプロパティを #if Win64 読み取り、 ディレクティブの下で Hinstance プロパティを #else 使用します。

このプロパティは、Excel 以降の 32 ビット環境と 64 ビット環境の両方で正常に動作することに注意してください。 したがって、コードが Excel 以降 (32 ビットまたは 64 ビット) でのみ使用することを目的としている場合は、条件付きコンパイルなしでこのプロパティを読み取ることができます。

64 ビット環境で VBA を使用する方法の詳細については、「64 ビット Visual Basic for Applicationsの概要」を参照してください。

この例では、メッセージ ボックスに Excel インスタンス ハンドルがユーザーに表示されます。

Sub CheckHinstance() 
    MsgBox Application.HinstancePtr 
End Sub

サポートとフィードバック

Office VBA またはこの説明書に関するご質問やフィードバックがありますか? サポートの受け方およびフィードバックをお寄せいただく方法のガイダンスについては、Office VBA のサポートおよびフィードバックを参照してください。