• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:エクセル VBA あるシートで指定したセルを他のシートの下端のセルに自動で貼り付ける)

エクセルVBAでシート間のデータを自動貼り付けする方法

このQ&Aのポイント
  • エクセル2003の「メイン」「本社」「地方」というシートに、指定したセルのデータを自動的に他のシートの下端に貼り付ける方法を教えてください。
  • VBAを使用して、データの振り分けと自動貼り付けを行いたいです。
  • マクロ初心者なので、ネットで調べてもうまくいかないです。どうぞよろしくお願いします。

質問者が選んだベストアンサー

  • ベストアンサー
  • pkh4989
  • ベストアンサー率62% (162/260)
回答No.2

こんにちは。 以下のマクロで、試してみてください。 Sub 振り分け()   Dim wRow1      As Long   Dim wRow      As Long   Dim mRow      As Long   Dim ShtNm      As String   '   With ActiveSheet     'メインシートの入力最大行数を求める     mRow = .Range("B" & Rows.Count).End(xlUp).Row     For wRow = 2 To mRow       '場所       ShtNm = .Cells(wRow, 4)       '振分先の設定行を取得       wRow1 = Get_Row(ShtNm)       'B列設定       Worksheets(ShtNm).Cells(wRow1, 2) = .Cells(wRow, 2)       'C列設定       Worksheets(ShtNm).Cells(wRow1, 3) = .Cells(wRow, 3)     Next   End With End Sub '振分先の設定行を取得 Function Get_Row(ShtNm As String) As Long   Get_Row = Worksheets(ShtNm).Range("B" & Rows.Count).End(xlUp).Row + 1   If Get_Row = 1 Then     Get_Row = 2   End If End Function

hhhiiiddee
質問者

お礼

おー!!!! 完璧です!! しかも式の中にちゃんと説明まで入れてくださってとても分かりやすいです(><) マクロを実行した際の感動が半端じゃないです! 本当にありがとうございました!! 大変勉強にもなりました。 ご教示いただいたことに感謝致します。

その他の回答 (1)

  • hige_082
  • ベストアンサー率50% (379/747)
回答No.1

私には、内容が理解できません 何をどのような条件で、どうしたいのかが読み取れません なぜ、折角「メイン」シートに、まとめたデータを、再度、振り分けるのですか? まとめる際に、条件はあるのでしょうか、それとも単純に本社、地方の順でよいのですか、コピペではダメなのですか 場所には、どんなデータが入るのですか、気にしなくても良いのでしょうか 無理して、マクロでやる必要があるのですか

hhhiiiddee
質問者

補足

「メイン」シートは、データをまとめるためにあるのではなく、データを振り分ける為だけに用意してあるものです。 私が扱っているデータは、既に完成されたものではなく、随時増えていくものなので、各シートをいちいち開いて入力するとかなりの手間になってしまうので、「メイン」シートに入力したものを一括振り分けしたいと考えている次第です。 ちなみに、質問させていただいている中では項目名、シート数が少なくなっておりますが、実際に振り分けるデータは10項目(B1~K1)、シート数8になっております。 実際の選択範囲は任意で変えれば良いので、あえて質問には数を少なく記載させていただいた次第です。 まとめる際の条件は、「メイン」シートのB列にあるものは別のシートのB列の下端に、C列にあるものはC列の下端に、・・・という条件だけです。ただし、「メイン」シートのD1(場所)はあくまでも振り分けるシートを判別するだけなので、D列のデータは振り分け対象ではありません。 場所に入るデータは、シート名なので「本社」、「地方」のいずれかが入るものとお考えください。 膨大なデータ量を扱っているので、メインシートに入力したものを一括振り分けをしたいと考えております。 この説明では足りないかもしれませんが、是非とも宜しくお願い致します。

関連するQ&A