
添付画像をご覧ください。
【やりいたい事】
ブック1の A2:C2 のセルの値を ブック2のA8:C8 へ転記したい
【他情報】
ブック1とブック2は同じフォルダ内(仕事フォルダ)にあります
ブック1の場所とファイル名: C:\Users\2020\Desktop\仕事\Book1.xlsm
ブック1シート名:Sheet1
ブック2の場所とファイル名: C:\Users\2020\Desktop\仕事\Book2.xlsx
ブック2シート名:Sheet1
【参考:詳しい方が教えてくれたコード】
※自分の貼付方が悪いのか動かなかったです
Option Explicit
Public Sub 別ブックへ転記2()
Dim ws1 As Worksheet
Dim wb2 As Workbook
Dim ws2 As Worksheet
Dim maxrow1 As Long
Dim maxrow2 As Long
Dim row1 As Long
Dim row2 As Long
Set ws1 = Worksheets("Sheet1")
maxrow1 = ws1.Cells(Rows.Count, "A").End(xlUp).Row
If maxrow1 < 4 Then Exit Sub
Set wb2 = Workbooks.Open(ThisWorkbook.path & "\" & "Book2.xlsx")
Set ws2 = wb2.Worksheets("Sheet1")
maxrow2 = ws2.Cells(Rows.Count, "A").End(xlUp).Row
If maxrow2 < 4 Then maxrow2 = 4
row2 = maxrow2 + 1
For row1 = 4 To maxrow1
ws2.Cells(row2, 1).Resize(1, 3).Value = ws1.Cells(row1, 1).Resize(1, 3).Value
row2 = row2 + 1
Next
wb2.Save
wb2.Close
MsgBox ("完了")
End Sub

No.9ベストアンサー
- 回答日時:
>すいません、ブック2もオープンにしたまま、連続して転記をする状態がありました!!!
>しかし、ブック1から常に実行→実行ボタンもつけますので、常にブック1からの実行てなり問題ないことを確認しました
結局、現状のままで良いということでしょうか。
マクロの勉強は最初は、参考書を購入して勉強しました。
マクロで何かの特定のことに関して調べる場合は、下記の
オフィス田中をよく利用しています。
http://officetanaka.net/excel/vba/tips/
No.8
- 回答日時:
No7です。
そもそもの話になりますが、マクロ実行時の前提は
①ブック1はオープンした状態、ブック2はクローズした状態
になっています。
これを
②ブック1はオープンした状態、ブック2もオープンした状態
にしたいということでしょうか。
③それとも、①、②のどちらの状態であっても正しく動作するようにしたい
ということでしょうか。
すいません、ブック2もオープンにしたまま、連続して転記をする状態がありました!!!しかし、ブック1から常に実行→実行ボタンもつけますので、常にブック1からの実行てなり問題ないことを確認しました
すごく効率的で助かっています
今、コードの理解も進めています
ちなまに、たつまるさんは
マクロの勉強は、どのよううにして
行ったんですか???
自分は、、すごく、マクロに興味が
あり、勉強しています
No.7
- 回答日時:
No6です。
No6は無視してください。
ブック2、ブック1をともにオープンし、ブック2をアクティブ状態にして、
当該マクロを実行すると、ブック2の情報をブック2に転記してしまうことが確認できました。
本来、ブック2はクローズしてあることが前提です。
従って、ブック2がオープンされた状態でマクロを実行したとき、
以下のいずれかの動作が考えられます。
①ブック2がオープン中なので、エラーとする。
②構わずに処理を続行し、ブック1の内容をブック2に転記する。
上記で②の方を希望されるということでしょうか。
No.6
- 回答日時:
>ブック1【転記元】ではなく、ブック2【転記先】がアクティブになっていると、ブック2の情報をブック2に転記してしまいます。
そもそもの話ですが、ブック2はクローズされた状態です。
それをオープンしたときに、ブック2がアクティブになります。
最初からブック2がアクティブにはならないはずですが・・・・・
マクロは、ブック1の標準モジュールに登録されている前提です。
ブック1は、マクロのあるファイルなので、必ず
Set ws1 = Worksheets("Sheet1")
でブック1のシート1がws1に設定されることが保証されるはずです。
具体的にどのような操作をしたとき、ブック2の情報をブック2に転記してしまうのでしょうか。
No.5
- 回答日時:
No4です。
If maxrow2 < 4 Then maxrow2 = 4
は
If maxrow2 < 2 Then maxrow2 = 2
の誤りでした。訂正します。
すいませんありがとうございます。
あと1点
ブック1【転記元】ではなく、ブック2【転記先】がアクティブになっていると、ブック2の情報をブック2に転記してしまいます。
以下コードの転記元を Sheet1だけではなく、ブック1のシート1と
指定すれば出来ると思いますが、コードが書けません。
ご教授お願いします。なお、他の方法でも大丈夫です
ws2.Cells(row2, 1).Resize(1, 3).Value = ws1.Cells(row1, 1).Resize(1, 3).Value
No.4
- 回答日時:
No3です。
maxrow2 = ws2.Cells(Rows.Count, "A").End(xlUp).Row
A列の最終行を取得します。
If maxrow2 < 4 Then maxrow2 = 4
もし、最終行が4未満なら、強制的に最終行を4にします。
row2 = maxrow2 + 1
row2は、書き込み先の行番号なので、
最終行+1をrow2にセットします。
ws2.Cells(row2, 1).Resize(1, 3).Value = ws1.Cells(2, 1).Resize(1, 3).
Value
(転記先row2行の1列目のセル)を3列に伸ばしたセルへ
(転記元2行、1列目のセル)を3列に伸ばしたセルを転記
No.3
- 回答日時:
以下のようにしてください。
転記元は、常にA2~C2です。
Public Sub 別ブックへ転記2()
Dim ws1 As Worksheet
Dim wb2 As Workbook
Dim ws2 As Worksheet
Dim maxrow2 As Long
Dim row1 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, "A").End(xlUp).Row
If maxrow2 < 4 Then maxrow2 = 4
row2 = maxrow2 + 1
ws2.Cells(row2, 1).Resize(1, 3).Value = ws1.Cells(2, 1).Resize(1, 3).Value
wb2.Save
wb2.Close
MsgBox ("完了")
End Sub
ありがとうございます。動きました。感動しています。
今、コードを理解しているところです。
以下4つのコードについて、簡単に教えていただけないでしょうか。
どんな作業。指示をしているといような感じでですね。
簡単にで大丈夫です。
maxrow2 = ws2.Cells(Rows.Count, "A").End(xlUp).Row
If maxrow2 < 4 Then maxrow2 = 4
row2 = maxrow2 + 1
ws2.Cells(row2, 1).Resize(1, 3).Value = ws1.Cells(2, 1).Resize(1, 3).
Value
No.1
- 回答日時:
>【やりいたい事】
>ブック1の A2:C2 のセルの値を ブック2のA8:C8 へ転記したい
これだけでいいのであれば下記のコードで動くと思いますが、
ブック1に2行以上のデータがあっても転記したい、
とかブック2の末尾に転記したい、などの要望には対応していません。
---------------------------------------------------
Option Explicit
Public Sub 別ブックへ転記2()
Dim ws1 As Worksheet
Dim wb2 As Workbook
Dim ws2 As Worksheet
Set ws1 = Worksheets("Sheet1")
Set wb2 = Workbooks.Open(ThisWorkbook.Path & "\" & "Book2.xlsx")
Set ws2 = wb2.Worksheets("Sheet1")
ws2.Cells(8, 1).Resize(1, 3).Value = ws1.Cells(2, 1).Resize(1, 3).Value
wb2.Save
wb2.Close
MsgBox ("完了")
End Sub
---------------------------------------------------
回答ありがとうございます
説明が下手だったのですが
ブック1のセル番地は変わらない
のですが
ブック2→転記先の行は
時間によって、8行目、9行目と
行だけ、増えていきます
台帳で、どんどん下に追加して
いきます
アドバイスいただけましたら
宜しくお願い致します!
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
このQ&Aを見た人はこんなQ&Aも見ています
-
Excel VBAで同じフォルダ内のファイルを開くには?
Excel(エクセル)
-
ExcelのVBAで同一フォルダ内にあるファイルに同じ処理をしたい
Excel(エクセル)
-
【VBA】マクロの入ったファイルと同じフォルダに,出力したファイルを保存するコードについて
Visual Basic(VBA)
-
-
4
Excelの選択範囲を特定のセル値をファイル名にしてPDFで保存する
Excel(エクセル)
-
5
VBA 空白行に転記する
Visual Basic(VBA)
-
6
i=cells(Rows.Count, 1)とi=cells(Rows.Count, 2)の違い
Visual Basic(VBA)
-
7
フォルダ内の複数ファイルから、特定セルだけを抽出し、並び替えて集約したい
Excel(エクセル)
-
8
エクセルVBA、ファイル名をセルの値で保存の方法を教えてください。 おそれいります。こちらで数々のエ
Excel(エクセル)
-
9
WorkBooksをオープンさせずにシートにコピーしたい【EXCEL VBA】
Excel(エクセル)
-
10
ExcelVBAを使って、値がある場合は作業を繰り返し実行するプログラムを作成したい。
Visual Basic(VBA)
-
11
エクセルで特定の列が0表示の場合、その行を非表示にしたい
Excel(エクセル)
-
12
Excelで複数ブックの同一セルに同じ値を入力するにはどうすればよいですか?
Excel(エクセル)
-
13
Excel VBA、 別ブックの最終行セルへのコピー&値ペースト
Visual Basic(VBA)
-
14
マクロ 新しいシートにデータをコピペしてシートの名前を変更したい
Excel(エクセル)
-
15
数式による空白を無視して最終行までコピーするマクロ
Excel(エクセル)
-
16
エクセルをPDFで保存し、ファイル名はA1セルを参照するVBAの記述を教えてください。
Excel(エクセル)
-
17
エクセルvbaで、別シートの最下行にデータを取り込むコードを教えてください。
Visual Basic(VBA)
-
18
エクセルのvbaにて thisworkbookに記載のマクロを他のブックにマクロにて自動コピー出来る
Excel(エクセル)
-
19
VBA別シートの最終行の次行へ転記したい。
Visual Basic(VBA)
-
20
EXCEL マクロで 同じフォルダ内の複数ファイルの複数行全体を選択して1つのファイルに集約
Excel(エクセル)
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
エクセルを共有するとPCによっ...
-
エクセルの関数 ENTERを押...
-
複数ファイルから特定シートの...
-
Excelファイルをダブルクリック...
-
VBAでブックを非表示で開いて処...
-
エクセルファイルをオープンし...
-
Excelで複数ブックの同一セルに...
-
Excel起動時に特定のワークシー...
-
ブックのピボットを別ブックに...
-
【マクロ】【画像あり】❶ブック...
-
エクセルファイルを開かずにpdf...
-
VBAでブック保護非保護を判定す...
-
【マクロ】【画像あり】ファイ...
-
リンク元ブックのPWが分からな...
-
Excelの外部参照しているセルが...
-
指定ファィルの指定シートをシ...
-
クロムブックとクロームブック...
-
Excel(2010)のフィルターが保...
-
エクセルの「ウィンドウ→表示し...
-
MSアクセスのインポート手法(パ...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
エクセルを共有するとPCによっ...
-
エクセルの関数 ENTERを押...
-
VBAでブックを非表示で開いて処...
-
【マクロ】【画像あり】ファイ...
-
【マクロ】【画像あり】❶ブック...
-
Excelファイルをダブルクリック...
-
エクセルで参照しているデータ...
-
WorkBooksをオープンさせずにシ...
-
フォルダ内の複数ファイルから...
-
Excel(2010)のフィルターが保...
-
複数ファイルから特定シートの...
-
エクセルでウィンドウの枠固定...
-
Excelで複数ブックの同一セルに...
-
同じフォルダへのハイパーリン...
-
エクセルを開くと最大化などの...
-
ブックのピボットを別ブックに...
-
vbaでpdfを開いて1ページ目のみ...
-
Excelでブックの共有を掛けると...
-
指定ファィルの指定シートをシ...
-
エクセルにおける,「ブック」...
おすすめ情報