- ベストアンサー
EXCEL VBA 他ブックのシートのコピー方法
今開いているブックに、開いていない他のブックのシートをコピーする記述方法を教えて頂けませんでしょうか。(Office365を利用) 開いているブック :A.xlsx シート:a 開いていないブック:B.xlsx シート:b bをaの後ろにコピーする方法を教えてください。aにボタンを置いて、それをクリックしたらという方法でも構いません。 よろしくお願いします。
- みんなの回答 (4)
- 専門家の回答
質問者が選んだベストアンサー
ボタンのマクロに以下のコードを AとBが同じフォルダなら WorkbookPath = ThisWorkbook.Path このままで 違う場合 ThisWorkbook.Path を フォルダ表示して上部のアドレスのところをクリックしてそれで出たものを"で囲って ThisWorkbook.Pathと書き替える。 WorkbookPath = "C:\Users\abcdefg\Documents\Office" などのようになる。 FileName = "B.xlsx" B.xlsxは実際のブック名に BBook.Sheets("Sheet1")のSheet1は実際のシート名に それぞれ変更してください。 Sub ボタン1_Click() Dim BBook As Workbook Dim WorkbookPath As String Dim FileName As String WorkbookPath = ThisWorkbook.Path FileName = "B.xlsx" If Dir(WorkbookPath & "\" & FileName) <> "" Then Workbooks.Open WorkbookPath & "\" & FileName Else MsgBox "ファイルが存在しません。", vbExclamation Exit Sub End If Set BBook = Workbooks(FileName) BBook.Sheets("Sheet1").Copy After:=ThisWorkbook.Worksheets(ThisWorkbook.Worksheets.Count) BBook.Close Set BBook = Nothing End Sub
その他の回答 (3)
- kkkkkm
- ベストアンサー率66% (1742/2617)
No3の補足です。 > フォルダ表示して上部のアドレスのところをクリックしてそれで出たもの クイックアクセスで出るドキュメントなどを表示してこの操作をした場合 ドキュメントはドキュメントとしか表示されないので、左のツリー上のところから表示してください。Windows10での操作ですので違う場合は出ないかもしれません。
- imogasi
- ベストアンサー率27% (4737/17070)
Sub test02() Set ak = ActiveWorkbook Set bk = Workbooks.Open("C:\Users\XX\Documents\YYYYY.xlsm") bk.Worksheets("Sheet1").Copy After:=ak.ActiveSheet bk.Close End Sub "C:\Users\XX\Documents\YYYYY.xlsm"は、質問のB.xlsxにあたるもの。 私の場合、テストに選んだ既存のブックが、マクロ付きだったので、拡張子はxlsmでした。 上記のbk.Worksheets("Sheet1").Copyは、質問の「シート:b」に当たる部分。 私のやった、一例のテストではうまく行ったが。やってみてください。 ActiveWorkbookはこのVBAを作って入れているBook。その中のシートは、質問の「a」シート1つだけでもよいようです。もちろん、コピー後は1つ増える。 BをOpenしないで、やりたいという要望ならば、別質問で聞いてみてください。
お礼
お礼が遅くなって申し訳ありません。 本当にありがとうございます。試してみたいと思います。
- Nobu-W
- ベストアンサー率39% (724/1831)
お礼
お礼が遅くなって申し訳ありません。 詳細に記述して頂き、本当にありがとうございます。 是非試してみたいと思います。