エクセルVBEモジュールにif then elseを使ってマクロを書きました。thenとelseの中間ぐらいでmsgbox”お知らせ”を書いて実行するとメッセージボックスは正しく表示します。しかしポインターがメッセージボックスウィンドウの外にあるときは砂時計が動き続け、メッセージボックスの上に置けば普通の矢印に変わります。砂時計を出さない方法はどうしたらよいのでしょうか。msgbox”お知らせ”の下行に続けてexit subまたはon error goto 0を書いてもやはり時計がでてしまいます。どうしたらよいのでしょうか。
No.3ベストアンサー
- 回答日時:
コード実例が書いてなくて、情況が理解しづらく、言っていることがおかしいように思う。
挿入ー標準モジュールに(標準モジュールに入れてますか)
Sub test01()
If Cells(1, "A") = "1" Then
MsgBox "1です"
Else
MsgBox "1では在りません"
End If
End Sub
と入れてA1セルに1を入れて実行。
また2を入れて実行。
で質問と同じ現象になりますか?
質問者のコードはこれと似たようなコードですか。
そもそも質問をするのに、短いならばコードを挙げて質問するものですよ。
一瞬以上の砂時計が出るとは考えられない。
砂時計が出るのは、内部処理に時間がかかっているためで、
OSの仕組みに根ざしているので、出さないようにすると言う選択肢は、普通それだけを問題にされない。
ユーザー側で意識的に出すようにするのか下記コード。
他にカーソルポインターの形は、変えることが出来る。
http://support.microsoft.com/kb/408038/jaを参照。
時間がかかる処理をやってみると
Sub test02()
For i = 1 To 100000000
i = i + 1
Next i
MsgBox "終了"
End Sub
のようなものだと数秒間は砂時計が現れるとおもう。
ーーーー
他にマウスカーソルをエクセル画面内で変える
ub test02()
'Application.Cursor = xlWait '砂時計
'Application.Cursor = xlDefault
Application.Cursor = xlNorthwestArrow
'Application.Cursor = xlIBeam
For i = 1 To 100000000
i = i + 1
Next i
MsgBox "終了"
End Sub
の上の4行。しかしこれは処理中の砂時計と同類のことではない。
かなり長いマクロだったので全部読んでいただくのが悪い気がして簡単に書きすぎました。もう少し表現が上手になるよう努力します。
Application.Cursor = xlDefaultをメッセージの直前に挿入したら砂時計は出なくなり、無事次へ進めることができました。ありがとうございます。
No.2
- 回答日時:
ANo.1です。
更に付け加えると、メッセージ表示の間、マクロは待機状態にあります。よって、「OK」ボタンをクリックした後、MsgBoxの次のステートメントが実行されます。No.1
- 回答日時:
メッセージボックスが表示されている間は、まだマクロ実行の途中にあります。
従って、砂時計が表示されます。「OK」ボタンをクリックしてマクロを終了するまで、砂時計は消えません。お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) エクセルのマクロについて教えてください。 7 2023/07/04 09:18
- Excel(エクセル) エクセルVBAでオブジェクトが必要です 2 2022/09/10 16:37
- Visual Basic(VBA) excel2021で実行できないマクロ。どこを直したらいいのか 2 2022/03/28 03:40
- Visual Basic(VBA) パーソナルXLSBのfuctionを呼び出すと「Functionが定義されていません」のエラーになる 2 2022/08/22 22:51
- Visual Basic(VBA) VBAの繰り返し処理について教えてください。 3 2022/08/02 13:21
- Visual Basic(VBA) ファイル全てを .xlsm に変更したところ、プログラムが途中で落ちてしまっています 17 2022/12/07 12:03
- Visual Basic(VBA) オブジェクトが見つかりません 1 2023/06/24 19:43
- Visual Basic(VBA) エクセルのマクロについて教えてください。 2 2023/07/06 17:46
- Visual Basic(VBA) 【Excel VBA】自動メール送信の機能追加 5 2022/09/29 12:53
- Visual Basic(VBA) VBAのユーザーフォームのテキストボックスに入力制限をしたい 6 2022/11/15 08:28
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
VBAで行コピーして挿入
-
VBA Shapes コピーと名前
-
エクセル連番自動印刷について
-
セルに入力するたびにマクロを...
-
エクセルのマクロについて教え...
-
Excelでマクロ実行中に画面を固...
-
EXCEL VBA 他のアプリケーショ...
-
【ExcelVBA】マクロブックを通...
-
別のexcelのデータをコピペするVBA
-
エクセル メニューバーの中の...
-
excel 2010 範囲内 同じ文字 ...
-
エクセルファイルを値でのみし...
-
WPSOffice_マクロの有効化について
-
VBAで保存しないで閉じると空の...
-
エクセル関数>参照ファイル名...
-
Excelのマクロでボタンを押すと...
-
エクセルの表を複数枚印刷した...
-
名前の変わるブックをアクティ...
-
LDPlayerのマクロの編集方法を...
-
【マクロ】必要な項目(列)の...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
エクセルファイルを値でのみし...
-
エクセルのマクロについて教え...
-
Excelでマクロ実行中に画面を固...
-
VBA Shapes コピーと名前
-
エクセル マクロ写真帳に一括で...
-
エクセル連番自動印刷について
-
エクセル 図形の寸法を取得したい
-
【Excel】マクロでページを追加...
-
セルに入力するたびにマクロを...
-
エクセルVBAで納期管理システム...
-
ブックの共有でVBAエラー
-
EXCEL VBA 他のアプリケーショ...
-
VBAで行コピーして挿入
-
EXCEL 行番号や列番号が選択で...
-
【ExcelVBA】マクロブックを通...
-
ExcelのVBAで自動採番したい...
-
エクセルファイルの回数期限の...
-
シート名を記入する
-
VB.NETによるEXCELの行挿入
-
エクセルのマクロを教えてください
おすすめ情報