'========================================================================================= ' 035 ブックまたはファイルを(全て)閉じる '----------------------------------------------------------------------------------------- '【ヒント】 ' このマクロは、おためし機能の動作用のコードを含んでいます。(概ね下半分) ' ★★★の行またはサブプロシージャーが、タイトル機能に関係するコードです。(概ね上半分) '========================================================================================= ' ◆標準モジュール Module1 のコード◆ '----------------------------------------------------------------------------------------- Option Explicit Dim ブック名 As String '★★★ Public タイトル As String Public スタイル As Long Public メッセージ As String Public 応答 As Variant '========================================================================================= Private Sub アクティブなブックを閉じる() '★★★ ActiveWorkbook.Close End Sub '----------------------------------------------------------------------------------------- Private Sub 指定されたブックを閉じる() '★★★ Workbooks(ブック名).Close End Sub '----------------------------------------------------------------------------------------- Private Sub 指定されたブックを変更を保存せずに閉じる() '★★★ Workbooks(ブック名).Close saveChanges:=False End Sub '----------------------------------------------------------------------------------------- Private Sub ブックを全て閉じる() '★★★ Workbooks.Close End Sub '----------------------------------------------------------------------------------------- Private Sub ファイルをすべて閉じる() '★★★ Close End Sub '========================================================================================= '----------------------------------------------------------------------------------------- Sub おためしマクロ() おためしマクロ_025 'Module2のマクロで別のブックを開いてもらう Windows.Arrange ArrangeStyle:=xlHorizontal Windows("035.xls").Activate Range("P17").Select ' おためしメッセージを表示する If 応答 = vbYes Then Application.DisplayAlerts = False '閉じる際に確認メッセージを出さない ブックを全て閉じる '★★★ Else Workbooks("035.xls").Activate Worksheets("Title").Select Range("P17").Select 'カーソルを定位置へ移動する End If End Sub '----------------------------------------------------------------------------------------- Private Sub おためしメッセージを表示する() スタイル = 32 + 4 'vbQuestion + vbYesNo メッセージ = "現在、少なくとも 2つのブックが開いています。" & Chr(13) & Chr(13) & _ "全て閉じてもよいですか" 応答 = MsgBox(メッセージ, スタイル, タイトル) End Sub '----------------------------------------------------------------------------------------- Sub Auto_Close() Application.DisplayAlerts = False '閉じる際に確認メッセージを出さない ActiveWorkbook.Close '現在開いているブックを閉じる End Sub '----------------------------------------------------------------------------------------- '========================================================================================= ' 025 ファイルを開くダイアログボックスを表示してファイルを開く '----------------------------------------------------------------------------------------- '【ヒント】 ' このマクロは、おためし機能用に 025番のマクロを引用したものです。 '========================================================================================= ' ◆標準モジュール Module2 のコード◆ '----------------------------------------------------------------------------------------- Option Explicit Dim バージョン As String '========================================================================================= Private Sub ファイルを開くダイアログボックスを表示する_Excel95、97、98用() Application.FindFile End Sub '----------------------------------------------------------------------------------------- Private Sub ファイルを開くダイアログボックスを表示する_Excel2000用() If Application.FindFile Then ファイルを正常に開けた場合の処理 Else キャンセルボタンがクリックされた場合の処理 End If End Sub '----------------------------------------------------------------------------------------- Private Sub ファイルを正常に開けた場合の処理() ' メッセージ = "選択されたファイルを開きました" ' 応答 = MsgBox(メッセージ, スタイル, タイトル) End Sub '----------------------------------------------------------------------------------------- Private Sub キャンセルボタンがクリックされた場合の処理() メッセージ = "「ファイルを開く」ダイアログボックスの、" & Chr(13) & Chr(13) & _ "[キャンセル]ボタンがクリックされました" 応答 = MsgBox(メッセージ, スタイル, タイトル) End Sub '========================================================================================= '----------------------------------------------------------------------------------------- Sub おためしマクロ_025() おためしメッセージを表示する バージョン = Left(Worksheets("Title").Range("L1").Value, 3) If バージョン = "9.0" Then 'Excel2000なら ファイルを開くダイアログボックスを表示する_Excel2000用 ElseIf バージョン = "8.0" Then 'Excel97 or 98なら ファイルを開くダイアログボックスを表示する_Excel95、97、98用 ElseIf バージョン = "7.0" Then 'Excel95なら ファイルを開くダイアログボックスを表示する_Excel95、97、98用 Else スタイル = 48 'vbCritical メッセージ = "ごめんなさい!" & Chr(13) & Chr(13) & _ "このサンプルは、Excel 2000、98、97、95 用です" 応答 = MsgBox(メッセージ, スタイル, タイトル) Exit Sub End If End Sub '----------------------------------------------------------------------------------------- Private Sub おためしメッセージを表示する() Worksheets("Title").Select Range("P17").Select 'カーソルを定位置へ移動する タイトル = "500連発 第2弾 サンプルマクロ" スタイル = 64 'vbInformation メッセージ = "[OK]ボタンをクリックすると、" & Chr(13) & Chr(13) & _ "「ファイルを開く」ダイアログボックスが表示されるので、" & Chr(13) & Chr(13) & _ "任意のブック名を選択してから[開く]ボタンをクリックしてください" & Chr(13) & Chr(13) & _ "    ( 「全てのブックを閉じる」テストのためです )" If Worksheets("Title").Range("L1").Value = "7.0" Then 'Excel95なら メッセージ = メッセージ & Chr(13) & Chr(13) & _ " 【Excel95を使用中です、97以上のブックは選択不可】" End If 応答 = MsgBox(メッセージ, スタイル, タイトル) End Sub '-----------------------------------------------------------------------------------------