前提・実現したいこと
前提:
①別マクロでブックとシートの保護をする
②保存先にフォルダ(フォルダ名はファイル名と同じ)を作成し、①を格納する
実現したしたいこと:
前提で作成したファイルを別マクロで開く
発生している問題・エラーメッセージ
発生している問題:別マクロのWorkbooks.Open実行でフリーズが発生
※エラーメッセージなし
初めての投稿で至らぬ点もあるかもしれませんが、困っています。
もしおかしなところがあればご教示いただけないでしょうか、
宜しくお願いいたします。
該当のソースコード
簡略していますが、一度ブック&シート保護したファイルをファイル名と同じ名前のフォルダに格納し、別マクロで保護したブックを開こうとしています。
VBA
1【シート保護マクロ】 2Sub test() 3 'PW 4 Dim book_password As String: book_password = 1 5 Dim sheet_password As String: sheet_password = 2 6 7 'ファイル保存先 8 Dim save_path As String: save_path = "C:\保存先" 9 10 '保護するファイル格納先 11 Dim folder_path As String: folder_path = "C:\保護するファイル" 12 13 'ファイル名取得 14 Dim file_name As String 15 file_name = Dir(folder_path & "\" & "*.xlsm") 16 17 Do While file_name <> "" 18 Workbooks.Open folder_path & "\" & file_name 19 20 Workbooks(file_name).Sheets(1).Activate 21 Range("A:AK").Locked = True 22 Range("A2:AK2").Locked = Flase 23 24 'シート保護 25 ActiveSheet.Protect Password:=sheet_password, UserInterfaceOnly:=True 26 ActiveSheet.EnableSelection = xlUnlockedCells 27 28 Workbooks(file_name).Sheets(2).Activate 29 Range("A:AA").Locked = True 30 Range("A5:H22").Locked = Flase 31 32 'シート保護 33 ActiveSheet.Protect Password:=sheet_password, UserInterfaceOnly:=True 34 ActiveSheet.EnableSelection = xlUnlockedCells 35 36 'リンク更新確認メッセージなし 37 ActiveWorkbook.UpdateLinks = xlUpdateLinksNever 38 39 'ファイル保存先に保存 40 ActiveWorkbook.SaveAs Filename:=save_path & "\" & file_name, Password:=book_password 41 Workbooks(file_name).Close 42 43 file_name = Dir() 44 Loop 45End Sub 46【ファイルオープンマクロ】 47Sub file_open() 48 Dim save_path As String: save_path = "C:\保存先" 49 Dim book_password As String: book_password = 1 50 51 'ファイルシステムオブジェクト設定 52 Dim fso As Object: Set fso = CreateObject("scripting.filesystemobject") 53 54 Dim folder As Variant 55 For Each folder In fso.getfolder(save_path).subfolders 56 Workbooks.Open folder.Path & "\" & folder.Name & ".xlsm", Password:=book_password 57 Next 58End Sub 59
試したこと
・手動では問題なくファイルが開くことを確認
・一度手動でブックの保護&シートの保護を解除したファイルはマクロで開くことが出来ることを確認
補足情報(FW/ツールのバージョンなど)
OS:Windows7
office:Excel2013
回答1件
あなたの回答
tips
プレビュー