• 締切済み

可視セルへのコピー マクロ

次のように、可視セルから可視セルへコピーしたいです。 (元の状態) 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列以降にもコピーされてる状態にしたいのです。 可視セルへのコピーはマクロを組む必要があると聞いて見てるのですが、 私が実現させたい可視セルへのコピーとまた違うプログラムでした。 どなたかよろしくお願いします。

みんなの回答

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

>可視セルへのコピーはマクロを組む必要があると聞いて 確かにその通りです。 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

macrobiginner
質問者

お礼

できました! 質問するときは簡易な例にしたので、教えてくださったマクロを元のファイルで動くように自分で考えてみます。 どうしても悩んでしまったら、また教えてください。 取り急ぎ、御礼いたします。

  • KURUMITO
  • ベストアンサー率42% (1835/4283)
回答No.1

フィルターして可視部をコピーして貼り付けるなどをするよりもE1セルには例えば支払が未の方を表示させたい場合には未と入力し、済の方を表示したいのならE1セルに済と入力することで関数を使ってD,E,F列に表示させることができます。 E1セルに未と入力してから、D2セルには次の式を入力し、F2セルまで横方向にドラッグコピーしたのちに下方にもドラッグコピーします。 =IF($E$1="","",IF($B2=$E$1,A2,""))

macrobiginner
質問者

補足

実際にはデータはたくさんあって、コピーしたあと、E列には新しい情報を上書きで入力していくため、残念ながらその方法は取れません。 ただ、考え方として今後別のところで活用できるように覚えておきたいと思います。 ありがとうございます。

関連するQ&A