
エクセル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で質問しましょう!
このQ&Aを見た人はこんなQ&Aも見ています
-
エクセルVBA 行のグループ化を外すマクロ
Access(アクセス)
-
エクセルで離れた列を選択してグループ化出来ますか?
Excel(エクセル)
-
エクセルVBAで5行目からオートフィルタモードに設定したいたい
Excel(エクセル)
-
-
4
複数の条件に合う行番号を取得するには
その他(Microsoft Office)
-
5
VBAでエクセルシートを更新(リフレッシュ)する方法を教えて下さい。
Excel(エクセル)
-
6
「Columns(A:C")」の列文字を数字にして表記したい"
Excel(エクセル)
-
7
別シートのマクロを実行する方法
Excel(エクセル)
-
8
Excelで、あるセルの値に応じて行を自動挿入したい
Visual Basic(VBA)
-
9
VBAでcsvファイルもシートもあるのに「インデックスが有効範囲にありません」と表示される2
Visual Basic(VBA)
-
10
【VBA】特定列に文字が入っていたらそのセル行をコピーしてマスターブックの同じ行に貼り付けたい
その他(Microsoft Office)
-
11
別ファイルを開かず、INDIRECT関数を使用せずに、別ファイルのデータを求めたい
Excel(エクセル)
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
【マクロ】毎回、ファイル名が...
-
前の(左隣の)シートを連続参...
-
エクセルの複数シートの保護を...
-
エクセルで前のシートを連続参...
-
別シート参照のセルをシート毎...
-
エクセルで前シートを参照して...
-
Excel、同じフォルダ内のExcel...
-
エクセルでファイルを開いたと...
-
エクセル 計算式も入っていない...
-
エクセルでファイル保存時に複...
-
シートの保護のあとセルの列、...
-
シート1に列挙したNGワードを...
-
エクセルで毎回1枚目のシートを...
-
VBAでシートコピー後、シート名...
-
Excelで、リストから順番に値を...
-
EXCEL:同じセルへどんどん足し...
-
複数のピボットを同じフィルタ...
-
エクセルで、行ごとの並び替え...
-
Excel シートに画像が貼ってあ...
-
条件に応じて特定の行を非表示...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
エクセルのマクロで指定条件一...
-
【マクロ】毎回、ファイル名が...
-
シートをコピーして シートに...
-
エクセル マクロの効率化について
-
【マクロ】顧客番号にて一致さ...
-
新しいマクロの記録でコピーし...
-
エクセル マクロの作り方
-
Excel で選択しているセルの行...
-
エクセルのマクロ設定について...
-
エクセルのマクロ コマンドボ...
-
エクセル マクロ 任意のファ...
-
Excel VBA 検索して該当行を抽出
-
特定のセルだけ結果がおかしい...
-
エクセルの複数シートの保護を...
-
前の(左隣の)シートを連続参...
-
別シート参照のセルをシート毎...
-
エクセルで前シートを参照して...
-
エクセルでファイルを開いたと...
-
特定のシートの削除を禁止した...
-
Excelで金銭出納帳。繰越残高を...
おすすめ情報