- ベストアンサー
エクセル ピボットテーブルで同一列内の同じ文字を抽出
マクロを使い、ピボットテーブル上でA列の任意の文字をクリックすると、 A列を検索して同じ文字があれば抽出した行を反転?(青くなる奴です)したいです。 A B C ・・・ 1 大阪 50 2 静岡 15 3 東京 33 4 大阪 14 5 大阪 05 6 東京 88 この場合、セルA5の"大阪"をクリックするとA列の1行目と4,5行目の"大阪"の文字をキーワードに、1・4・5行を反転させたいのですが可能でしょうか? 当方エクセル、VBAともに初心者です。よろしくお願いします。 補足 A6セルをクリック(A6セルの上にカーソルがある状態)すれば3・6行を反転という事です。
お礼
度々のご回答の上、サンプルマクロまで頂き本当に頭が下がる思いです。 >XL2002以降なら置換でも の方を使かわせて頂きました。おかげさまで2ヶ月の間悩み続けた 「アクティブセルと同じ文字を選択範囲から色変更等で見付だす事」が出来ました。 感謝の気持ちでいっぱいです。 本当に有り難う御座いました。 >XL2000以降なら検索で の方も何かに応用出来ないかと考えた末、同じ文字を見つけた個数の取り出しに使えそうだと気づき フォントと色を変える代わりに個数をカウントして見たのですが、やはりうまくいきません。 もし、お暇があれぱで結構ですので頂いたサンプルマクロの解らない所をご教授願えませんでしょうか。 5行目と6行目が .Format xlPTClassic ←G列の書式のリセット With .TableRange1 ←G列のエリアを と指定の列だけを検索するような動きに成りませんでしょうか? 解らないながら「TableRange2」や「columnrange」や「databodyrange」等を当てはめて見ましたが エラーばかりで全く動く気配すらありませんでした。 ※以下は頂いたコードを元に「同じ文字を見つけた個数をカウント」に変えてみたのですが G列以外も検索対称にしている為、他の列の同じ文字の個数までカウントしてしまう状態なのです。 Sub XL2000以降なら検索で() Dim c As Range Dim FirstAddr As String If ActiveCell.Value = "" Then Exit Sub With ActiveSheet.PivotTables(1) .Format xlPTClassic '←G列の書式のリセットが解りましたら是非とも・・ With .TableRange1 '←どうやっても列の指定にならない部分です Set c = .Find(ActiveCell.Value, LookIn:=xlValues) FirstAddr = c.Address Do aa=aa+1 '←フォント変更の代わりに個数をカウントしています Set c = .FindNext(c) Loop While c.Address <> FirstAddr End With End With aa=aa/2 '←よく解りませんがカウントが2倍になるので・・・ If aa >= 2 Then MsgBox aa '←件数が2件以上ならメッセージ End Sub
補足
ご教授お願いしますの件、自己解決しました。 今まで助言やアドバイス、サンプルマクロまで頂き本当に有り難う御座いました。 心より感謝しております。 ※ 7行目の最後に「LookAt:=xlWhole」を付けると列だけを検索する動きに成りました。 (正直意味は解りませんが動くので良しとしています。)