プロが教えるわが家の防犯対策術!

Office2003のエクセルでVBAを勉強しております。

そこで、VBAで別エクセルファイルからあるシートを指定エクセルファイルへ丸まるコピーしたい場合にはどのようにすればよいのでしょうか?

A 回答 (1件)

Sheets("A").Copy Before:=Workbooks("Book1").Sheets(1)




>Office2003のエクセルでVBAを勉強しております。

方法が解らなければ、記録マクロを確認するのが一番です。
動作が理解出来たら、コードの最適化を行ってください。

この回答への補足

補足です。
>方法が解らなければ、記録マクロを確認するのが一番です。
>動作が理解出来たら、コードの最適化を行ってください。

を行い
  Workbooks.Open Filename:="test_1.xls"
Windows("test_1.xls").Activate
Sheets("Sheet1").Cells.Select
Selection.Copy
Windows(strNewFileName).Activate
Sheets("Sheet1").Cells.Select
ActiveSheet.Paste
する事で一応できました。
後は最適化を行いたいと思います。
有難うございました。

補足日時:2007/04/17 13:56
    • good
    • 2
この回答へのお礼

早速のアドバイス有難うございます。

Sheets("A").Copy Before:=Workbooks("Book1").Sheets(1)
を試しました。

実際には下記のように書いてテストしました。
結果は「インデックスが有効範囲にありません」とエラーとなってしまいました。
Private Sub btnCombine_Click()
Dim result As Boolean
result = makeNewExcelFile()

Workbooks.Open Filename:=lblPath_1.Caption
Worksheets("Sheet1").Copy After:=Workbooks(strNewFileName).Worksheets("Sheet3")

End Sub

'新規エクセルファイルを作成
Function makeNewExcelFile() As Boolean
Dim intSheetCnt As Integer
'これで新規ブックでのシート数を1にします
Application.SheetsInNewWorkbook = 1
Workbooks.Add
strNewFilePath = "C:\"
strNewFileName = Format(Date, "yyyymmdd") & ".xls"
ActiveWorkbook.SaveAs strNewFilePath & strNewFileName
ActiveWorkbook.Close
End Function


コピー元エクセルファイルとコピー先エクセルファイルの指定の仕方がよくわかりませんでした。

お礼日時:2007/04/17 12:38

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