none
VBAに保護を入れるとCSV書き出しができない RRS feed

  • 質問

  • VBA独学のものです。

    エクセルに入力した情報をUTF-8形式でcsvファイルとして出力するVBAを作成しています。

        ActiveWorkbook.SaveAs _
            FileName:=Format(Date, "yyyymmdd") & "_" & Replace(Time, ":", ""), _
            FileFormat:=62, _
            CreateBackup:=False

    で出力しようとしていますが、プロパティ > オプションで保護をかけると上記コードでエラーとなってしまいます。

    エラー番号: 1004

    保護(パスワード)を解除すると正常に出力されるのですが、保護の状態だとエラーとなってしまいます。

    使用しているOSはWindows10、エクセルは2016です。

    もし解決方法がわかる方がいましたら教えていただけますでしょうか。

    何卒宜しくお願い致します。

    2018年4月3日 4:44

回答

すべての返信

  • エラーメッセージに何か出ていませんでしょうか?

    また、dll絡みでエラーが発生するという以下の情報がありました。何かの参考になるかもしれません。

    VBA: .SaveAs a protected workbook
    https://www.mrexcel.com/forum/excel-questions/745794-vba-saveas-protected-workbook.html

    もし、解決できないのであれば、最悪、SaveAsの前で保護を解除し、その後に再度保護をかけるという逃げが出来るかもしれません。


    ★良い回答には質問者は回答済みマークを、閲覧者は投票を!

    2018年4月3日 6:52
    モデレータ
  • 回答ありがとうございました!

    dllまで行くと私の手に負えないため、保護解除の方法を探したいと思います

    2018年4月15日 2:16
  • 掲題の件、事前にパスワードを解除するマクロを組込むことで問題を回避できるのではないでしょうか、
    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

    2018年6月24日 15:07