• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:シートが表示された時にメッセージを表示したい)

シート表示時にメッセージを表示する方法

このQ&Aのポイント
  • win7・Excel2007でマクロ作成中の初心者です。ブックAのユーザーフォームのコマンドボタンクリックでブックBのシートCを表示させ、メッセージボックスを即座に表示させたいです。しかし、現在のコードでは、シートCを表示させると同時にメッセージボックスも表示されてしまいます。シートを開いてからメッセージボックスを表示するにはどうすればよいでしょうか?
  • 質問者はwin7・Excel2007でマクロ作成中の初心者です。現在、コマンドボタンをクリックするとシートCが表示され、同時にメッセージボックスも表示されてしまいます。質問者の希望は、シートCを表示させてからメッセージボックスを表示させることです。質問者はどのようにすればよいか教えてほしいとしています。
  • 初心者の質問者はwin7・Excel2007でマクロ作成中です。ブックAのユーザーフォームのコマンドボタンをクリックすると、ブックBのシートCを表示させ、同時にメッセージボックスを表示させたいと考えています。しかし、現在のコードではシートCを表示させると同時にメッセージボックスも表示されてしまいます。どのようにすれば、シートを開いてからメッセージボックスを表示させることができるでしょうか?

質問者が選んだベストアンサー

  • ベストアンサー
  • nofx35
  • ベストアンサー率82% (14/17)
回答No.1

UnLoadするタイミングが悪くありませんか? ちょっと変えてみました。 ステップ実行で動きを見てみて下さい。 Private Sub CommandButton89_Click() Me.Hide 表を開く UnLoad Me End Sub Sub 表を開く() Dim wb As WorkBook Dim ws As WorkSheet ChDrive ThisWorkbook.Path ChDir ThisWorkbook.Path On Error GoTo Resume Next Set wb = Workbooks("H25年11月の表.xls") If Err.Number <> 0 Then Set wb = Workbooks.Open(ThisWorkbook.Path & "\綴り\H25年11月の表.xls") Err.Clear End If Set ws = wb.WorkSheets("確定") If Err.Number <> 0 Then MsgBox "シート確定がありません。" Exit Sub End If On Error GoTo 0 wb.Activate ws.Select MsgBox "これを更新してください。" End Sub

aitaine
質問者

補足

すばやいご回答ありがとうございます。 ためしてみましたが、相変わらず、表を開く前の状態で メッセージが表示されてしまいます。 おたすけください。 Private Sub CommandButton89_Click() Me.Hide どうもここでメッセージが・・・ 表を開く UnLoad Me End Sub

その他の回答 (2)

  • nofx35
  • ベストアンサー率82% (14/17)
回答No.3

No1です。 Application.ScreenUpdating = False に設定していませんか? もししているなら、 ws.Selectの前に Application.ScreenUpdating = True を入れて下さい。 後、webで"ステップ実行"を検索して どの様にプログラムが実行されているか、確認して下さい。

aitaine
質問者

お礼

自分で解決できましたありがとうございました

aitaine
質問者

補足

以下のコードで思っていることができました。なぜか理由はわかりませんが・・・ Private Sub CommandButton89_Click() Application.ScreenUpdating = False Me.Hide 表ひらく application.ScreenUpdating = True 'MsgBox "これを更新してください。" End Sub

  • nofx35
  • ベストアンサー率82% (14/17)
回答No.2

No1です。 On Error GoTo Resume Next これ間違いです。 On Error Resume Next に変えて下さい。

関連するQ&A

専門家に質問してみよう