エクセルVBAでファイルを開くと自動的に画面サイズを最大化する方法
エクセルファイルを開いたらワークシートがフルサイズで画面表示するべきなのに、中途半端な大きさの画面で表示されるようになってしまった事ありませんか?
当然ながら作業するのにはフルサイズでの画面最大化の方が良いので、「WindowStateプロパティ」を使って自動的にフルサイズ表示させましょう。
WindowStateプロパティで最大化へ
エクセルファイル最大化
このような中途半端にエクセルが開くと最大化する手間がかかるので面倒なので、エクセルファイルを開いたら常に最大化するように「WindowsStateプロパティ」を使い、ThisWorkbookにVBAコードを書きのように記載します。
Private Sub Workbook_Open()
ActiveWindow.WindowState = xlMaximized
End Sub
- エクセルファイルを開いたら
- 表示画面サイズを最大化する
- マクロ記述終了
これで、エクセルファイルを開いてマクロ有効化されていれば、常に画面は最大化されて表示されるようになります。
最小化・標準サイズ化の設定
WindowStateプロパティには、最大化以外にも最小化や標準サイズ化することもできるようになっていますので、先ほどは最大化のVBAコード「 ActiveWindow.WindowState = xlMaximized 」の部分「xlMaximized 」(定数)を変更することで対応できます。
定数 | 内容 |
xlMaximized | 最大化 |
xlMinimized | 最小化 |
xlNormal | 標準サイズ |
実用例として、エクセルファイルを開いたら画面最大化はもちろんですが、特定のシートの特定のセルを指定して、常に同じところ(例えばSheet1のセルA1)が表示するようにして使っています。
Private Sub Workbook_Open()
Worksheets(“MENU”).Range(“A1”).Select
ActiveWindow.WindowState = xlMaximized
End Sub
- エクセルファイルを開いたら
- シート名「MENU」のセルA1を選択する
- 表示画面サイズを最大化する
- マクロ記述終了
たった1行追加でMENUという名のシートのセルA1を選択状態にして、ちゃんとエクセル最大化できます。
次にワークシートの特定範囲を拡大縮小して表示する方法をご紹介します。
Zoomプロパティで拡大縮小
拡大表示するにはZoomプロパティを使いますが、通常は拡大率を%で指定しますが、画面いっぱいに表示するならばTureに設定することで出来るようになります。
コマンドボタンで拡大する
まずは基本のユーザーフォームに配置したコマンドボタンに、仮に表の範囲であるセルA1~L20までの範囲を画面いっぱいに拡大するVBAコードです。
Private Sub CommandButton1_Click()
Worksheets(“sheet1”).Activate
Range(“A1:L20”).Select
ActiveWindow.Zoom = True
End Sub
- コマンドボタン1が押されたら
- シート1を操作可能にする
- セルA1~L20の範囲を選択する
- 選択されているセルの範囲を画面いっぱいに拡大表示する
- マクロ記録終了
この方法は、コマンドボタンを押さないと拡大できないので、エクセルを開いたら自動的に指定範囲を画面いっぱいに表示するようにしましょう。
エクセルを開いたら自動拡大
エクセルファイルを開いた時に指定したシートの指定したセル範囲を拡大するには、Excel VBAのブックイベントに最大化したいセルの範囲を記述するだけです。
Private Sub Workbook_open()
Worksheets(“sheet1”).Activate
Range(“A1:L20”).Select
ActiveWindow.Zoom = True
End Sub
- エクセルファイルが開いたら自動的に実行する
- シートはsheet1を選ぶ
- セルA1~L20の範囲を選び
- 画面いっぱいに表示する
- マクロ記録終了
VBAコードを書く場所を変えるだけで、1行程必要なくなり自動的に指定範囲を拡大表示できるようになります。
False設定で100%に戻す
当然ながら、拡大できたのですから元に戻す方法も用意されています。
自動的に拡大してもコマンドボタンで拡大しても、100%に戻すには「True」を「False」に設定するだけで完了です。
クリックするたびに拡大と縮小を切り替える
拡大も縮小もTrueとFalseでできるので、2つのボタンにそれぞれ別々にVBAコードを書けばいいのですが、どうせならば1個のコマンドボタンに拡大/縮小の両方を書いてしまえば、シンプルになり便利ですよね。
この方法には、IFステートメントを組み合わせてVBAコードを書けば簡単に拡大・縮小ができるようになります。
Private Sub CommandButton1_Click()
Worksheets(“sheet1”).Activate
Range(“A1:L20”).Select
If ActiveWindow.Zoom = 100 Then
ActiveWindow.Zoom = True
Else
ActiveWindow.Zoom = False
End If
End Sub
- コマンドボタン1が押されたら
- シート1を操作可能にする
- セルA1~L20の範囲を選択する
- もし選択されているセルの範囲が100%だったら
- 選択されているセルの範囲を画面いっぱいに拡大表示する
- そうでなかったら(拡大していたら)
- 選択されているセルの範囲を100%のサイズにする
- IFステートメント終了
- マクロ記録終了
これでクリックするたびに拡大と縮小を切り替えることができるようになります。
IFステートメントは、もし~だったらというVBAコードで様々な条件を付けて処理を振り分けるのに必要なので絶対にマスターしておきたいVBAコードです。
また、表示/非表示を切り替える事で便利になる罫線や行・列番号など、意図しない操作を防ぐためには有効なので、画面サイズ以外の表示/非表示もマスターしてくださいね。