[[20030825135215]] 『検索してセルに色づけ』(M) ページの最後に飛ぶ

[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]

 

『検索してセルに色づけ』(M)

編集の検索で、検索されたセルに色づけ

する事は出来ないでしょうか?

ご指導の程宜しくお願い致します。


 何を検索するのかわかりませんが、ツールバーの「書式」⇒「条件付書式」を使うか
 「マクロの登録」を利用して「検索」から「セルに色を付ける」という作業を登録して
みて、
 Visual Basic Editor のモジュールを開いてその中のマクロ文を応用しては
 どうでしょうか?(スー)

 Sub Kensaku()   
   Dim myStr As String
   Dim myRange As Range

   myStr = Application.InputBox(prompt:="検索する文字列を入力してください")
   If myStr <> "False" And myStr <> ""  Then
      For Each myRange In ActiveSheet.UsedRange
         If myRange.Value = myStr Then _                      
      myRange.Interior.ColorIndex = 3
      Next
   End If
 End Sub

 InputBoxに入力した文字列と完全に一致するものに色をつけますが、
 こんなのはダメでしょうか (りな)

 思い切り外していたらごめんなさい。
 検索で見つかるべきセルがたくさんあっても、 編集→検索 をするとセル一つずつしか
 ヒットしません。
 検索の途中では詳細確認しにくいので、一通り検索を終えた後で確認したいので、見つけ
 やすいように、ヒットしたセルにマークを付けておきたいと言う意味ではないでしょうか?
 手動でアイコンをワンクリックすることが可能なら、「塗りつぶしの色」アイコン(バケツ
 からペンキがこぼれているようなアイコン)を押す と言うのではいかがでしょう?
 検索の途中でこのボタンを押せばそのセルに色が付きますし、継続して検索も可能です。
 色はその横の▼を押せば選択できます。
 (ちゅうねん)

 検索したセルに色をつけたいのは、ヒットした時枠線だけよりも
 色がついていたほうがわかりやすいと思ったからです。
 (ちゅうねん)さんの思った事とは違うのです。 言葉足らずでごめんなさい!

 (りな)さんのはマクロなんですか?
 恥ずかしながらまったくの初心者で、どーしたらいいのか・・・
 時間に余裕があれば教えてください   (M)

 誰も教えてくれないですね。では、マクロの使い方ですが
http://www.excel.studio-kazu.jp/lib/e1nw/e1nw.html
こちらで勉強して下さい。(無責任かな)
りなさんのマクロの使い方はAlt+F11でVBEを開き「挿入」>「標準モジュール」で出来た真っ白
のModule1にりなさん考案のコードをコピペすれば出来ます。実行はAlt+F8でkensakuを選び
実行で出来ます。(ケン)りなさん〜上のコード動きませんよ〜

 ifに対するend ifが抜けてますわ。
 あの方も相当慌てモンですさかい、ま、カンニンしたっておくんなはれ。
   救世主の(おいぼれ弥太郎)

 ごめんなさい。_ を入れていたんですがなぜか抜けていますね
 書き込んだときに改行がうまくいかなくて、少しいじっていたような気がするんで
 そのときに誤って消してしまったのかもしれません。修正しときます。 (りな)

 りなさん、いつも早起きでんなぁ。↑修正?
       (弥の字)

 無事に色づけできるようになりました。
 そこでもう一つ質問なんですが、色づけする色を
 変えることは出来ませんか?現在は赤です。
 (ケン)さん勉強させてもらいます! (M)      

 色を変えるには、 myRange.Interior.ColorIndex = 3 ←この数字を変更します(1〜56)

 Sub Index_kakunin()
    Dim i As Integer
    For i = 1 To 56
       Cells(i, 1).Value = i
       Cells(i, 1).Interior.ColorIndex = i
    Next i
 End Sub

 数字に対応する色はこのマクロで調べてください (りな)

 ありがとうございました。 (M)

 Dim Kensakuchu As Boolean
 Dim Back() As Integer

 Sub Kensaku()

   Const KENSAKU_COLOR = 37 '←色を変えるときはこの数字を変更(1〜56)

   Dim i As Long, n As Long
   Dim rng As Range
   Dim kensaku_moji As String

   kensaku_moji = Application.InputBox("検索したい文字を入力してください")

   If kensaku_moji = "False" Or kensaku_moji = "" Then Exit Sub

   If Not Kensakuchu Then

   With ActiveSheet.UsedRange
     i = .Row
     n = .Column
     ReDim Back(i To .SpecialCells(xlCellTypeLastCell).Row, n To .SpecialCells(xlCellTypeLastCell).Column)
   End With

   For i = LBound(Back, 1) To UBound(Back, 1)
     For n = LBound(Back, 2) To UBound(Back, 2)
       Back(i, n) = Cells(i, n).Interior.ColorIndex
     Next n
   Next i

   Kensakuchu = True

   End If

   For Each rng In ActiveSheet.UsedRange

     If rng.Value Like kensaku_moji Then
       rng.Interior.ColorIndex = KENSAKU_COLOR 
     End If

   Next rng

 End Sub

 Sub Moto()
   Dim i As Long, n As Long

   Application.ScreenUpdating = False  

   If Kensakuchu Then

     For i = LBound(Back, 1) To UBound(Back, 1)
       For n = LBound(Back, 2) To UBound(Back, 2)
         Cells(i, n).Interior.ColorIndex = Back(i, n)
       Next n
     Next i

     Kensakuchu = False

   End If

   Application.ScreenUpdating = True 

 End Sub

 少し変更しました。検索にワイルドカード使用可能、検索後 Moto でもとに戻せる
 問題がないわけではありませんが、ちょっとはましでしょう (りな)


コメント返信:

[ 一覧(最新更新順) ]


YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki. Modified by kazu.