VBA Cats編
【2】EXCEL起動時にTOP画面のユーザフォームのみを表示する
EXCEL本体を.Visibleで完全に見えなくするとアイコンも見えなくなので使いづらいと判断してできるだけ小さくしました。
vbModelessにしたのは誤って他のBOOKをクリックして開いた際にもBOOKを操作できるようにしたかったからです。
BOOKのウィンドウサイズも元にもどさないと他のBOOKを開いた際に縮小したままになる。
'標準モジュールに記述
Sub Auto_Open()
'Application.Visible = False 'これでEXCEL本体が見えなくなるが...
UF_TOP.Show vbModeless
End Sub
'ここからTOP画面のユーザフォームに記述
Public WindBk_WindowState As Long
Public WindBk_top As Single
Public WindBk_Left As Single
Public WindBk_Height As Single
Public WindBk_Width As Single
Private Sub UserForm_Initialize()
With ThisWorkbook.Application
WindBk_WindowState = .WindowState '以前の状態を記録保持する
WindBk_top = .top
WindBk_Left = .Left
WindBk_Height = .Height
WindBk_Width = .Width
If Workbooks.Count <= 1 Then '他にBOOKがなければEXCEL本体を縮小
.WindowState = xlNormal
.top = 1
.Left = 1
.Height = 25
.Width = 100
End If
End With
End Sub
Private Sub CM_閉じる_Click() 'TOP画面が閉じる際に
If Workbooks.Count <= 1 Then
With ThisWorkbook.Application
.WindowState = WindBk_WindowState '以前の状態を回復する
If .WindowState = xlNormal Then 'xlNormalでないとエラーになる
.top = WindBk_top
.Left = WindBk_Left
.Height = WindBk_Height
.Width = WindBk_Width
End If
End With
End If
End Sub