プチIT化 PR

【VBA】シートを縮小表示するには?実行時エラー’438’と’1004′

記事内に商品プロモーションを含む場合があります。
当サイトは、アフィリエイト広告を利用しています。

こんにちは、わたあめです。

わたあめ
わたあめ
VBAで予めシートを縮小表示しておきたいな!

VBAマクロで処理をした後に、画面に収まるようにシートを縮小表示しようと思いました。今日は、縮小表示のやり方と、Zoomプロパティを使うにあたって出会った実行時エラーに'438'と'1004'についてまとめていきたいと思います。

それでは、行ってみましょう!

シートの縮小表示を行うマクロサンプル

シートの縮小表示は、以下の流れで行います。

  1. シートをアクティブにする
  2. シートのズーム倍率を指定する

シートのズーム倍率の指定は、Zoomプロパティを利用していきます。サンプルのマクロは以下の通りです。50%に縮小表示するようなマクロとなっています。

' シートをアクティブにする
WorkSheet("シート名").Select

' シートのズーム倍率を指定する(例:50%表示)
ActiveWindow.Zoom = 50

実行時エラー'438'

Zoomプロパティを利用していると、以下のエラーが出ることがあるかもしれません。

実行時エラー'438'
オブジェクトは、このプロパティまたはメソッドをサポートしていません。

このエラーが出た場合、縮小するシートがアクティブになっていない可能性があります。例えば、以下のようなマクロの書き方だとこのエラーが出ます。

WorkSheets("シート名").Zoom = 120

一見、シート名で指定したシートを120%表示できるようなマクロに見えますが、エラーが出ます。拡大・縮小表示をする場合は必ずその対象のシートをアクティブにする必要があります。

ですので「シートの縮小表示を行うマクロサンプル」にある通り、処理するシートを一度をアクティブにする処理を入れるとこのエラーは解決します。

実行時エラー'1004'

Zoomプロパティでは拡大・縮小の率を範囲外の値で指定すると、以下のエラーが出ます。

実行時エラー'1004'
実行時エラー'1004′: WindowクラスのZoomプロパティを設定できません。

表示の倍率は10%~400%の間の値を指定する必要があります。例えば以下のマクロのように「9」などと指定した場合です。

ActiveWindow.Zoom = 9

実行時エラー'1004'が出ますので、指定した値が範囲外となっていないか確認すると良いです。

さいごに

いかがだったでしょうか。マクロ作りの参考に、少しでもお役立ちできていると嬉しいです。それでは、また次の記事でお会いしましょう!