「word vba ページ幅を基準に」
という検索で、このサイト・インストラクターのネタ帳へのアクセスがありました。
2007以降のWordの場合、[表示]タブ-[ズーム]グループ-[ページ幅を基準に表示]ボタンをクリックすることで、
用紙の横幅がWordウィンドウの幅にちょうどフィットするようにズーミングが行われます。
これをVBA(Visual Basic for Applications)で行うには、どんなコードにすればいいのかを探している方による検索です。
ページ幅を基準に表示するサンプルマクロ
以下のようなマクロでページ幅を基準に表示することができます。
ActiveWindow.View.Zoom.PageFit = wdPageFitBestFit
End Sub
サンプルマクロをどう作ったのか
上記のサンプルマクロを私がどうやって作ったのかを解説しておきます。
Wordで、ページ幅を基準に表示する操作をマクロ記録すると、以下のようなコードができます。
ActiveWindow.ActivePane.View.Zoom.PageFit = wdPageFitBestFit
先のサンプルマクロのコードととてもよく似たコードで、もちろんこのコードでページ幅を基準に表示することができます。
ですが、気になる部分があります。途中に出てくるActivePaneです。
「ActiveWindow.ActivePane.View...」というコードは、ActiveWindowプロパティでWindowオブジェクトを取得して、WindowオブジェクトのActivePaneプロパティでPaneオブジェクトを取得して、PaneオブジェクトのViewプロパティでViewオブジェクトを取得するというコードです。
ですが、Viewプロパティは他のオブジェクトにも存在するはずで、途中でわざわざPaneオブジェクトを取得する必要はないように感じたので、オブジェクトブラウザーで「View」を完全一致で検索してみました。
すると上図のとおり、WindowオブジェクトにもViewオブジェクトを返すViewプロパティが存在していることがわかったので、サンプルマクロのような
ActiveWindow.View.Zoom.PageFit = wdPageFitBestFit
というコードにしたわけです。
最終更新日時:2021-05-06 16:09
- Newer:Excel VBAで配列の行列・縦横を入れ替える
- Older:ピボットテーブルの小計行を各グループの下に表示したい
Home » ワードマクロ・Word VBAの使い方 » Windowオブジェクト » Word VBAでページ幅を基準に表示する