• ベストアンサー

エクセルで

エクセル2010を使っています エクセルで作業用のブック(以下ブックA)を閉じるとき自動的に記録・参照用のブック(以下ブックB)に自動的に記録するにはどうすればいいですか Workbook_BeforeClose というイベントマクロに設定すればいいという話ですが 問題点は 追加した分だけ転記して行きたいのでどうやってそれを判断させるかです 基本的に行方向に追加していきます  あと列も全部ではなく20列だけ記録して行きたいとおもってます  説明がわかりにくくすいません

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

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

そうですね。 「作業用のブック」を具体的にどう使っていて、そこから「そもそもどこが保存したい範囲」だと(転記するしない以前の問題として)どうして判るのか、肝心の内容がまるで説明されていません。 でもまぁ、イチイチあなたの説明を待っていても始まらないので。 ●Z列に転記したら「済み」とマクロに記入させることにして、まだ済んでない行だけ転記する とでもしてみましょう。 private workbook_BeforeClose()  dim r as long  dim myBook as wrokbook  dim w as worksheet  application.screenupdating = false  set mybook = workbooks.open(filename:="c:\test\BookB.xlsm") ’適切に記入する事  set w = thisworkbook.worksheets("シート名") '適切に記入する事  for r = 1 to w.range("A65536").end(xlup).row  if w.cells(r, "Z") <> "済み" then  mybook.worksheets("転記先のシート名").range("A65536").end(xlup).offset(1).resize(1, 20).value = w.cells(r, "A").resize(1, 20).value  w.cells(r, "Z") = "済み"  end if  next r  mybook.close true  application.screenupdating = true end sub それぞれのシート名とか、具体的にどこのセル範囲を転記したいのかとか、「記入済み行とそうでない行(転記するしないと関係なく)」がどこを見たら区別できるようになっているのかとか、そもそもブックBがどこに置いてあるのかとか、説明がヌケているところはてきとーに書いてあるのであなたがご自分で適切に修正してください。

yamattihiro
質問者

補足

ありがとうございます 仮に済の表示が違う列だった場合はZのところを変えればいいのですか