エクセル2007を使用しています。
次の様なシートで、特定列で条件(ブランク)に一致する行を一括して
グループ化するコードを教えてください。
A B C D
1 コード 科目 実績 予算
2 5000 販売収入 100 90
3 5001 受取手数料
4 5002 その他収入
5 【売上高】 100 90
この様な会計の管理帳票で、1シート約800行あり、シートが部門毎に
全部で約100シートが一つのブックに収めてあります。
全部のシートに対して、例えばC列がブランクの行を一括してグループ化
させる様なマクロのコードを教えていただきたいと思います。
(この場合だと3~4行目)
他の部門では使わない補助科目が多く、折りたたまないと使い物に
ならないため、現在は手作業で行っております。
どうぞよろしくお願い致します。
A 回答 (2件)
- 最新から表示
- 回答順に表示
No.2
- 回答日時:
方法1)
>一括してグループ化するコードを教えてください。
「飛び飛びの複数の行」を一括して「グループ化」する事は出来ません。
従ってマクロを使っても、例えば次のようにします。
sub macro1()
dim w as worksheet
dim h as range
on error resume next
for each w in worksheets
w.range("A1").clearoutline
for each h in application.intersect(w.usedrange, w.range("C:C")).specialcells(xlcelltypeblanks).areas
h.entirerow.group
next
w.outline.showlevels rowlevels:=1
next
end sub
#補足
既にグループ化処理済みのシートにさらにグループをかけると、レベルが勝手にどんどん深まっていきます。
方法2)
>他の部門では使わない補助科目が多く、折りたたまないと使い物にならない
「グループ化」じゃなく「折りたためればよい」だけなら、単に行を隠す操作を一括で行うことはできます。
sub macro2()
dim w as worksheet
on error resume next
for each w in worksheets
w.range("A1").clearoutline
application.intersect(w.usedrange, w.range("C:C")).specialcells(xlcelltypeblanks).entirerow.hidden = true
next
end sub
#注意
いずれの方法も、ご質問で言ってる「空白」は「ほんとに空っぽのセル」の意味で、数式等でたとえば「""」が計算されているなどではありません。
この回答への補足
keithin様
早々にご回答頂きましてどうもありがとうございました。
今実行させてみましたところ、グループ化、折りたたみ共に
完璧に動作致しました。
大変助かりました。
NO1のtom04様も同様の実行結果でしたが、keithinの
実行結果がより高速に動作しました。
なお、厚かましいとは思いますが、条件を追加してみたいの
ですが、ご教授願えればと思います。
1.グループ化対象の開始行を7行目からとする。
2.ブランクの判定対象列をC列とD列のどちらもブランクで
あった場合のみグループ化する。
もしご覧になりましたら教えて頂ければ大変助かります。
以上、よろしくお願い致します。
keithin様
質問内容に対して完璧に動作致しました。
どうもありがとうございました。
追加で回答補足として質問してしまいました。
恐縮ですがよろしくお願いしたいと思います。
以上、どうもありがとうございました。
No.1
- 回答日時:
こんばんは!
一例です。
標準モジュールに↓のコードをコピー&ペーストしてマクロを実行してみてください。
Sub test()
Dim i, k As Long
For k = 1 To Worksheets.Count
For i = 1 To Worksheets(k).Cells(Rows.Count, 1).End(xlUp).Row
If Worksheets(k).Cells(i, 3) = "" Then
With Worksheets(k).Rows(i)
.Group
.Hidden = True
End With
End If
Next i
Next k
End Sub
こんな感じではどうでしょうか?m(_ _)m
早速ご回答頂きましてどうもありがとうございました。
お返事が遅れてしまい申し訳ありませんでした。
今実行させてみましたところ、依頼通りに動作致しました。
どうもありがとうございました。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Excel(エクセル) 【マクロ】マクロが保存されているエクセルとは、別のエクセルブックの全シートの非表示列を再表示したい 1 2022/12/24 20:48
- Excel(エクセル) 【困っています】VBA 追加処理の記述を教えてください。 1 2022/08/25 22:54
- Excel(エクセル) 【マクロ】マクロが保存されているエクセルとは、別のエクセルのオートフィルターのしぼりをクリアーしたい 2 2022/12/24 08:36
- Visual Basic(VBA) ExcelのVBAを使い、複数シートの同一箇所を、同一条件にて一括でソルバーを回す方法について 1 2022/04/23 11:49
- Visual Basic(VBA) マクロで最終行を取得したい 4 2023/05/28 12:14
- Excel(エクセル) エクセルのマクロについて教えてください。 1 2023/02/21 09:28
- Visual Basic(VBA) 【困っています2】VBA 追加処理の記述を教えてください。 2 2022/08/26 11:42
- Visual Basic(VBA) 2つの条件が一致したら一覧へコピーしたい。 左から4番目以降のシート名にコードが入ったシートを全て、 5 2022/09/20 19:41
- Visual Basic(VBA) 集計シートA列のコードと一致する右に並んだシート名(コード)の3行目から10行目をコピーして貼り付け 4 2022/08/18 15:24
- Visual Basic(VBA) エクセルのマクロについて教えてください。 2 2023/07/16 14:36
このQ&Aを見た人はこんなQ&Aも見ています
-
性格の違いは生まれた順番で決まる?長男長女・中間子・末っ子・一人っ子の性格の傾向
同じ環境で生まれ育っても、生まれ順で性格は違うものなのだろうか。家庭教育研究家の田宮由美さんに教えてもらった。
-
エクセルで離れた列を選択してグループ化出来ますか?
Excel(エクセル)
-
エクセルVBA 行のグループ化を外すマクロ
Access(アクセス)
-
エクセルVBAで5行目からオートフィルタモードに設定したいたい
Excel(エクセル)
-
-
4
VBAで特定の文字が入力されたセルを選択
Excel(エクセル)
-
5
【Excel-マクロ】グループとアウトラインの設定をマクロで管理する方法
Excel(エクセル)
-
6
エクセルVBAである”記号”を含んでいる行を複数のグループにしたい
Excel(エクセル)
-
7
VBAで保存しないで閉じると空のBookが残る
Excel(エクセル)
-
8
VBAでエクセルシートを更新(リフレッシュ)する方法を教えて下さい。
Excel(エクセル)
-
9
一行おきにコピーするマクロが知りたい
Excel(エクセル)
-
10
ユーザーフォームを表示中にシートの操作をさせるには
Excel(エクセル)
-
11
EXCELのVBAでシートコピーをしたとき元のマクロを削除するには?
Excel(エクセル)
-
12
エクセルVBA シート上にあるコマンドボタンを削除するには?
Excel(エクセル)
-
13
VBAで、貼り付け禁止命令を実現したい(エクセル)
Visual Basic(VBA)
-
14
「Columns(A:C")」の列文字を数字にして表記したい"
Excel(エクセル)
-
15
エクセル マクロで数値が変った時行挿入できますか
Excel(エクセル)
-
16
エクセルVBAで、値が入っている最終行の、右隣の値をコピーして、別のセルに貼り付けるコード
Excel(エクセル)
-
17
【ExcelVBA】全シートのセルの数式を値に変換する事は可能でしょうか?
Visual Basic(VBA)
-
18
VBAで重複する項目を1つにまとめて金額を合計したい
Excel(エクセル)
-
19
【VBA】特定の値が入った行をコピーして別シートに貼り付ける方法をおしえていただきたいです。
Excel(エクセル)
-
20
エクセルマクロにて最終行まで数式をコピーする構文
Excel(エクセル)
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
Excelでシート名と最終更新日を...
-
【マクロ】毎回、ファイル名が...
-
VBAでシートコピー後、シート名...
-
エクセルの複数シートの保護を...
-
Excelで金銭出納帳。繰越残高を...
-
Excel2007で、太字にした行のみ...
-
EXCEL:同じセルへどんどん足し...
-
Excelのシートを、まとめて表示...
-
条件に応じて特定の行を非表示...
-
Accessのスプレッドシートエク...
-
エクセルVBAでパスの¥マークに...
-
excelでシート毎の最終更新日を...
-
Excel、同じフォルダ内のExcel...
-
別シート参照のセルをシート毎...
-
前の(左隣の)シートを連続参...
-
エクセルで毎回1枚目のシートを...
-
「マクロ」の足し算の式を教え...
-
エクセル マクロ実行時エラー’...
-
Excelで同じシートのコピーを一...
-
Excelでセル内の数式は残し値だ...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
エクセルのマクロで指定条件一...
-
シートをコピーして シートに...
-
【マクロ】顧客番号にて一致さ...
-
Excelでシート名と最終更新日を...
-
エクセルのマクロ設定について...
-
Excel シートを自動作成、セル...
-
新しいマクロの記録でコピーし...
-
【マクロ】毎回、ファイル名が...
-
エクセル マクロ 任意のファ...
-
エクセルVBA 行列を一気に変換...
-
シートをコピー、シート名を変更
-
プロジェクトロックしてあるシ...
-
Excel VBA 検索して該当行を抽出
-
リンクがあるシートBのコピーを...
-
エクセルのbookを開いたときに
-
VBA データ左側から3文字で分類...
-
エクセル マクロの作り方
-
エクセルのマクロ コマンドボ...
-
Excel マクロ 他ブックのシート...
-
Excel で選択しているセルの行...
おすすめ情報