プロが教える店舗&オフィスのセキュリティ対策術

【やりたい事】
1違うフォルダにあるbook1から7つのセル項目をbook2へ転記したい。

book1の保管場所↓
C:\Users\user\Desktop\新しいフォルダー

book2の保管場所↓
C:\Users\user\Desktop\新しいフォルダー\リスト



2以下コードは、同じフォルダ内にある、マクロでbook2を開き、転記します。
⇒book2は既に開いている前提に変更したいです

なお、同じフォルダ内からの転記は以下のコードのとおりで動きます
よろしくお願いします

【コード】※本サイトにてご指導いただきまして作りました。

Sub 別ブックへ転記()


Dim ws1 As Worksheet

Dim wb2 As Workbook

Dim ws2 As Worksheet


Dim maxrow2 As Long


Dim row2 As Long



Set ws1 = Worksheets("Sheet1") '転記元シート。開いているシート。



Set wb2 = Workbooks.Open(ThisWorkbook.Path & "\" & "Book2.xlsx") '転記先のブック。




Set ws2 = wb2.Worksheets("Sheet1") '転記先のブック。シート




maxrow2 = ws2.Cells(Rows.Count, "I").End(xlUp).Row '転記先のブックi列


row2 = maxrow2 + 1

ws2.Cells(row2, 9).Resize(1, 7).Value = ws1.Cells(1, 0).Resize(1, 7).Value '転記元から転記先へ7セル分を転記



wb2.Save '転記先のブックを上書き


End Sub

A 回答 (4件)

さらにNo.2です。



補足ですが、内容としては、

● 今開かれている全てのExcelブックのファイル名を1つずつ見て、book2.xlsxという名前のものを探す

● i番目にbook2.xlsxのファイルを見つけたら、それをwb2の指すExcelブックとなるように代入する

という操作を行っています。
ご参考までに。
    • good
    • 1
この回答へのお礼

ありがとうございます、今環境がないので、本日中に、試してみます
ちなみに、最初から、ブック2は、開いているという、意味であってますか???

お礼日時:2023/09/27 06:58

No.1〜No.3です。



仰るとおり、実行時にbook2は開いておかなければなりません。
    • good
    • 1
この回答へのお礼

以下のコードを 0から1へ変更したら、動きました。
ありがとうございます

For i = 0 To Workbooks.Count
変更後
For i = 1 To Workbooks.Count

お礼日時:2023/09/27 10:40

No.1です。



book2の場所は全く別の場所ということですね。

であれば、

変更前
Set wb2 = Workbooks.Open(ThisWorkbook.Path & "\" & "Book2.xlsx") '転記先のブック。

変更後
Dim i As Integer

For i = 0 To Workbooks.Count

If Workbooks(i).Name = "book2.xlsx" Then

Set wb2 = Workbooks(i) '転記先のブック。

End If

Next

としてみてください。
なお、book2が開いていなかった場合のエラー処理は施していません。

よろしくお願いします。
    • good
    • 1
この回答へのお礼

ご指導ありがとうございます。

試したままなのですが、以下の部分がエラー(黄色く)なります
ファイル名 book2.xlsx を見直しましたが、間違いはありませんでした

なお、book2.xlsxファイルは開いたままになっています
ご指摘あれば、お願いします

If Workbooks(i).Name = "book2.xlsx" Then

お礼日時:2023/09/27 09:23

book2は必ず、book1がある「新しいフォルダ」の直ぐ下の「リスト」フォルダにある、ということであれば、



Set wb2 = Workbooks.Open(ThisWorkbook.Path & "\" & "Book2.xlsx") '転記先のブック。

を、

Set wb2 = Workbooks.Open(ThisWorkbook.Path & "\リスト\" & "Book2.xlsx") '転記先のブック。

とするだけで大丈夫だと思います。
試してみてください。
    • good
    • 1
この回答へのお礼

ご指導ありがとうございます
試したところできましたが

大変恐縮なのですが、違うフォルダの場所は、すぐしたの階層ではなく
全く違う場所にあります
もしわかれば、さらに、ご指導お願いします

お礼日時:2023/09/26 22:28

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

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


このQ&Aを見た人がよく見るQ&A