- ベストアンサー
シート表示時にメッセージを表示する方法
- win7・Excel2007でマクロ作成中の初心者です。ブックAのユーザーフォームのコマンドボタンクリックでブックBのシートCを表示させ、メッセージボックスを即座に表示させたいです。しかし、現在のコードでは、シートCを表示させると同時にメッセージボックスも表示されてしまいます。シートを開いてからメッセージボックスを表示するにはどうすればよいでしょうか?
- 質問者はwin7・Excel2007でマクロ作成中の初心者です。現在、コマンドボタンをクリックするとシートCが表示され、同時にメッセージボックスも表示されてしまいます。質問者の希望は、シートCを表示させてからメッセージボックスを表示させることです。質問者はどのようにすればよいか教えてほしいとしています。
- 初心者の質問者はwin7・Excel2007でマクロ作成中です。ブックAのユーザーフォームのコマンドボタンをクリックすると、ブックBのシートCを表示させ、同時にメッセージボックスを表示させたいと考えています。しかし、現在のコードではシートCを表示させると同時にメッセージボックスも表示されてしまいます。どのようにすれば、シートを開いてからメッセージボックスを表示させることができるでしょうか?
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
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
その他の回答 (2)
- nofx35
- ベストアンサー率82% (14/17)
No1です。 Application.ScreenUpdating = False に設定していませんか? もししているなら、 ws.Selectの前に Application.ScreenUpdating = True を入れて下さい。 後、webで"ステップ実行"を検索して どの様にプログラムが実行されているか、確認して下さい。
お礼
自分で解決できましたありがとうございました
補足
以下のコードで思っていることができました。なぜか理由はわかりませんが・・・ Private Sub CommandButton89_Click() Application.ScreenUpdating = False Me.Hide 表ひらく application.ScreenUpdating = True 'MsgBox "これを更新してください。" End Sub
- nofx35
- ベストアンサー率82% (14/17)
No1です。 On Error GoTo Resume Next これ間違いです。 On Error Resume Next に変えて下さい。
補足
すばやいご回答ありがとうございます。 ためしてみましたが、相変わらず、表を開く前の状態で メッセージが表示されてしまいます。 おたすけください。 Private Sub CommandButton89_Click() Me.Hide どうもここでメッセージが・・・ 表を開く UnLoad Me End Sub