Excel VBA質問箱 IV

当質問箱は、有志のボランティア精神のおかげで成り立っています。
問題が解決したら、必ずお礼をしましょうね。
本サイトの基本方針をまとめました。こちら をご一読ください。

投稿種別の選択が必要です。ご注意ください。
迷惑投稿防止のため、URLの入力を制限しています。ご了承ください。


855 / 13645 ツリー ←次へ | 前へ→

【77917】検索 佐藤 16/2/6(土) 14:22 質問[未読]
【77918】Re:検索 マナ 16/2/6(土) 16:39 発言[未読]
【77921】Re:検索 佐藤 16/2/7(日) 10:11 お礼[未読]
【77919】Re:検索 ichinose 16/2/6(土) 16:47 発言[未読]
【77920】Re:検索 佐藤 16/2/7(日) 10:08 質問[未読]
【77922】Re:検索 γ 16/2/7(日) 11:24 回答[未読]
【77923】Re:検索 佐藤 16/2/7(日) 13:24 お礼[未読]

【77917】検索
質問  佐藤  - 16/2/6(土) 14:22 -

引用なし
パスワード
   エクセルvbaの初心者です。
vbaで検索を行いたいのですが、なかなかうまくできません。
どなたかくわしい方、教えていただけないでしょうか?
 ただ、検索には以下のような条件があります。
  条件1 ワークシート内で検索を行う
  条件2 検索対象をを対話式(メッセージボックス)で行う
  条件3 検索でヒットしたセルを色(ピンク)で塗りつぶす

以上よろしくお願い申し上げます。

【77918】Re:検索
発言  マナ  - 16/2/6(土) 16:39 -

引用なし
パスワード
   ▼佐藤 さん:
ここらを参考に試してみてはどうでしょうか。
ht tp://excelwork.info/excel/cellreplacereplaceformat/
ht tp://www.moug.net/tech/exvba/0010014.html

【77919】Re:検索
発言  ichinose  - 16/2/6(土) 16:47 -

引用なし
パスワード
   ▼佐藤 さん:
>エクセルvbaの初心者です。
>vbaで検索を行いたいのですが、なかなかうまくできません。
>どなたかくわしい方、教えていただけないでしょうか?
> ただ、検索には以下のような条件があります。
Excelには、検索という機能がありますよね?
これの亜種版ですね!!


>  条件1 ワークシート内で検索を行う
RangeオブジェクトにFindメソッド(FindNextメソッドとの組合せ)
を調べてください。二つのメソッドの共演コードなら、ごろごろしています。
入力データ  検索セル範囲
         検索文字列

出力データ  検索した結果、見つかったセル範囲

>  条件2 検索対象をを対話式(メッセージボックス)で行う
  検索文字列の入力は、ApplicationオブジェクトのInputboxメソッドを調べてください。

>  条件3 検索でヒットしたセルを色(ピンク)で塗りつぶす
   将来的には、ピンクだけでなく色も自由に選べるようにすると便利そうですが、 セルに色を付けるのは、マクロの記録を使えば、容易にコードは生成されます

以上です。

【77920】Re:検索
質問  佐藤  - 16/2/7(日) 10:08 -

引用なし
パスワード
   ご教授ありがとうございます。
 条件1と条件2はクリアーできたのですが、
条件3がどうしてもクリアーできません。
以下に作ったコードのどこに付け加えたらよろしいのでしょうか?
具体的にコードを入力していただけないでしょうか?

 Private Sub CommandButton1_Click()
     Dim sh As Object
     Dim myCnt As Integer
     Dim AllSu As Integer
     Dim target As Variant
     '<検索結果保管先を初期化します。>
      AllSu = 0
     '<検索する文字列を指定する入力用のダイアログボックスを表示
     します。>
    target = Application.InputBox(Prompt:="検索する文字を入力
    して下  さい。")
     '<キャンセルか未入力ではなかったら検索します。>
     If target <> False And target <> "" Then '
     '<対象のシートを対象に検索を行います。>
      For Each sh In ActiveWindow.SelectedSheets
     '<使われているセル範囲に含まれるセルのうち、
     '検索条件に一致するセルの個数を取得します。>
    myCnt = WorksheetFunction.CountIf(sh.UsedRange, target) '
    '<検索条件に一致したセルの個数をカウントします。>
    AllSu = AllSu + myCnt
    Next sh
    '<全てのシートの検索が終わったら、結果を表示します。>
      If AllSu = 0 Then
        MsgBox target & "は見つかりませんでした。"
       Else
       MsgBox target & "は" & AllSu & "個あります。"
       End If
     End If
  End Sub

以上 よろしくお願いします。

【77921】Re:検索
お礼  佐藤  - 16/2/7(日) 10:11 -

引用なし
パスワード
   ご教授ありがとうございます。
 

【77922】Re:検索
回答  γ  - 16/2/7(日) 11:24 -

引用なし
パスワード
   横から失礼します。

Findメソッドの利用を薦められたのですから、
"Excel Findメソッド" 
などでネット検索すれば、お望みのコード例が見つかりませんか?

例えば、最初に出てくる
ht tps://www.moug.net/tech/exvba/0050116.html
などはどうですか?

【77923】Re:検索
お礼  佐藤  - 16/2/7(日) 13:24 -

引用なし
パスワード
   望みのコードがやっと見つかりました。
有難うございます。

855 / 13645 ツリー ←次へ | 前へ→
ページ:  ┃  記事番号:
2610219
(SS)C-BOARD v3.8 is Free