Windows 8 & Office 2013 Excel 2013

検索文字列のセルをダブルクリックして[検索と置換]を表示

投稿日:2017年1月7日 更新日:

Excelで検索したい文字列のセルをダブルクリックして、[検索と置換]ダイアログボックスを表示して、そのセル内の文字列で検索するマクロです。

マクロの内容

ワークシート名が[名簿]と[組織表]というブックがあります。

[名簿]シートの名前を[組織表]シートのどこにあるかを検索します。

検索したい文字列のセルをダブルクリックします。

[名簿]シートで検索したい文字列のセルをダブルクリック

[組織表]シートに切り替わります。

それと同時に[検索と置換]ダイアログボックスが表示されます。

[検索と置換]ダイアログボックスの[検索する文字列]には、[名簿]シートで選択したセルの文字列が入力されています。

[検索と置換]ダイアログボックスの表示

そのまま[検索と置換]ダイアログボックスの[次を検索]ボタンをクリックします。

[組織表]シート内のセルが選択されます。

[組織表]シートで検索

参考にさせていただいたサイトです。

(^人^)感謝♪

『マクロで検索をだすには』(初心者) エクセル Excel [エクセルの学校]

[検索と置換]ダイアログボックスを呼び出すマクロを作成

[開発]タブの[コード]グループにある[Visual Basic]をクリックします。

[開発]タブの[Visual Basic]

または、ショートカットキー[Alt]+[F11]を使用します。

キーボード[Alt]+[F11]

参考[開発]タブを表示していない場合は、以下の記事を参照してください。

[開発]タブの表示とマクロのセキュリティ設定

Office2010から[開発]タブを表示する方法が変わりました。 Office2010以降は[オプション]ダイアログボックスの[リボンのユ ...

続きを見る

標準モジュールに入力

[挿入]メニューから[標準モジュール]をクリックして、に以下のように書き込みます。

VBEウィンドウの標準モジュール

Sub 名簿から検索()

Dim MOJI As String
MOJI = ActiveCell.Value      'アクティブセルの値をMOJIとする
Worksheets("組織表").Select    '組織表シートを選択

Const find_replace = 1849     '検索と置換ダイアログボックスの呼出
Application.FindFormat.Clear    '値のクリア
With Range("A:B")         'MOJIで部分検索 列方向の検索 半角と全角を区別しない
.Select
.Find What:=MOJI, LookIn:=xlValues, LookAt:=xlPart _
, SearchOrder:=xlColumns, MatchByte:=False
End With
Application.CommandBars.FindControl(ID:=find_replace).Execute

End Sub

[組織表]シートではなく、すべてのシートを対象にする場合は、[Worksheets.select]とします。

ダブルクリックで作成済みのマクロを呼び出し

そして、[名簿]シートの[BeforeDoubleClick]に以下の赤枠内のコードを入力します。

[Worksheet]と[BeforeDoubleClick]は、▼ボタンをクリックして選択してください。

これで、[名簿]シートでダブルクリックすると、[名簿から検索]マクロを呼び出すことができます。

VBEウィンドウの [Worksheet][BeforeDoubleClick]で[名簿から検索]マクロを呼び出すコード

Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)

If Intersect(Target, Range("A:B")) Is Nothing Then Exit Sub
Call 名簿から検索
Cancel = True

End Sub

検索文字列の先頭の空白スペースを削除

検索元のセルの先頭に空白スペースがあると、

先頭に空白があるセル

「検索と置換」ダイアログボックスの検索文字列のテキストボックスにも空白スペースが入り、「次を検索」ボタンを押す前に空白スペースを削除しなければなりません。

「検索と置換」ダイアログボックス

こういう場合は、[MOJI = ActiveCell.Value]を以下のように書き換えてください。

MOJI = LTrim(ActiveCell.Value)

文字列の先頭の空白を取り除きます。

2年ほど前に作っていたのですが、何かとお役立ちなので紹介させていただきました。

少しでもお役に立てれば幸いです。

参考マクロはほかのブックで実行できるようにアドインにしたり、個人用マクロブックに保存することもできます。

マクロを[Excelアドイン]として保存して他のブックで使用・配布する

面倒な作業であっても、少しでも効率よくミスがないように行いたいですね。 作業を自動化するマクロを作成しても、マクロはそのブックでしか動作しま ...

続きを見る

個人用マクロブックを作成してすべてのブックでマクロを利用するには

Excelでマクロを作成するときは、通常、作業中のブックに保存しますが、個人用マクロブックを作成すると、Excel起動時に常に起動されるので ...

続きを見る

検索

ほかの記事も検索してみませんか?

Access / Excel / PowerPoint / Word

Profile

執筆者/はま

-Windows 8 & Office 2013 Excel 2013

Copyright © 2001-2024 初心者のためのOffice講座 All Rights Reserved.

Copyright© 初心者のためのOffice講座 , 2024 AllRights Reserved Powered by AFFINGER4.