[[20050219121221]] 『検索用のマクロについて』(マクロ勉強中) ページの最後に飛ぶ

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

 

『検索用のマクロについて』(マクロ勉強中)

「マクロ初心者です。今、検索用のマクロを作っています」(あえて編集の中の検索を使わずに)。

Sub 検索()

Sheets("住所録").Select

    Range("A1:B1").Select
    MOJI = InputBox("検索文字入力")
    Cells.Find(What:=MOJI, After:=ActiveCell, LookIn:=xlValues, LookAt:= _
        xlWhole, SearchOrder:=xlByRows, SearchDirection:=xlNext,_ 
    MatchCase:=False , MatchByte:=False, SearchFormat:=False).Activate
        ActiveCell.Font.ColorIndex = 3
    RESPONSE = MsgBox("次を検索しますか?", vbYesNo + vbQuestion, "検索続行")
    Do While RESPONSE = vbYes
    ActiveCell.Font.ColorIndex = xlAutomatic
    Cells.FindNext(After:=ActiveCell).Activate
    ActiveCell.Font.ColorIndex = 3
    RESPONSE = MsgBox("次を検索しますか?", vbYesNo + vbQuestion, "検索続行")
    Loop
    MsgBox ("検索を終了しました")
    ActiveCell.Font.ColorIndex = xlAutomatic 
End Sub

上のマクロでは該当しない文字を入れると「実行時エラー'91': オブジェクト変数またはWithブロック変数が設定されていません」と出てデバッグするよう要求されますがエラーの内容がHELPを見ても判りません。該当するものが無い場合「該当するものがありません」のようなMsgが出て終了させていのですがどのように訂正すればよろしいでしょうか。ご教示お願いいたします。


 こんな感じでどうでしょうか?
Option Explicit
Sub 検索()
Dim C As Range
Dim MOJI As String
Dim RESPONSE As VbMsgBoxResult
With Worksheets("住所録")
    MOJI = InputBox("検索文字入力")
    If MOJI <> "" Then
        Set C = .Cells.Find(MOJI, , xlValues, xlWhole, xlByRows, xlNext, True)
        If Not C Is Nothing Then
            C.Font.ColorIndex = 3
            RESPONSE = MsgBox("次を検索しますか?", vbYesNo + vbQuestion, "検索続行")
            Do While RESPONSE = vbYes
                C.Font.ColorIndex = xlAutomatic
                Set C = .Cells.FindNext(C)
                C.Font.ColorIndex = 3
                RESPONSE = MsgBox("次を検索しますか?", vbYesNo + vbQuestion, "検索続行")
            Loop
            MsgBox ("検索を終了しました")
            C.Font.ColorIndex = xlAutomatic
        Else
            MsgBox MOJI & "は、ありません。。"
        End If
    End If
End With
End Sub
(SoulMan)

んだば、わちきも _ロ(・ω・=) ケシケシ

SoulManさん うまくいきました。ありがとうございます。

SoulManさん 度々シツコクてすみませんがちょっと問題がありますのでお助け下さい。検索したセルが900行目などにあると探すのに大変面倒です。検索結果が今見ている画面に来るようにはどうしたらよろしいでしょうか?よろしくお願いいたします。
(マクロ勉強中)

 ヒットした後に
C.Select
を追加してみてはどうでしょうか?
(SoulMan)

早速でありがとうございます。しかし残念ながらよく分かりません。具体的にC.Selectをどこに追加すればよいのかご教示下さい。
さらに、使っているうちに「FontクラスのColorIndexのプロパティを設定できません」とでます。どのようにすればよいのかもよろしくお願いいたします。
(マクロ勉強中)

 > ヒットした後に
 なので  If Not C Is Nothing Then の次。 

 >使っているうちに「FontクラスのColorIndexのプロパティを設定できません」とでます。
 どの行で?
  (INA)

 衝突しました。以下衝突前の文章です。。。
ありゃ、「ご教示」ってほどのもんじゃないですよ。
色を付けるのはわかるでしょ?
色を付けたらSelect
つまり選択すればいいんじゃないの??
でも、一番大切なことは応用が出来る様になること、、、
そうしなと、いけないわね(;^_^A あせあせ・・・
ではでは、頑張ってねv(=∩_∩=)v
Option Explicit
Sub 検索()
Dim C As Range
Dim MOJI As String
Dim RESPONSE As VbMsgBoxResult
With Worksheets("住所録")
    MOJI = InputBox("検索文字入力")
    If MOJI <> "" Then
        Set C = .Cells.Find(MOJI, , xlValues, xlWhole, xlByRows, xlNext, True)
        If Not C Is Nothing Then
            C.Font.ColorIndex = 3
            C.Select 'ここ
            RESPONSE = MsgBox("次を検索しますか?", vbYesNo + vbQuestion, "検索続行")
            Do While RESPONSE = vbYes
                C.Font.ColorIndex = xlAutomatic
                Set C = .Cells.FindNext(C)
                C.Font.ColorIndex = 3
                C.Select 'ここ
                RESPONSE = MsgBox("次を検索しますか?", vbYesNo + vbQuestion, "検索続行")
            Loop
            MsgBox ("検索を終了しました")
            C.Font.ColorIndex = xlAutomatic
        Else
            MsgBox MOJI & "は、ありません。。"
        End If
    End If
End With
End Sub
INAさん、フォローありがとうございます。m(._.)m ペコッ
(SoulMan)

INAさん SoulManさん ありがとうございます。いろいろ勉強させてもらっています。色を付けるのは分かるつもりで3で赤にしたいのですがやはり上のINAさんのマクロでも同じエラーがおこります。イロを付ける?のをやめてそれらをコメントにすると問題なく動きます。色気を出して何とか検索結果を赤くしたいのですがうまく出来ません。ColorIndexが3とxlAutomaticと2種類ありますが全部3にしても同じエラーがでます。再度教えてください。
(VBA勉強中) 

 どの行でエラーになりますか?
↓これを
C.Font.ColorIndex = xlAutomatic
↓これに
C.Font.ColorIndex = 0
かえるとどうなりますか?
(SoulMan)

 変えても同じでデバッグをクリックすると
If Not C Is Nothing Then
          →  C.Font.ColorIndex = 3
ここが黄色でハイライトされます。
よろしくお願いいたします。

 うぅ〜〜んっと、保護がかかってますか?
(SoulMan)

 msgbox c.address(0,0) 
 C.Font.ColorIndex = 0
 にして、セルの場所を確認してみては?
(INA)

SoulManさん INAさん すみません。保護がかかっていました。できました(でも何故だか分かりません)。いろいろ勉強できました。ありがとうございました。
(マクロ勉強中)


コメント返信:

[ 一覧(最新更新順) ]


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