トップ回答者
VBAに保護を入れるとCSV書き出しができない

質問
-
VBA独学のものです。
エクセルに入力した情報をUTF-8形式でcsvファイルとして出力するVBAを作成しています。
ActiveWorkbook.SaveAs _
FileName:=Format(Date, "yyyymmdd") & "_" & Replace(Time, ":", ""), _
FileFormat:=62, _
CreateBackup:=Falseで出力しようとしていますが、プロパティ > オプションで保護をかけると上記コードでエラーとなってしまいます。
エラー番号: 1004
保護(パスワード)を解除すると正常に出力されるのですが、保護の状態だとエラーとなってしまいます。
使用しているOSはWindows10、エクセルは2016です。
もし解決方法がわかる方がいましたら教えていただけますでしょうか。
何卒宜しくお願い致します。
回答
-
エラーメッセージに何か出ていませんでしょうか?
また、dll絡みでエラーが発生するという以下の情報がありました。何かの参考になるかもしれません。
VBA: .SaveAs a protected workbook
https://www.mrexcel.com/forum/excel-questions/745794-vba-saveas-protected-workbook.htmlもし、解決できないのであれば、最悪、SaveAsの前で保護を解除し、その後に再度保護をかけるという逃げが出来るかもしれません。
★良い回答には質問者は回答済みマークを、閲覧者は投票を!
- 回答としてマーク 栗下 望Microsoft employee, Moderator 2018年5月1日 7:46
すべての返信
-
エラーメッセージに何か出ていませんでしょうか?
また、dll絡みでエラーが発生するという以下の情報がありました。何かの参考になるかもしれません。
VBA: .SaveAs a protected workbook
https://www.mrexcel.com/forum/excel-questions/745794-vba-saveas-protected-workbook.htmlもし、解決できないのであれば、最悪、SaveAsの前で保護を解除し、その後に再度保護をかけるという逃げが出来るかもしれません。
★良い回答には質問者は回答済みマークを、閲覧者は投票を!
- 回答としてマーク 栗下 望Microsoft employee, Moderator 2018年5月1日 7:46
-
掲題の件、事前にパスワードを解除するマクロを組込むことで問題を回避できるのではないでしょうか、
VBAProjectのパスワードを解除する方法が次のサイトに紹介されています。
Cracking Excel VBA Password 64-bit and 32-bit
https://calebhengeveld.wordpress.com/excel-formulas/cracking-excel-password/
【試行結果】
Excel-32bit用と64bit用が紹介されているのですが、VBA標準モジュールにコピペし試行した結果、
・「Excel 32bit用」はパスワード解除…成功 (若干コードは加筆修正しました)。が、
・「Excel 64bit用」はコンパイルエラーが発生…不成功(非力にてコードは修正しきれませんでした)。
参考 MyPC:Windows10(64bit)-Excel2016(32bit)
当該マクロは、個人用マクロブック「PERSONAL.XLSB」のVBA標準モジュールに作成して運用しています。u793nabe