[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]
『指定の条件一致する行をグループ化』(NAKA)
1行目から150行目までの範囲で、B列の各セルの先頭に全角1文字分の
スペースがある行をグループ化して閉じられるようにする
マクロをご教示ください。
空白セルや2文字分以上の空白は拾わないように
お願いいたします。
以上、どうぞよろしくお願いいたします。
< 使用 Excel:Excel2007、使用 OS:Windows7 >
そういった行の塊が複数あった場合は、それぞれをグループ化して閉じるということですね?
目的は グループ化 ですか? それとも、そういった行を【非表示】にしたい(グループ化にはこだわらない)ということですか?
それと、
>>2文字分以上の空白
空白というのは、何もないことで、2文字以上の空白というものはありません。 先頭が全角スペースでも、2桁目も全角スペースなら 閉じる グループには含めないという意味ですか?
(β) 2016/06/13(月) 18:34
目的は、グループ化です。グループ化にはこだわります。
次の2文字分以上の空白という表現は間違えで、
先頭が全角スペースで次にスペースがくるセルの行はグループ化対象外にします。
先頭が全角スペース、次は何らかの文字が入るセルの行がグループ化の対象です。
以上、よろしくお願いいたします。
(NAKA) 2016/06/13(月) 18:50
要件誤解あれば指摘願います。
Sub Sample() Dim r As Range Dim a As Range Dim wCol As Long
ActiveSheet.UsedRange 'おまじない Cells.ClearOutline
wCol = ActiveSheet.UsedRange.SpecialCells(xlCellTypeLastCell).Column + 1
With Cells(1, wCol).Resize(150) .Formula = "=IF(AND(LEFT(B1,1)="" "",MID(B1,2,1)<>"" "",MID(B1,2,1)<>"" ""),TRUE,"""")" On Error Resume Next Set r = .SpecialCells(xlCellTypeFormulas, xlLogical) On Error GoTo 0 If Not r Is Nothing Then For Each a In r.Areas a.EntireRow.Group Next End If .ClearContents End With
ActiveSheet.Outline.ShowLevels RowLevels:=1
End Sub
(β) 2016/06/13(月) 18:58
完璧です。
やりたかったように動きました。
本当にどうもありがとうございました。
NAKA
(NAKA) 2016/06/13(月) 19:21
[ 一覧(最新更新順) ]
YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki.
Modified by kazu.