メッセージボックスの使い方

VBAでプログラムを書いた後、プログラムを動かすとエラー続出なんてことは日常茶飯事です、僕は。

そこで対策を考える訳ですが、いつもすぐcodeのエラーを見つけられるわけではありません、僕は。

デバッグする方法としては、「ブレークポイント」や「イミディエイト・ウインドー」が正統派でしょうが、僕はcodeの中にその方法を入れ込んで、エラーが解決しても変数チェック機能として残しておきます。

一つのデバッグ方法としてプログラムの途中にmsgboxを使う方法があります。 そこでstopしてその時点での変数などの値を教えてくれます。

① MsgBoxの使い方(書き方)

・msgboxと小文字で書いても正式のMsgBoxと自動で修正してくれます。

・よく急いでsmgboxなどとタイプすると、そのままで変換されませんので、すぐスペルエラーと分かります。

では基本的な使い方を述べます。

・変数とかの表示ではなく、プログラムを一時ストップさせたいところに MsgBox (“こんにちは”) と書きます。

‘———————————

Private Sub CommandButton1_Click()
  ・・・・処理codeが入っている・・・
  MsgBox (“こんにちは”) —>ここまでのエラーの有無が分かる

  ・・・処理codeが続く

End Sub

‘——————————–

・すると図の様に表示されて、プログラムはそこで一時ストップします。 ということはそこまでは問題なく動作したということになります。 これだけでは殆ど意味有りませんので、変数の値を表示させましょう。

http://bbs5-imgs.fc2.com//bbs/img/_868900/868857/full/868857_1536481978.jpg
 
 

 

② 変数を表示させる

例として1+2+3+・・・+100の計算をさせるcodeを書きます。

変数nとmを宣言します。n=100の時の合計が変数mに格納されます。

その値をmsgboxで表示させる例題です。 sheet上でやればよいだけの話ですが、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 & “です。”) と書くと図の様に表示されるわけです。

http://bbs5-imgs.fc2.com//bbs/img/_868900/868857/full/868857_1536535718.jpg

 

 

 ③ 応答型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も完璧ですね。

http://bbs5-imgs.fc2.com//bbs/img/_868900/868857/full/868857_1536621424.jpg

VBA別館
最終セルの番地を調べる

知っていてもすんなりcodeは出てきませんので、便利帳代わりに書いておきます。① データの最終行を知 …

VBA別館
有名俳句集 ver1.1

一茶や芭蕉などの有名俳句をまずは200句学んでみましょう。スタートすると俳句が出てきて2秒後にその俳 …

VBA別館
どのサイズまで印刷できるかな?

少し見栄えの良い写真を、大きくプリントすることになりました。前回その辺のところは書きました。 今回は …