• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:エクセル2007 マクロについて教えてください。)

エクセル2007 マクロで販売データの転記を行う方法

このQ&Aのポイント
  • エクセル2007のマクロを使用して、ファイルAの販売データをファイルBの詳細表シートに転記する方法について教えてください。
  • ファイルAには商品ID、販売日時、販売個数が入力されています。ファイルBは各商品IDごとに1枚のシートに商品情報が記入されています。シートAの販売日時と販売個数をそれぞれのシートにマクロで転記させたいです。
  • 「商品IDが変わったら、次のシートへ移動」という命令文を使用して、エクセル2007のマクロで販売データの転記を行う方法を教えてください。

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

  • ベストアンサー
  • keithin
  • ベストアンサー率66% (5278/7941)
回答No.3

たとえば。 sub macro1()  dim r as long  dim h as range  on error goto errhandle  r = workbooks("販売データ.xls").worksheets("販売データシート").range("A65536").end(xlup).row  for each h in workbooks("販売データ.xls").worksheets("販売データシート").range("A2:A" & r)   h.offset(0, 1).resize(1, 2).copy _    destination:=workbooks("商品ごとの詳細.xls").worksheets(h.value).range("A65536").end(xlup).offset(1)  next  exit sub errhandle:  with workbooks("商品ごとの詳細.xls")  with .worksheets.add(after:=.worksheets(.worksheets.count))   .name = h.value  end with  end with  resume end sub #補足 「それぞれのシート」とか「次のシート」とか,具体的にどのシートがどういう具合に対応しているのか,まったく説明されていません。 なので,そういう不足をすっ飛ばしてサンプルマクロをお話しします。実態と合ってなければ追加質問せずに捨てて下さい。

その他の回答 (2)

  • mu2011
  • ベストアンサー率38% (1910/4994)
回答No.2

ファイルBの各シート情報を主体にする方法は如何でしょうか。 (1)ファイルBのシート数分で繰り返し   For i =1 TO WorkSheets.Count    シートのタブ名かシートの固定セルで商品IDを確定、販売データ表をオートフィルタ、可視セル表示部分をコピー    (iはシート番号なので仮にシートタブ名は、Sheets(i).Nameで取得できる)   Next   又は、   For Each ws In WorkSheets   同上    (wsはシートのオブジェクトなので仮にシートタブ名は、ws.Nameで取得できる)    Next

回答No.1

ファイルAとBがすでに開いてる状態でファイルBの各シートの名が商品IDと同じとした場合でしか使えないマクロですが Windoes("ファイルB.xls").Activate ↑ これでファイルBのシートに移動します Sheets("ABAB").Select や Sheets("CDCD").Select ↑ これでシートに移動します 単純な方法としてはファイルAの2行目にある商品ID・販売日時・販売個数を変数に入れて、ファイルBに移動し商品IDと同じシートに移動して販売日時と販売個数を転記させ、ファイルAに戻って次の3行目って感じで転記するデータが無くなるまで繰り返すって感じですね ファイルAの情報を全て変数に持たせてからファイルBに移動って方法もあります

関連するQ&A