こんにちは、わたあめです。
VBAマクロで処理をした後に、画面に収まるようにシートを縮小表示しようと思いました。今日は、縮小表示のやり方と、Zoomプロパティを使うにあたって出会った実行時エラーに'438'と'1004'についてまとめていきたいと思います。
それでは、行ってみましょう!
シートの縮小表示を行うマクロサンプル
シートの縮小表示は、以下の流れで行います。
- シートをアクティブにする
- シートのズーム倍率を指定する
シートのズーム倍率の指定は、Zoomプロパティを利用していきます。サンプルのマクロは以下の通りです。50%に縮小表示するようなマクロとなっています。
' シートをアクティブにする
WorkSheet("シート名").Select
' シートのズーム倍率を指定する(例:50%表示)
ActiveWindow.Zoom = 50
実行時エラー'438'
Zoomプロパティを利用していると、以下のエラーが出ることがあるかもしれません。
このエラーが出た場合、縮小するシートがアクティブになっていない可能性があります。例えば、以下のようなマクロの書き方だとこのエラーが出ます。
WorkSheets("シート名").Zoom = 120
一見、シート名で指定したシートを120%表示できるようなマクロに見えますが、エラーが出ます。拡大・縮小表示をする場合は必ずその対象のシートをアクティブにする必要があります。
ですので「シートの縮小表示を行うマクロサンプル」にある通り、処理するシートを一度をアクティブにする処理を入れるとこのエラーは解決します。
実行時エラー'1004'
Zoomプロパティでは拡大・縮小の率を範囲外の値で指定すると、以下のエラーが出ます。
表示の倍率は10%~400%の間の値を指定する必要があります。例えば以下のマクロのように「9」などと指定した場合です。
ActiveWindow.Zoom = 9
実行時エラー'1004'が出ますので、指定した値が範囲外となっていないか確認すると良いです。
さいごに
いかがだったでしょうか。マクロ作りの参考に、少しでもお役立ちできていると嬉しいです。それでは、また次の記事でお会いしましょう!