自分方位研究所

日々の活動記録

Excel VBA 「ユーザー定義関数」の作成 (はい/いいえ メッセージボックス)

10年以上前に作成した株価ダウンロードツール。ながらくほったらかしで、走らせても結果出力先のフォルダが無くなっていたり、ダウンロード先のページが仕様変更になっていたりと 不具合続出。プロシージャの分割がいい加減で、一つの固まりが巨大すぎたり、同じコードがあちこちに繰返し書かれていたりと、動けばいいや的に作ってあるのでメンテナンスが大変過ぎ。ということで、一から作成し直すことにしました。

繰返し使えるものは関数化するなど、自分なりに考えて作っていこうと思います。
きょうはその第一弾。「マクロ実行しますか?」のメッセージボックスを表示するコードを作成しました。

'--------------------------------------------------
Sub TestMsgBox()

Dim Msg As String
Dim Title As String

Msg = "実行しますか?"
Title = "開始確認"

If FNC_YesNoMsgBox(Msg, Title) = 6 Then
     MsgBox "「はい」が押されました。"
Else
     MsgBox "「いいえ」が押されました。"
End If

End Sub

'--------------------------------------------------

Function FNC_YesNoMsgBox(Msg, Title) As Byte

'はい/いいえ メッセージボックス表示

Dim BTN As Byte 
Dim ICN As Byte 
Dim DEF As Byte 

BTN = 4 'はい /いいえ
ICN = 32 '=問い合わせ/48=注意/64=情報/16=警告/
DEF = 0 '第1ボタンを標準ボタンにする

FNC_YesNoMsgBox = MsgBox(Msg, BTN + ICN + DEF, Title)

' [はい] = 6
' [いいえ] = 7

End Function

'--------------------------------------------------