'========================================================================================= ' 020 ブックのアクセス権を変更する '----------------------------------------------------------------------------------------- '【ヒント】 ' このマクロは、おためし機能の動作用のコードを含んでいます。(概ね下半分) ' ★★★の行またはサブプロシージャーが、タイトル機能に関係するコードです。(概ね上半分) '========================================================================================= ' ◆標準モジュールのコード◆ '----------------------------------------------------------------------------------------- Option Explicit Dim 初期表示名 As Variant '★★★ Dim ファイルフィルタ As Variant '★★★ Dim ガイド As Variant '★★★ Dim パス As Variant '★★★ Dim ファイル名 As Variant '★★★ Dim タイトル As String Dim スタイル As Long Dim メッセージ As String Dim 応答 As Variant '========================================================================================= Private Sub ブックを読み取り専用に設定する() On Error GoTo エラー処理 'エラー対策:すでに読み取り専用になっている ActiveWorkbook.ChangeFileAccess Mode:=xlReadOnly '★★★ GoTo エラー処理解除 ' エラー処理: スタイル = 64 'vbInformation メッセージ = "すでに 「読み取り専用」 になっていたようです" 応答 = MsgBox(メッセージ, スタイル, タイトル) Resume エラー処理解除 ' エラー処理解除: On Error GoTo 0 End Sub '----------------------------------------------------------------------------------------- Private Sub ブックを書き込み可能に設定する() ActiveWorkbook.ChangeFileAccess Mode:=xlReadWrite '★★★ End Sub '========================================================================================= '----------------------------------------------------------------------------------------- Sub おためしマクロ() おためしメッセージを表示する If Application.FindFile Then 'ダイアログボックスでファイルを開けた場合 メッセージ = "このブックを、読み取り専用に設定します。(画面左上のブック名で現状を確認可能)" & Chr(13) & Chr(13) & _ "(「上書き保存」できないようにするだけで、ファイルの属性を変更する訳ではない)" スタイル = 32 + 4 'vbQuestion + vbYesNo 応答 = MsgBox(メッセージ, スタイル, タイトル) If 応答 = vbYes Then ブックを読み取り専用に設定する '★★★ スタイル = 64 'vbInformation メッセージ = "画面の左上のブック名の後に 「読み取り専用」と表示されました" 応答 = MsgBox(メッセージ, スタイル, タイトル) End If ActiveWorkbook.Close 'アクティブなブックを閉じる Else 'ダイアログボックスでキャンセルされた場合 Exit Sub End If End Sub '----------------------------------------------------------------------------------------- Private Sub おためしメッセージを表示する() Worksheets("Title").Select Range("P17").Select 'カーソルを定位置へ移動する タイトル = "500連発 第2弾 サンプルマクロ" スタイル = 64 'vbInformation メッセージ = "「ファイルを開く」ダイアログボックスが表示されたら、" & 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 '----------------------------------------------------------------------------------------- Sub Auto_Close() Application.DisplayAlerts = False '閉じる際に確認メッセージを出さない ActiveWorkbook.Close '現在開いているブックを閉じる End Sub '-----------------------------------------------------------------------------------------