Excel エラーが起きたら・・・

MsgBoxの使い方

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

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

対策の一つにプログラムの途中にmsgboxを入れておくと、そこでstopしてその時点での変数などの値を教えてくれます。

① MsgBoxの書き方

・msgboxと小文字で書けばMsgBoxと自動で修正してくれます。

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

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

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

・Option Explicit

Private Sub CommandButton1_Click()
MsgBox (“こんにちは”)
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で表示させる例として挙げました。 また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 & “です。”) と書くと図の様に表示されるわけです。

———————————-

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

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

各変数の意味は図を参照ください。

やっていることは;
・「Sheet1上のデータを消しますか」とMsgBoxで確認する

・Noなら何もせず処理を終える

・YesならSheet1上のデータ(ここでは乱数)を全部廃棄する。

これで応答型MsgBoxを使えるようになりました、多分。

 

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

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

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

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

VBA別館
有名俳句集 ver1.1

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