Excel VBA質問箱 IV

当質問箱は、有志のボランティア精神のおかげで成り立っています。
問題が解決したら、必ずお礼をしましょうね。
本サイトの基本方針をまとめました。こちら をご一読ください。

投稿種別の選択が必要です。ご注意ください。
迷惑投稿防止のため、URLの入力を制限しています。ご了承ください。


12552 / 13646 ツリー ←次へ | 前へ→

【9957】単純にメッセージだけの表示 BMA 03/12/25(木) 14:32 質問
【9959】Re:単純にメッセージだけの表示 BOTTA 03/12/25(木) 16:19 回答
【9960】Re:単純にメッセージだけの表示 Jaka 03/12/25(木) 16:43 回答

【9957】単純にメッセージだけの表示
質問  BMA  - 03/12/25(木) 14:32 -

引用なし
パスワード
   初心者ですみません。
マクロを実行中に単純にメッセージだけを表示させたいのですが、
どうすればいいでしょぅか。
例えば「マクロ実行中…」のようにしたいのです。
MsgBox以外でそういうことができるのでしょうか。
よろしくお願いします。

【9959】Re:単純にメッセージだけの表示
回答  BOTTA  - 03/12/25(木) 16:19 -

引用なし
パスワード
   BMAさん、こんにちは。
>マクロを実行中に単純にメッセージだけを表示させたいのですが、
>どうすればいいでしょぅか。
>例えば「マクロ実行中…」のようにしたいのです。
>MsgBox以外でそういうことができるのでしょうか。

どこへ、表示させましょうか?
よく使うのが、ステータスバーに表示する方法。
Sub aaa01()
Application.StatusBar = "マクロ実行中・・・"
'
'
'    何か処理
'
'
Application.StatusBar = False
End Sub

または、TextBoxをシート上に挿入する方法。
Sub aaa02()
Dim MyTxtBx As Shape
  Set MyTxtBx = ActiveSheet.Shapes.AddTextbox(1, 100, 100, 250, 40)
  With MyTxtBx
    .Fill.Visible = msoFalse
    .Line.Visible = msoFalse
    With .TextFrame.Characters
      .Text = "マクロ実行中・・・"
      .Font.Size = 30
      .Font.ColorIndex = 3
    End With
  End With
  DoEvents
'
'
'    何か処理
'
'
MyTxtBx.Delete: Set MyTxtBx = Nothing
End Sub

【9960】Re:単純にメッセージだけの表示
回答  Jaka  - 03/12/25(木) 16:43 -

引用なし
パスワード
   BOTTA さん こんにちは。
横レス失礼します。
書いちゃったんで、BOTTAさんとかぶる所も有りますが載せます。

1、
初めにユーザーフォームを作ってラベルに「マクロ実行中…」書いておく。

フォームモジュール

Private Sub UserForm_Activate()
  DoEvents
  メインマクロ名
  Unload Me
End Sub

標準モジュール

Sub 実行マクロ()
  UserForm1.Show
End Sub

Sub メインマクロ名()
  Application.Wait Now + TimeValue("00:00:03")
End Sub

2、
Application.DisplayStatusBar = True
Application.StatusBar = "マクロ実行中…"
'やりたいマクロをここに書く
Application.Wait Now + TimeValue("00:00:03")
Application.StatusBar = ""
Application.DisplayStatusBar = False

3、
Set myShape1 = ActiveSheet.Shapes.AddTextEffect(msoTextEffect11, _
      "マクロ実行中…", "MS ゴシック", 28, msoFalse, msoFalse, 120, 100)
DoEvents
'やりたいマクロをここに書く
Application.Wait Now + TimeValue("00:00:03")
myShape1.Delete
Set myShape1 = Nothing

4、
3のように毎回ワードアートを作るのは嫌な場合、初めに作っておいて名前を「実行表示」とでも付けておき、それを表示させたり隠したりする方法。

ActiveSheet.Shapes("実行表示").Visible = True
DoEvents
DoEvents   '← 私のPCは、トロイので2個必要でした。
'やりたいマクロをここに書く
Application.Wait Now + TimeValue("00:00:03")
ActiveSheet.Shapes("実行表示").Visible = False

12552 / 13646 ツリー ←次へ | 前へ→
ページ:  ┃  記事番号:
2610219
(SS)C-BOARD v3.8 is Free