複数のExcelブックのシート1の内容を1つのExcelブックにコピー貼り付けたいのでvbaコードを教えてくださいm(_ _)m
ディスクトップに3つのExcelブックがあります。
1、通関書類
2、メーカー1
3、メーカー2
メーカー1と2のセルB3とE3より以下の内容を順番に通関書類のシート1に被らないようにコピー貼り付けたい。
でも今後はメーカー3とメーカー4もあるかもしれないので、一応形だけ教えていただければ助かりますm(_ _)m
そうする今後は自分で列を追加できるようになります。
お手数ですが、
ご教示願いたい。頼みます!
No.7ベストアンサー
- 回答日時:
以下のマクロを通関書類の標準モジュールに登録してください。
マクロでは、
メーカー1のSheet1
メーカー2のSheet1
から、品番、個数を取得しています。
これのSheet1を変える場合は、
Call set_maker("メーカー1", "Sheet1")
Call set_maker("メーカー2", "Sheet1")
の箇所を変えてください。
メーカー3,4を追加する場合は、この後に追加してください。
(メーカー1と同じレイアウトであることが前提です)
マクロの最初で通関書類のB3、E3以降の行をクリアしています。
-----------------------------------------
Option Explicit
Dim ms As Worksheet
Dim mrow As Long
Public Sub 通関書類設定()
Set ms = Worksheets("Sheet1")
ms.Range("B3:B" & Rows.Count).ClearContents
ms.Range("E3:E" & Rows.Count).ClearContents
mrow = 3
Call set_maker("メーカー1", "Sheet1")
Call set_maker("メーカー2", "Sheet1")
MsgBox ("完了")
End Sub
Private Sub set_maker(ByVal book_name As String, ByVal sheet_name)
Dim path As String
Dim wb As Workbook
Dim ws As Worksheet
Dim maxrow As Long
Dim wrow As Long
path = ThisWorkbook.path & "\" & book_name & ".xlsx"
Set wb = Workbooks.Open(path)
Set ws = wb.Worksheets(sheet_name)
maxrow = ws.Cells(Rows.Count, "B").End(xlUp).Row
For wrow = 3 To maxrow
ms.Cells(mrow, "B").Value = ws.Cells(wrow, "B").Value '品番
ms.Cells(mrow, "E").Value = ws.Cells(wrow, "E").Value '個数
mrow = mrow + 1
Next
wb.Close
End Sub
No.6
- 回答日時:
追加の補足要求です。
4.3つのブックは、オープン済みの状態でしょうか。
それとも、クローズされている状態でしょうか。
(通関書類にマクロを組み込んだ場合は、2つのブックと読み替えてください)
質問の意図は、「マクロは、ブックのオープンを行うのか否か」という確認です。
度々のご返信ありがとうございます。
通関書類は自分で開いてマクロを実行するので、チェックし、後で手動で閉じます。
メーカー1と2は閉じてる状態でマクロでデータを読み取って、その後自動的に閉じる形にして頂けるとありがたいですm(_ _)m
よろしくお願いしますm(_ _)m
No.5
- 回答日時:
追加の補足要求です。
1.ブック名とシート名の確認です。
① ブック名:通関書類.xlsx シート名:Sheet1
② ブック名:メーカー1.xlsx シート名:不明
③ ブック名:メーカー2.xlsx シート名:不明
ブック名は上記で間違いないでしょうか。(1,2の数字は半角の1,2です)
シート名の不明の箇所を提示していただけませんでしょうか。
2.マクロを登録するブックですが、どのブックに登録しますか。
1案: 通関書類
2案:メーカー1又はメーカー2(これは考えにくい)
3案:上記以外
こちらとしては、1案を推奨します。
3.マクロ実行時、既に通関書類のSheet1のB3以降及びE3以降にデータがあった場合、
そのデータは上書きされなくなりますが、それでよろしいでしょうか。
ご返信ありがとうございます
1、通関書類というブックのシートは1番目でシートでいいです。メーカー1とメーカー2のシート名は自分で指定できるようにして頂けると助かります。自分でシート名を変更することができます。ありがとうございます。
2、マクロを登録するブックは通関書類というブックで大丈夫です。
3、基本的に全て新規で登録するのでもしデータを入れる前にB3とE3以降のデータをクリアできるコードを入れていただければ助かりますが、後ほど自分で追加も出来そうです笑。
大変お手数ですが、
よろしくお願いしますm(_ _)m
No.4
- 回答日時:
補足ありがとうございました。
マクロ実行前のメーカー1とメーカー2の内容、
及びマクロ実行後の通関書類の内容です。
メーカー1の内容
https://gyazo.com/50b2d0e61962b34ba292d25fb8f23ff7
メーカー2の内容
https://gyazo.com/57c074c95324c8265ae275679e32ecd8
通関書類の内容 (マクロ実行結果)
https://gyazo.com/e0e9c845ee6014823f331c2581631bc3
(赤線がメーカー1の分、青線がメーカー2の分になります)
質問1.このようにしたいと、いうことでしょうか。
質問2.「被らないようにコピー貼り付けたい。」とは、品番が同じものがあれば、
どちらかをコピーしないというようにも受け取れます。
もし、そうであれば、具体的に例を挙げて説明していただけませんでしょうか。
ご回答ありがとうございます。
1、そのような効果ですね。
2、基本的にメーカーの品番それぞれ違うので同じ品番の可能性は極めて低いので、そのまま貼り付けたいのです。大丈夫です。通関手続き上、同じ品番だから省けることはありません笑
No.2
- 回答日時:
通関書類のレイアウトが判りません。
添付の画像のようなレイアウトが判るものを提示していただけませんでしょうか。
特に、各セルの行番号、列番号が判るようにそのガイドも含めてください。
(赤線で囲んだところです)
>メーカー1と2のセルB3とE3より以下の内容を順番に通関書類のシート1に被らないようにコピー貼り付けたい。
シート1にかぶらないようにとは、どういうことでしょうか。
具体的に例を挙げて説明していただけませんでしょうか。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Excel(エクセル) マクロVBA別Excelブックにデータ転記 2 2022/07/10 23:35
- Excel(エクセル) 【困っています】VBA 追加処理の記述を教えてください。 1 2022/08/25 22:54
- Visual Basic(VBA) 【困っています2】VBA 追加処理の記述を教えてください。 2 2022/08/26 11:42
- Visual Basic(VBA) エクセルのマクロについて教えてください。 4 2023/07/04 17:58
- Visual Basic(VBA) Excelのマクロコードについて教えてください。 1 2022/03/27 13:25
- Visual Basic(VBA) Excel VBA 最終行を取得しVlookup関数をコピーする方法をコーディングで教えてください。 3 2023/05/11 13:14
- その他(Microsoft Office) マクロVBAについて 1 2022/09/06 18:12
- Visual Basic(VBA) EXCEL VBA 単語置き換え について質問です ブック名 ぶぶぶ シート名 ししし セル V3〜 3 2023/03/08 01:41
- Excel(エクセル) Excel VBA 指定セルに入力されているパスからシートをコピーして別のブックに転記するVBAのコ 2 2022/04/19 15:53
- Visual Basic(VBA) VBAコードを張り付け後のエクセルの進め方 2 2023/02/07 18:24
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
エクセルの関数 ENTERを押...
-
WorkBooksをオープンさせずにシ...
-
Excelでブックの共有を掛けると...
-
VBAでブックを非表示で開いて処...
-
エクセルを共有するとPCによっ...
-
エクセルにおける,「ブック」...
-
エクセルで参照しているデータ...
-
エクセルで「ディスクがいっぱ...
-
エクセルで別ブックをバックグ...
-
エクセルファイルを開かずにpdf...
-
VBAでブック保護非保護を判定す...
-
エクセル:標準モジュールを一...
-
Excel(2010)のフィルターが保...
-
【ExcelVBA】シートをそれぞれ...
-
エクセルシートの一部を送りたい
-
Excelで拡張子の後に数字が……何...
-
エクセル2016です。「ブッ...
-
エクセルでウィンドウの枠固定...
-
エクセル 複数のブックを一度...
-
指定ファィルの指定シートをシ...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
エクセルの関数 ENTERを押...
-
VBAでブックを非表示で開いて処...
-
エクセルを共有するとPCによっ...
-
WorkBooksをオープンさせずにシ...
-
エクセルで参照しているデータ...
-
エクセルで「ディスクがいっぱ...
-
Excelでブックの共有を掛けると...
-
Excelで複数ブックの同一セルに...
-
Excel(2010)のフィルターが保...
-
エクセルで別ブックをバックグ...
-
エクセルにおける,「ブック」...
-
同じフォルダへのハイパーリン...
-
ブックのピボットを別ブックに...
-
エクセルファイルを開かずにpdf...
-
エクセル2016です。「ブッ...
-
ブックの保護ができないんです...
-
エクセルで50行ごとに区切った...
-
エクセルシートの一部を送りたい
-
フォルダ内の複数ファイルから...
-
エクセル 複数のブックを一度...
おすすめ情報
すみません、レイアウトをアップロードします。
よろしくお願いしますm(_ _)m