この記事では、ExcelのVBAマクロを使用して読み取り専用の設定を解除する方法について解説していきます。
ポイントとしては`Workbook_Open`, `SaveAs`, `FileSystemObject`の関数を使用することです。
解説では初心者にも理解しやすいように、変数名を独特な表現で示しています。
実用時には、より標準的な英語の変数名に変更してご利用ください。
それでは詳しく見ていきましょう!
VBAマクロで読み取り専用を解除し上書き保存する方法
それではまず、読み取り専用を解除し上書き保存する方法について解説していきます。
「Alt + F11にてVBE画面を開いて、以下コードをコピペしましょう。」
Sub JyomiTorikesiToUwagakiHozon()
Dim hozonPath As String
hozonPath = ThisWorkbook.FullName
If ThisWorkbook.ReadOnly Then
ThisWorkbook.SaveAs Filename:=hozonPath, AccessMode:=xlExclusive
MsgBox "読み取り専用を解除しました。"
Else
MsgBox "このファイルは読み取り専用ではありません。"
End If
End Sub
コードのAlt+F8を押し、マクロ選択画面で`JyomiTorikesiToUwagakiHozon`関数を実行します。
このコードでは、現在開いているワークブックが読み取り専用の場合、その設定を解除して上書き保存します。
VBAマクロで読み取り専用を解除し別名保存する方法【betsu.xlsxという名前で】
続いては、読み取り専用を解除し別名で保存する方法について解説していきます。
「Alt + F11にてVBE画面を開いて、以下コードをコピペしましょう。」
Sub JyomiTorikesiToBetsuHozon()
Dim hozonPath As String
hozonPath = ThisWorkbook.Path & "\betsu.xlsx"
If ThisWorkbook.ReadOnly Then
ThisWorkbook.SaveAs Filename:=hozonPath
MsgBox "読み取り専用を解除し別名で保存しました。"
Else
MsgBox "このファイルは読み取り専用ではありません。"
End If
End Sub
コードのAlt+F8を押し、マクロ選択画面で`JyomiTorikesiToBetsuHozon`関数を実行します。
このコードでは、読み取り専用のファイルを別の名前「betsu.xlsx」で保存します。
VBAマクロで指定フォルダの全てのエクセルファイルの読み取り専用を解除し、別名保存する方法【betru1.xlsxなどの連番の名前で】
次に、指定フォルダ内の全エクセルファイルの読み取り専用を解除し、別名で保存する方法について解説します。
「Alt + F11にてVBE画面を開いて、以下コードをコピペし
ましょう。」
Sub ZenFileJyomiTorikesiToBetsuHozon()
Dim targetFolder As String
Dim fileName As String
Dim fileIndex As Integer
Dim fso As Object, folder As Object, file As Object
Set fso = CreateObject("Scripting.FileSystemObject")
targetFolder = "C:\YourFolderPath" ' ここにフォルダパスを設定
fileIndex = 1
Set folder = fso.GetFolder(targetFolder)
For Each file In folder.Files
If fso.GetExtensionName(file.Name) = "xlsx" Then
Workbooks.Open(file.Path).SaveAs Filename:=targetFolder & "\betru" & fileIndex & ".xlsx"
fileIndex = fileIndex + 1
End If
Next file
MsgBox "全てのファイルの読み取り専用を解除し、別名で保存しました。"
End Sub
コードのAlt+F8を押し、マクロ選択画面で`ZenFileJyomiTorikesiToBetsuHozon`関数を実行します。このコードは指定されたフォルダ内の全てのExcelファイルを開き、連番のファイル名で別名保存します。
【FileSystemObject, SaveAs】