VBA 読み取り専用かどうかを判断する方法 - Excel ホームページ制作 | 墨田区

VBA 読み取り専用かどうかを判断する方法 – Excel

LINEで送る
Pocket

VBAで読み取り専用かどうかを判断する方法をご紹介します。
Excel ブックを開いた時、他のユーザーが利用していた場合、確認ダイアログが表示され、「読み取り専用」で開くかどうかを聞かれます。
Excel 使用中ファイルダイアログ
※「通知」を選択しても、他のユーザーがブックを閉じた通知を受けるまで「読み取り専用」となっています。

今回は VBA で「読み取り専用」で開かれているかどうか判断する方法をご紹介します。




【PR】マジか?!「アレ」してるLINEスタンプっていったい・・・


「読み取り専用」かどうか判断する方法

「読み取り専用」かどうかは ThisWorkbook.ReadOnly = True で判断します。
戻り値が True の場合、「読み取り専用」で開かれているということになります。


サンプルソース

今回は「読み取り専用」だった場合に、「名前を付けて保存」ダイアログを表示して別名を付けるよう促します。

Sub Macro1()
    Dim FileName As Variant
    If ThisWorkbook.ReadOnly = True Then
        FileName = _
            Application.GetSaveAsFilename( _
                 InitialFileName:="コピー" & ThisWorkbook.Name _
               , FileFilter:="Excel マクロ有効ブック(*.xlsm),*.xlsm" _
               , FilterIndex:=1 _
               , Title:="保存先の指定" _
               )
        If FileName <> False Then
           Application.DisplayAlerts = False
           ThisWorkbook.SaveAs FileName:=FileName, FileFormat:=xlNormal
           Application.DisplayAlerts = True
        End If
    End If
End Sub

同じ名前を付けることはできませんので InitialFileNameコピー という文字 & 元のファイル名という設定にしています。

VBA で「読み取り専用」を判断するということは、ファイルの種類は「マクロ有効ブック」ということになります。
そのため FileFilter パラメータに *.xlsm を指定しています。

マクロを実行するとこんな感じのダイアログが表示されます。
名前を付けて保存ダイアログ

「名前を付けて保存」ダイアログを表示する詳しい方法は こちら をご覧ください。
VBA 名前を付けて保存ダイアログ表示方法 – Excel


参考サイト

ファイルが読み取り専用かどうかを確認する方法


おつかれさまでした。

LINEで送る
Pocket

この記事がお役に立ちましたら シェア をお願いいたします。

コメントを残す

コメント(必須)

お名前 (必須)
メールアドレス
(アドレスは公開されません)

Trackback URL