• ベストアンサー

Excel VBAでエラーが出てしまう

Excel VBAで今現在選択しているシートから"春"というワークシートに移動して"A1"セルを選択しようとするプログラムを作ろうとしています。 Worksheets("春").Select Range("A1").Select ならできるんですけど、 Worksheets("春").Range("A1").Select ならエラーになります。 なぜなのでしょうか?

質問者が選んだベストアンサー

  • ベストアンサー
  • Wendy02
  • ベストアンサー率57% (3570/6232)
回答No.3

こんばんは。 初歩的な話なのですが、 Worksheets("春").Range("A1").Select 親オブジェクトとRangeオブジェクトをまとめて選択できるのは、 Worksheets("春") にある時だけです。目の前(Active)に存在しない、Rangeオブジェクトは直接は選択できません。 だから、 Application.Goto Worksheets("春").Range("A1") と書きます。

ibichin
質問者

お礼

直接選択できるのはActiveシートだけなのですね。 よくわかりました。 ありがとうございました。

その他の回答 (3)

  • imogasi
  • ベストアンサー率27% (4737/17069)
回答No.4

http://officetanaka.net/excel/vba/speed/s2.htm のような記事を見つけました。 参考に。 例えばSheet1がアクチブであっても、値代入などなら Sub test02() Worksheets("Sheet3").Range("A1") = "aaa" Worksheets("Sheet3").Range("A3").Interior.ColorIndex = 6 End Sub が出来ます。

ibichin
質問者

お礼

よくわかりました。 ありがとうございました。

noname#111860
noname#111860
回答No.2

春のワークシートが、 非Activeの状態で、選択しようとしているからでは? 下記のサイト参考 http://www.mccoy.jp/chie/zaitaku/excel/vba/vba3_1.html のRangeオブジェクトに対して SelectメソッドやActiveメソッドを使用する時には、 そのセルを含むシートがアクティブになっていなければなりません。

ibichin
質問者

お礼

一度アクティブにしてからでないとダメなんですね。 とても参考になりました。 ありがとうございました。

noname#77845
noname#77845
回答No.1

どういうエラーが出ているんでしょう? (私の環境では、Worksheets("春").Range("A1").Selectでエラーにならないで"春"!A1が選択されます。)

ibichin
質問者

お礼

できましたか? 私のパソコンでは(Excel 2002 Windows Xp) 「実行時エラー'1004': RangeクラスのSelectメソッドが失敗しました。」 と表示されます。

関連するQ&A

専門家に質問してみよう