
エクセル2000です。
下記は自動記録で出来たマクロです。しかしこれが「実行時エラー1004:指定された値は境界を超えています。」となるんです。
Sub Macro2()
ActiveSheet.Shapes.AddShape(msoShapeSun, 152.25, 67.5, 137.25, 125.25).Select
Selection.ShapeRange.Adjustments.Item(1) = 0.3661
Selection.ShapeRange.ThreeD.SetThreeDFormat msoThreeD5
End Sub
新しいブックをつくり、標準モジュールにコピーペーストで転記すればちゃんと作動するのですが、記録した元のブックではエラーになります。
デバッグを選択して、標準モジュールを開き、msoShapeSunのところにカーソルをあてると、「msoShapeSun=Empty 値」と出ました。
msoThreeD5も「msoThreeD5=Empty 値」と出ました。これが原因だと思いますが、どうしてこうなるのでしょう?
どうかお教えください。
No.2ベストアンサー
- 回答日時:
Option Explicitは宣言していますか?
ツール~参照設定でMicrosoft Office 9.0 Object Library(MSO9.DLL)にチェックはついていますか?
msoShapeSunはMicrosoft Office 9.0 Object Library(MSO9.DLL)で定義されていますが、以下のように自分で宣言するとそちらの方が優先されますので、値が代入されるまではEmpty値になってしまいます。
Sub test()
Dim a, msoShapeSun
a = msoShapeSun
End Sub
宣言文が無くても、MSO9.DLLに参照設定が無くOption Explicitも無い場合はエラーにならず、上記と同様のことになります。
そのあたり確認してみてはいかがでしょうか。
ありがとうございます。
Option Explicitは宣言していません。
というか、この宣言の仕方がよくわかりません。
よく標準モジュールの一番上に書いてあるのは見かけるのですが、ぜんぜんわかっていません。
エラーがでるブックをみたら、msoShapeSunはMicrosoft Office 9.0 Object Libraryがチェックになっていませんでした。これが原因なんですね?チェックを入れたところ動きました。まだ全部は試していませんが。
No.1
- 回答日時:
これって再現性(新しいブックで自動記録→実行→エラー)ありますか?
同じように記録してみたのですが(↓)ちゃんと動きました。
Sub Macro4()
ActiveSheet.Shapes.AddShape(msoShapeSun, 44.25, 36#, 153#, 147.75).Select
Selection.ShapeRange.Adjustments.Item(1) = 0.3137
Selection.ShapeRange.ThreeD.SetThreeDFormat msoThreeD5
End Sub
この回答への補足
はい、わたしも新しいブックでやれば正常に動くのです。
ただ、特定のブックでやるとエラーが出るのです。
その特定のブックがひとつやふたつならそのブックがおかしくなったのだろうで済ますのですが、今までためしたところ5つのブックでエラーになります。
5つのブックで共通しているのはかなりVBAを多用していることです。だからVBA同士の不都合があるのかとも考えましたが、エラーが発生するブックのVBAを新しいブックにコピーして、この問題のVBAと共存させても正常に動きました。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) パーソナルXLSBのfuctionを呼び出すと「Functionが定義されていません」のエラーになる 2 2022/08/22 22:51
- Excel(エクセル) エクセルVBAでオブジェクトが必要です 2 2022/09/10 16:37
- Excel(エクセル) フォルダ内の全ブックのシート名を変更したい 7 2022/09/22 21:34
- Visual Basic(VBA) VBA This Workbookモジュールを別ファイルにコピーする方法 1 2022/09/14 01:51
- Visual Basic(VBA) ワイルドカード「*」を使うとうまくいかないマクロの添削をお願いします 3 2022/03/26 09:39
- その他(Microsoft Office) マクロVBAについて 1 2022/09/06 18:12
- Visual Basic(VBA) エクセルのマクロについて教えてください。 1 2022/10/13 08:41
- Visual Basic(VBA) VBAコードを張り付け後のエクセルの進め方 2 2023/02/07 18:24
- Excel(エクセル) エクセルのイベントVBAを複数のシートで動かしたい 1 2022/12/07 16:55
- Visual Basic(VBA) VBAでファイルを開くプログラムがエラーです 2 2023/02/21 16:56
このQ&Aを見た人はこんなQ&Aも見ています
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
実行時エラー 438になった時の...
-
なぜこんな初歩的なVBAのIf文で...
-
VBAがブレークモードになっ...
-
VBAでのエラー
-
【Excel VBA】マクロをボタンに...
-
マクロについて教えてください...
-
VBAで、定数式が必要ですのエラ...
-
1列目の何行目に検索文字がある...
-
ExcelVBAで、ユーザー定義型は...
-
Application.ActiveInspectorで...
-
実行時エラー -'-2147417848
-
VBAにて計算式をセルへ代入でき...
-
プロシージャ名の取得
-
実行時エラー3001「引数が間違...
-
実行時エラー48発生時のDLL特定...
-
VBAのエラー発生場所をメッセー...
-
EXCEL VBAマクロ中断でデバッグ...
-
カーソルオープンでエラー(ORA...
-
Accessで定型フォーマットのExc...
-
ExcelのVBAのAutoFillの使い方...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
実行時エラー 438になった時の...
-
なぜこんな初歩的なVBAのIf文で...
-
VBAがブレークモードになっ...
-
実行時エラー48発生時のDLL特定...
-
【Excel VBA】マクロをボタンに...
-
マクロについて教えてください...
-
VBAでのエラー
-
エクセルエラー13型が一致しま...
-
実行時エラー3001「引数が間違...
-
Outlook.ApplicationをCreateOb...
-
VBS実行時エラー オブジェクト...
-
VBSで変数の宣言はできないので...
-
実行時エラー -'-2147417848
-
ExcelVBA Range クラスの Page...
-
ExcelVBAで、ユーザー定義型は...
-
OLEDB.NETで接続できない
-
ADODB.Streamを使用してUTF-8を...
-
なぜエラーになるのでしょうか...
-
EXCEL VBAマクロ中断でデバッグ...
-
INSERT INTOステートメント構文...
おすすめ情報