質問

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

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

通報する

回答 (1件)

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


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

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

この回答へのお礼

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

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


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

この回答への補足

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

を行い
  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
する事で一応できました。
後は最適化を行いたいと思います。
有難うございました。

このQ&Aは役に立ちましたか?5 件

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

新しく質問する

このQ&Aを見た人はこんなQ&Aも見ています

注目の記事

子供の夏休みの過ごし方

読書感想文・自由研究・宿題・工作など、たまには子供と一緒にチャレンジしてみませんか?


新しく質問する

このカテゴリの人気Q&Aランキング

毎日見よう!教えて!gooトゥディ

べんりQ&A特集