- 締切済み
マクロ実行中の画面
質問です。 シートを5つ使ってデーターを出しているエクセルファイルがあります。 その計算中に、アクティブになっているシートが 出てきてしまい、格好が悪いので その間「お待ち下さい」みたいなことを書いた シートのみを出したいのですが どうやったら表示できますか? よく会社のソフトでそのような物があるのですが マクロが隠されてしまっていて判明できず・・・ どなたか方法を教えて下さい。 またマクロを隠す方法もできたら教えて下さい。 よろしくお願い致します。
- みんなの回答 (3)
- 専門家の回答
みんなの回答
- zap35
- ベストアンサー率44% (1383/3079)
#02です。質問を読み誤りました。マクロの中で複数のシートをSelectしているようですね。 それなら#01さんもお書きになっているApplication.ScreenUpdatingプロパティをFalseにすれば画面描画がされなくなります。(以下のようになります) Sub Macro1() Dim shp As Shape Set shp = ActiveSheet.Shapes.AddShape(msoShapeRectangle, _ 1, 1, ActiveWindow.UsableWidth, ActiveWindow.UsableHeight) shp.Select With Selection .Characters.Text = "処理中" .HorizontalAlignment = xlCenter .VerticalAlignment = xlCenter .Font.Size = 36 End With Application.ScreenUpdating = False ' ここに本来の処理を挿入する MsgBox "Shapeの表示具合を確認してください" Application.ScreenUpdating = True shp.Delete End Sub
- zap35
- ベストアンサー率44% (1383/3079)
マクロ実行中にシートを隠したいなら、ダミーのシートを一時的に表示する方法や、ユーザーフォームを表示する方法も考えられますが、以下のサンプルはオートシェイプでシート画面を隠すものです。 Sub Macro1() Dim shp As Shape Set shp = ActiveSheet.Shapes.AddShape(msoShapeRectangle, _ 1, 1, ActiveWindow.UsableWidth, ActiveWindow.UsableHeight) shp.Select With Selection .Characters.Text = "処理中" .HorizontalAlignment = xlCenter .VerticalAlignment = xlCenter .Font.Size = 36 End With ' ここに本来の処理を挿入する Msgbox "Shapeの表示具合を確認してください" shp.Delete End Sub >マクロを隠す方法もできたら教えて下さい これは「VBE画面を開いてもマクロコードを表示させない」という意味ですか? そうであればVBE画面で「ツール」→「VBAProjectのプロパティ」→「保護タブ」で「VBAプロジェクトを表示用にロックする」にチェックを入れて、パスワードを設定すればよいです。 (BOOKを一旦保存→閉じて、再度開くと有効になります)
- bin-chan
- ベストアンサー率33% (1403/4213)
> またマクロを隠す方法もできたら教えて下さい。 VBAで、以下を記述すると画面更新を制御できます。 (更新速度向上も期待できます) '画面更新を抑制する Application.ScreenUpdating False '画面更新を抑制を解除する Application.ScreenUpdating True
お礼
ありがとうございます。 解決しました。
お礼
これでばっちりできました。 大変助かりました。 ありがとうございます。