Staticプロシージャというものがある

Staticプロシージャというものがある

知ってました?

私は全然知らなかった。

f:id:akashi_keirin:20190626205315j:plain

何気なく『Programming Excel with VBA and .NET』という本を読んでいたら、58ページに、

Private Static Sub Proc3()
    ' In Static Procedures, all local variables are Static.
    ' Static procedures may be Private, Public, or Friend.
End Sub

と書いてあった。

マ、マジっすか……?!

全然知らなかったよ!

実験

標準モジュールに次のコードを書いて実験。

リスト1 標準モジュール
Private Static Sub testStaticProcedure()
  Dim i As Long
  i = i + 1
  Call MsgBox("ち~んw:" & i & "回目")
End Sub

こいつを何度も実行する。

In Static Procedures, all local variables are Static.

これが本当なら、実行するごとにiの値がインクリメントされるはずだ。

いざ、実行!

f:id:akashi_keirin:20190626205325g:plain

ほ、ほんまや……。

おわりに

何か、使いどころはあるかなあ。

小ネタでした。