【VBA】Declare ステートメントってなに?
こんにちは
今回は自分が疑問に思ったものです。
少し複雑な処理を考えていたところ、Sub Functionの前にDeclare Function ~という記載がありました。Declare Functionについて全く知らないため少し調べてみようとおもいます。
Declare Function(Declareステートメント)とも呼ぶらしいですね。
Declare ステートメントってなに?
外部ファイル内で実装されているプロシージャへの参照を宣言します。
引用元-Microsoft
流石Microsoftさん、つまり外部のプロシージャに引数を送って処理を行っているわけですね。そしてDeclareステートメントはこれらを使いますよという宣言みたいなものですかね(よく分かってない)
Declare ステートメントを使うには
シートモジュールではなく、標準モジュールに記載しないとならない様子です。理由を調べたのですが分かりやすく書いていなかったり、記載されていないことが多かったため探すのを断念!
というわけで標準モジュールを追加してみましょう。
1.VBEの[挿入]から[標準モジュール]をクリック
2.左に追加されたModule1をダブルクリック
ためしに実行してみる
試しに以下のプログラムを追加したMuduleに入力して実行してみましょう
※音が鳴るのでPCの音量を下げてから実行してください
Declare Function BeepAPI Lib "kernel32.dll" Alias "Beep" _
(ByVal dwFreq As Long, ByVal dwDuration As Long) As Long
Sub Macro2()
Call BeepAPI(300, 500)
Call BeepAPI(800, 1000)
End Sub
どうでしょう、音は鳴りましたか?
こうやってDeclare Functionを実行するんですね、ひとつ勉強になりました。