- ベストアンサー
VBA 実行時エラー 2147024893とは?
- VBA実行時エラー 2147024893(8007003)が発生し、ショートカットを保存できないという問題があります。
- このエラーはオートメーションエラー(Error440)として知られており、解決方法については多くの情報があります。
- どのような状況でこのエラーが発生するのか、詳細な原因と対処方法については調査が必要です。
- みんなの回答 (1)
- 専門家の回答
質問者が選んだベストアンサー
こんにちは。 Windowsのバージョンが異なるようなので、その分、確度の低い話になってしまいますが、 エラーは再現できました。原因については下記■■マークの辺りを読んで下さい。 ご提示のコードを修正することで期待通りに動くことは確かめましたので、 以下で、確認、修正、するべきポイントを挙げておきます。 //////////// CC = ThisWorkbook.Name CC = Left(CC, Len(CC) - 4) ブック名.xls ならば、CCは "ブック名" ですが、 ブック名.xlsx ならば、CCは "ブック名." (ドットが余計)になってしまいます。 Set BBB = AAA.CreateShortcut(DD & "\" & CC & ".lnk") ここ↑の引数が、DD & "\ブック名..lnk")のように"."ドットが重なっていないか、 確認してください。 確実に"ブック名"だけを採るなら CC = Left(CC, InStrRev(CC, ".") - 1) '★一番右にある"."のひとつ前までの文字列 のように書きます。 //////////// AA = ThisWorkbook.Path .... DD = Left(AA, 2) & "Documents and Settings\All Users\スタート メニュー\プログラム\スタートアップ" AAの中身は、"C:\....."とか"D:\....."等のドライブ名で始まっているフォルダパスです。 ThisWorkbookが保存されたドライブとスタートアップフォルダのドライブが同じだという前提 が有効だとすれば、ですが、Left(AA, 2)では、"\"が抜けてしまいますね。■■ たぶんこれがエラーの原因と思われます。 DD = Left(AA, 3) & "Documents ..... とか、 DD = Left(AA, 2) & "\Documents ..... なのでは? スタートアップフォルダのドライブが勝手に変わることはないですし、 逆にThisWorkbookがどのドライブ配下にあるかは簡単に変えることが出来てしまいます。 なので、ここは、 DD = "C:\Documents and Settings\All Users\スタート メニュー\プログラム\スタートアップ" などのようにドライブ名を含めて決め打ちした方が安全なのではないかと思いますが、如何でしょう。 //////////// 念の為、スタートアップ"フォルダのパスが、実際にお使いの環境に存在しているか、 エクスプローラ等で確認しておいた方がいいかも、です。 因みに、当方の環境では、 DD = "C:\Users\ユーザー名\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Startup" を指定することで、上述の修正と合わせれば、 正しくショートカットが設定できることと、 PC起動時にExcelアプリケーションとThisWorkbookが立ち上がること、 を確認しました。