[[20210826214021]] 『「検索と置換」を呼び出すVBA』(トットコ) ページの最後に飛ぶ

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

 

『「検索と置換」を呼び出すVBA』(トットコ)

エクセル2016を使用しています。
エクセルシートにコマンドボタンが配置されています。
そのボタンを押すと「検索と置換」を呼び出し、「セル内容が完全に同一であるものを検索する」項目に自動でチェックを入れる方法はありますか?

A1〜A200に数字がランダムに入力されているので、完全に一致する所を検索したいのが理由です。

< 使用 Excel:Excel2016、使用 OS:Windows10 >


ctrl+Fで呼び出して、チェックを入れるじゃだめですか?
マクロ化する必要ないと思いますよ。
(ぬっこ) 2021/08/26(木) 21:57

コマンドボタンから呼び出したいですね。
(トットコ) 2021/08/26(木) 22:02

1度、偽の検索で設定を変えておく、こうしておけば前回の設定を引き継ぎます。
これ以外は無い。
(勘違い) 2021/08/26(木) 22:12

 一度、完全一致にチェックすれば、あとは記憶しているので、
 皆さんの回答に同意です。
 あえてするなら、こんな感じ? やや古いインターフェイスですが。
 Sub test()
     Application.Dialogs(xlDialogFormulaFind).Show arg1:="", arg2:=True, arg3:=True, arg4:=xlWhole
 End Sub
 このマクロを個人用マクロに書いて、クイックアクセスツールバーに表示しておくとか。
(γ) 2021/08/26(木) 22:24

 Private Sub CommandButton1_Click()
   ActiveCell.Activate
   Cells.Find "", LookAt:=xlWhole
   SendKeys "%HFDF": DoEvents
 End Sub
(´・ω・`) 2021/08/26(木) 22:29

 やっぱりこっちで
 Private Sub CommandButton1_Click()
   Cells.Find "", LookAt:=xlWhole
   Application.CommandBars.ExecuteMso "FindDialogExcel"
 End Sub
(´・ω・`) 2021/08/26(木) 23:01

 >「セル内容が完全に同一であるものを検索する」項目に自動でチェックを入れる方法はありますか?
 できるかもしれませんが、ちょっと難易度が高いので保留ですいません。

 エクセルシートにAxtiveXコントロールのテキストボックスを配置してよいなら案

 コードの動作( コードはシートモジュールにいれてください。)

 '1 まず検索用テキストボックスの中に、値か文字の入力をします。								
 '2 検索結果が発見できれば、そのセルをアクティブにします。								
 '3 ダイアログボックスを表示します。するとテキストボックスに入力した値が繁栄されてます。

 Private Sub CommandButton1_Click()

    Dim 検索値 As Variant

    If Not TextBox1.Value = Empty Then
        Set 検索値 = Columns("A:A").Find(TextBox1, LookIn:=xlValues)

        If Not 検索値 Is Nothing Then
            MsgBox "検索値が見つかりました。"
            検索値.Activate
            Application.Dialogs(xlDialogFormulaReplace).Show
            Else
            MsgBox "検索した検索値はありません。"
            TextBox1.Value = Empty
        End If

    End If
 End Sub

 エクセルシートにコマンドボタンが配置されている隣に上下のスクロールボタンを設置して
 下まで行くと上に来るのが手間なので、ただし1行目をウインドウ枠で固定できるなら案

 Sub 行上段▲() ' CommandButton_Click
    With ActiveWindow
        Dim range1 As Range
        Set range1 = Range("A1")
        range1.Select
        .ScrollRow = 1
    End With
 End Sub

 Sub 行下段▼() ' CommandButton_Click
    With ActiveWindow
        Dim range1 As Range
        Set range1 = Range("A200")
        range1.Select
        .ScrollRow = 200
    End With
 End Sub

 ※ダイアログボックスは、タイプが複数あったと思うので何が良いかは探してください。
 置換を使用しないので^^;

 やりたいことと違う場合は、無視してくださいね。
 ではでは おやすみなさい。ぶーん ε=ε=ε=ε=ε=(o・・)o

(あみな) 2021/08/27(金) 00:21


 あ!大事なことを忘れてました。

 検索値は、複数あることもあります?...よね...きっと...やば^^;

 値が重複した時の対応を忘れてました。

 川 ̄▽ ̄;川アィーン

 必要なら明日以降に検討します。

(あみな) 2021/08/27(金) 00:43


検索と置換を呼び出すといいより、もしかしてユーザーフォームを望んでいますか?
findとreqlaceを使うと検索と置換ができますよ。

(通りすがり) 2021/08/27(金) 07:15


皆さん回答して頂きありがとうございます。
コマンドボタンを押してユーザーフォームで対応する事が出来るのですか?
どの様なやり方をすれば宜しいですか?
(トットコ) 2021/08/27(金) 12:04

コメント返信:

[ 一覧(最新更新順) ]


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