ここから本文です

エクセルのマクロで教えてください

iwa********さん

2013/3/611:45:54

エクセルのマクロで教えてください

エクセルで↓のマクロを走らせると検索画面が出てきてその中の文字列を検索して文字の書式を変更するものなのですが

.InputBoxを使わずにセルを指定したいときはどうすればいいのでしょうか 教えてください




Dim Target As String
Dim FoundCell As Range, SearchArea As Range
Dim Addr As String

Target = Application.InputBox("検索文字列入力", "検索", Type:=2) ここの部分をセル指定にしたいです

If Target = "False" Then Exit Sub

'検索対象範囲
Set SearchArea = ActiveSheet.UsedRange

'検索実行
Set FoundCell = SearchArea.Find(what:=Target, LookIn:=xlValues, _
LookAt:=xlPart, MatchCase:=False, MatchByte:=False)

'検索文字列を含むセルがない場合は終了
If FoundCell Is Nothing Then Exit Sub

'最初の検索結果のアドレスを格納
Addr = FoundCell.Address

Do
'対象文字の操作のためたプロシージャ呼び出し
Call PaintCh(FoundCell, Target)
'次の検索を実行
Set FoundCell = SearchArea.FindNext(After:=FoundCell)
If FoundCell Is Nothing Then Exit Do
Loop Until FoundCell.Address = Addr
End Sub

'上記プロシージャから呼び出されてフォント色の変更と太字化を行う
Sub PaintCh(FoundCell As Range, Target As String)
Dim StartPos As Long

StartPos = InStr(1, FoundCell.Value, Target, vbTextCompare)
With FoundCell.Characters(StartPos, Len(Target)).Font
.Color = vbRed
.Bold = True
End With
End Sub

閲覧数:
554
回答数:
1
お礼:
100枚

違反報告

ベストアンサーに選ばれた回答

msk********さん

2013/3/611:52:59

こんな感じでしょうか。
仮にA1セルとしています。

Target = Application.InputBox("検索文字列入力", "検索", Type:=2)
If Target = "False" Then Exit Sub
↓↓
If Range("A1") = "" then Exit Sub
Target = range("A1")

質問した人からのコメント

2013/3/6 13:02:27

mskz1954さん ありがとうございます
全く知識無くていろいろネットで探したんですがわかりませんでした
ありがとうございました

あわせて知りたい

みんなで作る知恵袋 悩みや疑問、なんでも気軽にきいちゃおう!

Q&Aをキーワードで検索:

Yahoo! JAPANは、回答に記載された内容の信ぴょう性、正確性を保証しておりません。
お客様自身の責任と判断で、ご利用ください。
本文はここまでです このページの先頭へ

「追加する」ボタンを押してください。

閉じる

※知恵コレクションに追加された質問は選択されたID/ニックネームのMy知恵袋で確認できます。

不適切な投稿でないことを報告しました。

閉じる