アプリ版:「スタンプのみでお礼する」機能のリリースについて

いつも大変お世話になっております。
エクセルvbaについてお聞きしたいと思います。

aとbのエクセルファイルがあります。
aにはsheet1・sheet2、bにはsheet3・sheet4があります。
aのファイルにコードを入力し実行させ、bのファイルを開いてbのSheet3を選択
したいのですが
”オブジェクトは、このプロパティまたはメソッドをサポートしていません。”
と実行エラーがでます。
他のブックを開いて他のブックのシートをコントロールすることはできるのでしょうか?
皆さんのお力をお貸しください。

Private Sub aのファイルのマクロ()
Workbooks.Open "C:\Documents and Settings\user\デスクトップ\b.xls"

Workbooks("b.xls").Sheets3.Select
End Sub

A 回答 (4件)

下から2行目、



Sheets3→Sheets("Sheet3")ではないのですか?

※Sheet3部分はシート名と完全一致です。
    • good
    • 0

こんにちは。



"b.xls"が、アクィブになっていれば、Select は使えますが、
Workbooks("b.xls").Sheets3.Select 'Sheet3 というのは、Books の配下にはありませんから、
単に、オフジェクトを単体にして、Sheet3.Select 'と書くことになりますが、一般的ではありません。

なお、この内容で、なぜ、Private ステートメントをつけているのかなって思います。

あえて書くなら、標準モジュールに、こんなスタイルになりますね。
-------------------------------------------
Sub a_Test1()
With Workbooks.Open ("C:\Documents and Settings\user\デスクトップ\b.xls" )
.Worksheets("Sheet3").Select
End With
End Sub
    • good
    • 0
この回答へのお礼

無事にプログラムが動くことになりました。ありがとうございます。

お礼日時:2010/01/05 19:58

私もうろ覚えなんですが、たしかBook・Sheet・Rangeは各々Selectしないといけないんじゃなかったかな?



Workbooks("b.xls").Activate
WorkSheets("Sheets3").Select    シートまでならここまで
Range("A1").Select
    • good
    • 0

このままでいくなら、


Private Sub aのファイルのマクロ()
Workbooks.Open "C:\Documents and Settings\user\デスクトップ\b.xls"
Workbooks("b.xls").Sheets("sheet3").Select
End Sub
でどうですか?
    • good
    • 0

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