'========================================================================================= ' 058 ウィンドウを最大・最小化する '----------------------------------------------------------------------------------------- '【ヒント】 ' このマクロは、おためし機能の動作用のコードを含んでいます。(概ね下半分) ' ★★★の行またはサブプロシージャーが、タイトル機能に関係するコードです。(概ね上半分) '========================================================================================= ' ◆標準モジュールのコード◆ '----------------------------------------------------------------------------------------- Option Explicit Dim タイトル As String Dim スタイル As Long Dim メッセージ As String Dim 応答 As Variant Dim 時 As Date Dim 分 As Date Dim 秒 As Date Dim 待ち時間 As Date '========================================================================================= Private Sub Excelのアプリケーションウィンドウを最大化する() Application.WindowState = xlMaximized 'Macintoshでは設定できない ★★★ End Sub '----------------------------------------------------------------------------------------- Private Sub Excelのアプリケーションウィンドウを最小化する() Application.WindowState = xlMinimized 'Macintoshでは設定できない '★★★ End Sub '----------------------------------------------------------------------------------------- Private Sub Excelのアプリケーションウィンドウを最大化も最小化もしない() Application.WindowState = xlNormal '★★★ End Sub '----------------------------------------------------------------------------------------- Private Sub アクティブウィンドウを可能な限り大きく表示する() '★★★ With ActiveWindow .WindowState = xlNormal .Top = 1 .Left = 1 .Height = Application.UsableHeight .Width = Application.UsableWidth End With End Sub '========================================================================================= '----------------------------------------------------------------------------------------- Sub おためしマクロ() おためしメッセージを表示する If Application.WindowState = xlMaximized Then '最大化されていたら 選択されれば最大化も最小化もしない状態に変える ElseIf Application.WindowState = xlNormal Then '最大化も最小化もされていなければ 選択されれば最小化する Else 'それ以外なら(最小化されていたら) 選択されれば最大化する End If End Sub '----------------------------------------------------------------------------------------- Private Sub 選択されれば最大化も最小化もしない状態に変える() メッセージ = "現状は最大化されています。" & Chr(13) & Chr(13) & _ "最大化も最小化もしない状態に変えますか" 応答 = MsgBox(メッセージ, スタイル, タイトル) If 応答 = vbYes Then Excelのアプリケーションウィンドウを最大化も最小化もしない End If End Sub '----------------------------------------------------------------------------------------- Private Sub 選択されれば最小化する() メッセージ = "現状は最大化も最小化もされていません。" & Chr(13) & Chr(13) & _ "最小化して、タスクバーに格納しますか" & Chr(13) & Chr(13) & _ "(7秒後に自動的に最大化されるので安心して試せます)" 応答 = MsgBox(メッセージ, スタイル, タイトル) If 応答 = vbYes Then Excelのアプリケーションウィンドウを最小化する ' マクロの実行を指定の時刻まで停止する '本番では、ここで業務処理する ' Excelのアプリケーションウィンドウを最大化する '一旦最大化してから End If End Sub '----------------------------------------------------------------------------------------- Private Sub 選択されれば最大化する() メッセージ = "現状は最小化されています。" & Chr(13) & Chr(13) & _ "最大化しますか" 応答 = MsgBox(メッセージ, スタイル, タイトル) If 応答 = vbYes Then Excelのアプリケーションウィンドウを最大化する End If End Sub '----------------------------------------------------------------------------------------- Private Sub マクロの実行を指定の時刻まで停止する() '本番での業務処理の代わりの処理 時 = Hour(Now()) 分 = Minute(Now()) 秒 = Second(Now()) + 7 待ち時間 = TimeSerial(時, 分, 秒) Application.Wait 待ち時間 End Sub '----------------------------------------------------------------------------------------- Private Sub おためしメッセージを表示する() Worksheets("Title").Select Range("P17").Select 'カーソルを定位置へ移動する タイトル = "アプリケーションウィンドウの状態" スタイル = vbYesNo + vbQuestion + vbDefaultButton1 + vbApplicationModal End Sub '----------------------------------------------------------------------------------------- Sub Auto_Close() Application.DisplayAlerts = False '閉じる際に確認メッセージを出さない ActiveWorkbook.Close '現在開いているブックを閉じる End Sub '-----------------------------------------------------------------------------------------