エクセルのマクロ検索について
みなさんはじめまして。
先日より必要に駆られてエクセルのマクロを使い始めた初心者です。
なかなか独学ではうまくいかず、
皆さんのお知恵を拝借したくお願いします。
したいことは以下の通りです。
検索シートに検索会社を入力すると、一部でも一致するデータを
顧客データが入った別シートから検索し、
検索シートにリストアップすると言うことがしたいです。
データシートには
A列 B列 C列 D列 E列 F列
分類 会社名 担当者 電話番号 詳細へハイパーリンク 業務内容
---- ●社 Aさん 123-4567 ****** XXXX
---- ×社 Bさん 234-5678 ****** ????
---- △社 Cさん 345-6789 ****** !!!!!
などのようにデータが300社くらい入っています。
一応自分で下記のようなマクロを組んでみたのですが、
リストアップされたデータのハイパーリンクの部分が文字列になってリンクとして使えません。
解消方法、またはもっと良いマクロがあれば教示お願いします
Sub 検索()
Dim tmp As Range
Dim y As Integer, a, firstAddress
'***** 結果を表示する部分をクリアします
Sheets("検索").Range("A7:ag65536").ClearContents
'***** キーワードを取得
a = InputBox("検索会社名を入力してください")
'***** キーワードを含むデータを検索
Set tmp = Sheets("検索元データ").Columns(3).Find(a, , , xlPart)
If tmp Is Nothing Then
'***** 見つからない場合
MsgBox "一致するデータはありません"
Else
'***** 見つかった場合
firstAddress = tmp.Address
y = 7
'***** 他にもあるか探してあれば記載
Do
Sheets("検索").Range("c" & y) = tmp
Sheets("検索").Range("b" & y) = tmp.Offset(0, -1)
Sheets("検索").Range("d" & y) = tmp.Offset(0, 1)
Sheets("検索").Range("e" & y) = tmp.Offset(0, 2)
Sheets("検索").Range("f" & y) = tmp.Offset(0, 3)
Sheets("検索").Range("g" & y) = tmp.Offset(0, 4)
Sheets("検索").Range("h" & y) = tmp.Offset(0, 5)
Sheets("検索").Range("i" & y) = tmp.Offset(0, 6)
Sheets("検索").Range("j" & y) = tmp.Offset(0, 7)
Set tmp = Sheets("検索元データ").Columns(3).FindNext(tmp)
y = y + 1
Loop Until tmp.Address = firstAddress
End If
End Sub
お礼
ご意見いただき有難うございます。 仰るとおり他力本願でなく,覚えることを重視したほうが自分のためだと思い,色々試した結果・・・挫折!!!皆様のご意見を伺いたく質問しました。 今一度,自分の力で試しています!
補足
自分の力で試しましたが,応用力が無いのか,理解できていないのか・・・ 先に進まず困っています。 どなたか,助けてください!