- ベストアンサー
エクセルで
エクセル2010を使っています エクセルで作業用のブック(以下ブックA)を閉じるとき自動的に記録・参照用のブック(以下ブックB)に自動的に記録するにはどうすればいいですか Workbook_BeforeClose というイベントマクロに設定すればいいという話ですが 問題点は 追加した分だけ転記して行きたいのでどうやってそれを判断させるかです 基本的に行方向に追加していきます あと列も全部ではなく20列だけ記録して行きたいとおもってます 説明がわかりにくくすいません
- みんなの回答 (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がどこに置いてあるのかとか、説明がヌケているところはてきとーに書いてあるのであなたがご自分で適切に修正してください。
補足
ありがとうございます 仮に済の表示が違う列だった場合はZのところを変えればいいのですか