• 締切済み

エクセルVBA セルの抽出とコントロール

エクセルVBAについての質問です。 結論から言いますと、添付ファイルのエクセルシートで以下の処理をしたいです。 1.「有無」の列の内容を判断し、「有」となっているもののみ、 E列に表示。 2.このままだと、抽出結果の行が飛び飛びになってしまう。 たとえば、「福利厚生費」の下は「荷造運賃発送費」となるが、間に3行 空いてしまう。これをしっかりくっつける形で処理されるようにしたい。 ※データ並び替えの機能を使えばできるように思うが、そうすると50音順等になってしまうのでできない。 3.販売管理費抽出のコントロールボタンを押せば、上記の処理がなされるようにしたい。 以上です。VBAの教科書をあさってみましたが、どうも応用の仕方が分かりませんでした。 お忙しいところまことに恐れ入りますが、ご検討の程お願いします。

みんなの回答

  • hige_082
  • ベストアンサー率50% (379/747)
回答No.2

一例です Sub test() Dim i As Long For i = 2 To Cells(Rows.Count, 1).End(xlUp).Row If Cells(i, 1).Value = "有" Then Cells(Rows.Count, 4).End(xlUp).Offset(1, 0).Value = Cells(i, 2).Value Next i End Sub こんな方法も有るんだ程度で

JUN3845
質問者

お礼

すごい!!! マジ助かります。本当にありがとう^^。 感謝致します。

  • kenpon24
  • ベストアンサー率64% (66/102)
回答No.1

Dim i As Long Dim dest As Long dest = 2 '書き込み開始行 For i = 2 To Range("A2").End(xlDown).Row '2行目から最終行まで If Range("A" & i) = "有" Then Range("E" & dest) = Range("B" & i) '勘定科目をE列に入力 dest = dest + 1 '書き込み先の行を1加える End If Next i これで実現できると思います

JUN3845
質問者

お礼

ご親切、かつ丁寧な回答をいただき、まことに有難うございました。 本当に助かりました。

関連するQ&A