• 締切済み

マクロ実行中の画面

質問です。 シートを5つ使ってデーターを出しているエクセルファイルがあります。 その計算中に、アクティブになっているシートが 出てきてしまい、格好が悪いので その間「お待ち下さい」みたいなことを書いた シートのみを出したいのですが どうやったら表示できますか? よく会社のソフトでそのような物があるのですが マクロが隠されてしまっていて判明できず・・・ どなたか方法を教えて下さい。 またマクロを隠す方法もできたら教えて下さい。 よろしくお願い致します。

みんなの回答

  • zap35
  • ベストアンサー率44% (1383/3079)
回答No.3

#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

akichian04
質問者

お礼

これでばっちりできました。 大変助かりました。 ありがとうございます。

  • zap35
  • ベストアンサー率44% (1383/3079)
回答No.2

マクロ実行中にシートを隠したいなら、ダミーのシートを一時的に表示する方法や、ユーザーフォームを表示する方法も考えられますが、以下のサンプルはオートシェイプでシート画面を隠すものです。 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)
回答No.1

> またマクロを隠す方法もできたら教えて下さい。 VBAで、以下を記述すると画面更新を制御できます。 (更新速度向上も期待できます) '画面更新を抑制する Application.ScreenUpdating False '画面更新を抑制を解除する Application.ScreenUpdating True

akichian04
質問者

お礼

ありがとうございます。 解決しました。

関連するQ&A