• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:Excel VBA 違うxlsファイルの指定したシートを開く処理)

Excel VBAで違うExcelファイルの指定したシートを開く処理を試してみよう!

このQ&Aのポイント
  • Excel VBAで違うExcelファイルの指定したシートを開く方法について詳しく教えてください。
  • また、指定したシートを現在のブックにコピーする方法も知りたいです。お手数ですが、ご教示ください。
  • 問題の箇所は、「ここでしょうか?.Sheet()」と指定してもうまくいかないという部分です。

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

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

こんにちは。 >エラーの内容は、 実行時エラー'1004'; >「アプリケーションの定義またはオブジェクト定義のエラーです。」 というのは、 With Workbooks.Open(Filename:=fnames) '******************  .Worksheets(1).Select '指定する  'ボタンのあるシートにコピーする  .Worksheets(1).Cells.Copy ThisWorkbook.ActiveSheet.Range("A1")   'ボタンのあるシートに戻る  Application.Goto ThisWorkbook.ActiveSheet.Range("A1")  End With の ******* の部分に何か入って、アクティブブックが、「Workbooks.Open(Filename:=fnames)」と開いたブックでない場合に、そのような文言のエラーが発生します。 もし、必要とあれば、この2行をセットに使ってください。  .Activate  .Worksheets(1).Select '指定する コピーするだけなら、単に、このコードだけで足ります。  .Activate さえ必要ありません。  .Worksheets(1).Cells.Copy ThisWorkbook.ActiveSheet.Range("A1") 

i00323
質問者

お礼

出来ました! 丁寧なご指導ありがとうございました!

その他の回答 (1)

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

こんにちは。 >指定する事が出来たら With ステートメントを使います。シートを指定しないのなら、その開いたブックのActiveSheet になります。選ぶなら、InputBox 関数やメソッドを用いて、選ばせます。 Copy は、Cells と、シート全体を取得しています。 Sub FILE_OPEN8() Dim fnames As String fnames = fnames1 With Workbooks.Open(Filename:=fnames)  .Worksheets(1).Select '指定する  'ボタンのあるシートにコピーする  .Worksheets(1).Cells.Copy ThisWorkbook.ActiveSheet.Range("A1")   'ボタンのあるシートに戻る  Application.Goto ThisWorkbook.ActiveSheet.Range("A1")  End With End Sub なお、通常、MsgBox のYes/No は、こんな書き方をします。 Private Sub CB1_Click() If MsgBox("データ展開する?", vbYesNo, "データ展開?") = vbYes Then  Call IMPORT.FILE_OPEN1 End If End Sub

i00323
質問者

お礼

ありがとうございます。 早速コードを変更してトライしてみたのですが、 下記でどうしてもエラーがでます。 With Workbooks.Open(Filename:=fnames)  .Worksheets(1).Select '指定する  *ここでエラー* End With どうしたらよろしいでしょうか? MsgBoxの件ありがとうございました。 すぐに変更いたしました!

i00323
質問者

補足

エラーの内容は、 「アプリケーションの定義またはオブジェクト定義のエラーです。」 と出ます。 使用しているのはPersonal Edition のExcel2003です。

関連するQ&A