プロが教えるわが家の防犯対策術!

初めまして。質問させていただきます。
現在、EXCELのVBAの勉強を行っているのですが、以下のコードを標準モジュールに書き込み、
その関数を実行するとエラーが起きます。

[ コード ]
(※下記XXXXXにはディレクトリパスが入っています。)

Sub FileSave()

ThisWorkbook.SaveAs Filename:="XXXXX" & "\新しいブック.xlsm"

End Sub

[エラー内容]
実行エラー'429' ActiveXコンポーネントはオブジェクトを作成できません。

ThisWorkbookを使うと、どうやら上記のエラーが出るらしく、Workbook("xxxxx.xlsm")の様な
書き方にするとエラーは起こりませんでした。
ググってもイマイチ原因となる根拠が見つかりませんでした。。(Excelの最新化していない等)

詳しい方おりましたら、ご教授お願いいただけますでしょうか。

A 回答 (2件)

こんにちは、示されているコードだけで実行エラー'429'が発生する可能性は、低いです。


手持ちのExcel 2010、2013、2016 いずれも32bit 最新アップデート済、OS windows10 64bit では、発生しませんでした。
すでに、対処方法が見つかっているようなので、深くは掘りませんが、たしかに、ThisWorkbookなどの明示的でない言語が関係しているのかもしれませんね。
いずれにしても、実行エラー'429' ActiveX、、は、読み取れない(破損、バージョン違いなど)DLLファイルなどがあると発生する事があるようなので

コンポーネントを最新(アップデートや修復)にすることも、改善方法の一つと考えられます。
また、他のPCで作成されたファイルを使用する場合にも、発生の可能性があるようです。(DLLの参照不具合など)

VBAコードの問題ではなく、環境の問題として、参照設定などを含め、対策されるしかないのでは、と思います。
    • good
    • 0
この回答へのお礼

回答ありがとうございます。
新規のxlsmファイルを作成し、掲題のコードを書いて実行すると普通に保存が出来ました。
なので、ご回答いただいた理由のうち破損していた可能性が大かなと思いました。
実はモバイル端末のExcelアプリでファイルを編集したり、保存したりしていたのでその過程で。。掲題に記載するのを忘れていて申し訳ないです。

お礼日時:2020/02/11 21:58

こちらではエラーは出ませんでした。



その時のコードは以下になります。

Sub FileSave()
 ThisWorkbook.SaveAs Filename:="D:\test" & "\新しいブック.xlsm"
End Sub

なお、新規作成で一度も保存していないと下図のようなエラーにはなります。
これは、新規作成の場合「Excel ブック(*.xlsx)」で作成される為だと思います。

なおテスト環境は Microsoft Office Home and Business Premium 多分 Excel 2019 相当です。
「VBAでのエラー」の回答画像1
    • good
    • 0
この回答へのお礼

回答ありがとうございます。
上記のサンプルコードをいただいて、エラーが発生するxlsmファイルに書いて実行したところ、
やはり掲題のエラーが出てしまいました。。

バージョンの記載を掲題に載せ忘れていました、失礼しました。
【バージョン】Microsoft Office 365 バージョン 16.0.12430.20112 64 ビット版

ただ、新規のxlsmファイルで実行した時はエラーが出なかったので、恐らく
どこかのタイミングでファイルが破損していたんじゃないかと思いました。
ありがとうございました。

お礼日時:2020/02/11 22:10

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人はこんなQ&Aも見ています


このQ&Aを見た人がよく見るQ&A