Declareステートメント 解説(Excel VBA)

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」キーワードを追加する必要があります。