Declare ステートメントの解説
概要
Declare ステートメントは、外部のプロシージャや関数、特にWindows APIやDLLライブラリの関数をVBAから利用するためのステートメントです。
意義
Excel VBAには標準で提供される機能に限りがあります。Declare ステートメントを使用することで、VBAの機能を拡張し、WindowsのAPIや他のDLLライブラリの機能を活用することができます。
構文
[Public | Private] Declare Function name Lib "libname" [Alias "aliasname"] [([arglist])] [As type]
パーツ
- Public/Private: プロシージャのスコープを指定します。省略された場合、デフォルトはPublicとなります。
- Function: 呼び出す外部の関数を指定します。
- name: VBAから呼び出す際の関数名。
- Lib: 外部のライブラリ名を指定します。
- Alias: ライブラリ内の実際の関数名。VBAでの関数名と異なる場合に使用します。
- arglist: 引数リスト。
- As type: 関数の返り値の型。
パラメータ
- name: 必須。VBAから参照する関数名。
- libname: 必須。外部のライブラリの名前。
- aliasname: オプション。ライブラリ内での関数名。
- arglist: オプション。関数の引数リスト。
- type: オプション。関数の返り値の型。
サンプルプロシージャ
Declare Function MessageBox Lib "user32" Alias "MessageBoxA" _ (ByVal hWnd As Long, ByVal lpText As String, ByVal lpCaption As String, ByVal wType As Long) As Long Sub メッセージボックスを表示() Call MessageBox(0, "こんにちは!", "VBAからのメッセージ", 0) End Sub
関連するステートメントや関数
- PtrSafe: 64ビット版のOfficeでDeclare ステートメントを使用する場合に必要なキーワード。
注意事項
- 使用するAPIやDLLによっては、Excelやシステムの動作に影響を及ぼすことがありますので、使用する際には十分な注意が必要です。
- 64ビット版のOfficeでは、Declare ステートメントの前に「PtrSafe」キーワードを追加する必要があります。