パソコン活用研究5番街(Visual Basic、Excel(VBA)、BASIC プログラミング研究)

EXCELの表示、位置、大きさの設定

今回はEXCELの表示関係のVBAを集めてみました。


1 EXCELの表示、非表示、アイコン化

EXCELそのものを表すオブジェクトは、Applicationオブジェクトです。EXCELのオブジェクトの最上位に
位置するオブジェクトです。Applicationオブジェクトを表すには、Applicationプロパティを使います。

(1) EXCELを非表示にする
表示、非表示に関するプロパティは Visible です。
Aplication.Visible = False
とすると、EXCELが画面から消えます。
しかし、画面から消えても非表示になっているだけなので、EXCEL自体は起動されています。
もし、このことを確認したいなら、[Ctrl]+[Alt]+[Del] キーを押して見てください。
プログラムの強制終了の一覧に Microsoft Excel があるはずです。

さて、EXCELが画面から消えてしまうと、操作のしようがないので、これは困ってしまいます。
VBAマクロでまた、再表示してしてやらないといけません。
次のマクロは5秒間だけEXCELを消して、再表示するものです。(消えた直後と再表示の直前にBeep音
を鳴らします)
Sub invisible()
Application.Visible = False
Beep
Application.Wait (Now() + TimeValue("00:00:05"))
Beep
Application.Visible = True
End Sub

ま、これはあまり実用にはならないかもしれません。どちらかというと、EXCELを消してびっくりさせる
というお遊び用のマクロです。

(2) EXCELの表示(最大、ノーマル、アイコン)
実際に使うとしたら、EXCELを最大化したり、アイコン化したりというマクロではないでしょうか。
長時間かかるマクロを実行中は、EXCELをアイコン化しておいて、他の作業のために画面をあける
(なんておりこうさんなEXCEL!)などといった使い方があります。(ま、マクロ実行中は上のマクロで
EXCEL消してもいいけど。)

表示状態を表すプロパティは、 WindowState です。
EXCEL自体の最大化、アイコン化は以下のように記述します

最大化 Application.WindowState = xlMaximaized
通常の表示 Application.WindowState = xlNormal
アイコン化 Application.WindowState = xlMinimized

 


2 EXCELの表示位置、大きさの変更

もっと、細かくEXCELの表示位置、大きさを変更したいという場合は
Top(縦の位置),Left(横の位置),Height(EXCELの高さ),Width(横幅) プロパテイを使います。
下記のような関係です。

        |
        |
       Top
        |
        | 
<-- Left--->|
Microsoft Excel               | 
<------------- Width----------------->
                        |
                      Height
                        |
                        | 


       
                                           

設定は
Application.Top = 10
のように記述します。
設定する数値の単位は「ポイント」(=約0.35mm)です。

(1)画面の左隅、中央、画面外にEXCELを表示する
例えば、画面の左上の隅に合わせてEXCELを表示したいなら、次のようにします
Application.Top = 0
Application.Left = 0


Top と Left の値には負の値も設定できます。
また、画面サイズからはずれるような値を設定すると、EXCELは画面に表示されません。
この方法でEXCELを画面から消すこともできます。例えば次のように設定します
Application.Top = -Application.Height
Application.Left = -Applicatiom.Width

EXCELを画面の中央に表示するマクロです。
Sub displaycenter()
Application.WindowState = xlMaximized
Hmax = Application.Height
Wmax = Application.Width
Application.WindowState = xlNormal
Application.Top = (Hmax - Application.Height) / 2
Application.Left = (Wmax - Application.Width) / 2
End
Sub


(2)  EXCELのサイズ、表示位置をかえたお遊び
EXCELを左隅に表示した後、だんだん縮小させて、画面の左から右に移動させるマクロ
Sub size_location()
Application.WindowState = xlNormal
Application.Top = 0
Application.Left = 0
Application.Width = 500
Application.Height = 300
For i = 0 To 50
Application.Height = Application.Height - 4
Application.Width = Application.Width - 8
Next
For i = -200 To 500 Step 2
Application.Left = i
Next
End Sub


これは、ほんのお遊びです。EXCELのサイズ、表示位置を変えて見ている人をびっくりさせる、という
マクロです。


TopPage > Visual BasIc&Excel活用研究目次