- 締切済み
可視セルへのコピー マクロ
次のように、可視セルから可視セルへコピーしたいです。 (元の状態) A B C D E F 名前 支払 金額 名前 支払 金額 aさん 済 150 bさん 済 200 cさん 未 150 dさん 済 100 eさん 未 120 fさん 済 250 gさん 未 300 hさん 未 210 この状態をB列で支払が済んでるかどうかでフィルターをかけて ABC列をコピーし、DEF列に可視セルのみコピーして A B C D E F 名前 支払 金額 名前 支払 金額 cさん 未 150 cさん 未 150 eさん 未 120 eさん 未 120 gさん 未 300 gさん 未 300 hさん 未 210 hさん 未 210 フィルターをはずすと A B C D E F 名前 支払 金額 名前 支払 金額 aさん 済 150 bさん 済 200 cさん 未 150 cさん 未 150 dさん 済 100 eさん 未 120 eさん 未 120 fさん 済 250 gさん 未 300 gさん 未 300 hさん 未 210 hさん 未 210 と、未払いの人だけ、D列以降にもコピーされてる状態にしたいのです。 可視セルへのコピーはマクロを組む必要があると聞いて見てるのですが、 私が実現させたい可視セルへのコピーとまた違うプログラムでした。 どなたかよろしくお願いします。
- みんなの回答 (2)
- 専門家の回答
みんなの回答
- keithin
- ベストアンサー率66% (5278/7941)
>可視セルへのコピーはマクロを組む必要があると聞いて 確かにその通りです。 sub macro1() dim LastRow as long ’準備 lastrow = range("B65536").end(xlup).row range("D2:F" & lastrow).clearcontents ’フィルタ range("B:B").autofilter field:=1,criteria1:="未" ’可視セルに記入 with range("D2:F" & lastrow) .formula = "=A2" activesheet.autofiltermode = false .value = .value end with end sub
- KURUMITO
- ベストアンサー率42% (1835/4283)
フィルターして可視部をコピーして貼り付けるなどをするよりもE1セルには例えば支払が未の方を表示させたい場合には未と入力し、済の方を表示したいのならE1セルに済と入力することで関数を使ってD,E,F列に表示させることができます。 E1セルに未と入力してから、D2セルには次の式を入力し、F2セルまで横方向にドラッグコピーしたのちに下方にもドラッグコピーします。 =IF($E$1="","",IF($B2=$E$1,A2,""))
補足
実際にはデータはたくさんあって、コピーしたあと、E列には新しい情報を上書きで入力していくため、残念ながらその方法は取れません。 ただ、考え方として今後別のところで活用できるように覚えておきたいと思います。 ありがとうございます。
お礼
できました! 質問するときは簡易な例にしたので、教えてくださったマクロを元のファイルで動くように自分で考えてみます。 どうしても悩んでしまったら、また教えてください。 取り急ぎ、御礼いたします。