VBA別館・Python別館
MsgBoxの使い方 (完) - Tak
2018/09/09 (Sun) 17:32:57
VBAでプログラムを書いた後、プログラムを動かすとエラー続出なんてことは日常茶飯事です、僕は。
そこで対策を考える訳ですが、いつもすぐcodeのエラーを見つけられるわけではありません、僕は。
対策の一つにプログラムの途中にmsgboxを入れておくと、そこでstopしてその時点での変数などの値を教えてくれます。
① MsgBoxの書き方
・msgboxと小文字で書けばMsgBoxと自動で修正してくれます。
・よく急いでsmgboxなどとタイプすると、そのままで変換されませんので、すぐスペルエラーと分かります。
では基本的な使い方を述べます。
・変数とかの表示ではなく、プログラムを一時ストップさせたいところに MsgBox ("こんにちは") と書きます。
・Option Explicit
Private Sub CommandButton1_Click()
MsgBox ("こんにちは")
End Sub
・すると図の様に表示されて、プログラムはそこで一時ストップします。 ということはそこまでは問題なく動作したということになります。
これだけでは殆ど意味有りませんので、変数の値を表示させましょう(次回)。
Re: MsgBoxの使い方 - Tak
2018/09/10 (Mon) 08:27:05
② 変数を表示させる
例として1+2+3+・・・+100の計算をさせるcodeを書きます。
変数nとmを宣言します。n=100の時の合計が変数mに格納されます。
その値をmsgboxで表示させる例題です。 sheet上でやればよいだけの話ですが、msgboxで表示させる例として挙げました。 またVBA機能としてイミディエイト・ウインドーと言う本格的な変数チェック機能もありますが、ここではmsgboxで確認する方法を述べてます。
------------------------------
Private Sub CommandButton1_Click()
Dim n As Long, m As Long
n = 100
m = n * (n + 1) / 2
MsgBox ("1から100までの合計は= " & m & "です。")
End Sub
------------------
m = n * (n + 1) / 2 多分高校の数学で習う式です。 何でもよいですから、変数を宣言して確認してみましょう。
MsgBox ("1から100までの合計は= " & m & "です。") の説明をします。
・msgboxは()の中に書き込みます。 半角英数字。
・文字列は必ず""で囲みます。 ”"は必ず半角(全角で入れても自動で半角になる)。 ""のなかなら日本語OK。
・変数はそのまま使います。
・文字列と変数を一緒に表示したいときは、& でつなぎます。
よって、 MsgBox ("1から100までの合計は= " & m & "です。") と書くと図の様に表示されるわけです。
応答型MsgBox - Tak
2018/09/11 (Tue) 08:17:04
③ 応答型MsgBoxの完璧な使い方
先にcodeを書きます。
----------------------
Option Explicit
Private Sub CommandButton1_Click()
Dim myBtn As Integer, myMsg As String
Dim myTitle As String
myMsg = "データを削除しますか?"
myTitle = "データの確認"
myBtn = MsgBox(myMsg, vbYesNo + vbExclamation, myTitle)
If myBtn = vbYes Then
Worksheets("Sheet1").Activate
Cells.ClearContents
End If
End Sub
-------------------------------
各変数の意味は図を参照ください。
やっていることは;
・「Sheet1上のデータを消しますか」とMsgBoxで確認する
・Noなら何もせず処理を終える
・YesならSheet1上のデータ(ここでは乱数)を全部廃棄する。
これで応答型MsgBoxの稿を終わります。