みなさんはじめまして。
先日より必要に駆られてエクセルのマクロを使い始めた初心者です。
なかなか独学ではうまくいかず、
皆さんのお知恵を拝借したくお願いします。
したいことは以下の通りです。
検索シートに検索会社を入力すると、一部でも一致するデータを
顧客データが入った別シートから検索し、
検索シートにリストアップすると言うことがしたいです。
データシートには
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
No.1ベストアンサー
- 回答日時:
書式もコピーしてしまってよければ、対象レンジをまとめてコピーしちゃうのが一番簡単です
tmp.Offset(0, -1).Resize(1, 9).Copy (Worksheets("検索").Range("B" & y))
書式はコピーしたくないのであれば、ハイパーリンクだけ別にコピーするとして(E列ですよね?)
Worksheets("検索").Range("B" & y).Resize(1, 9).Value = tmp.Offset(0, -1).Resize(1, 9).Value
If tmp.Offset(0, 2).Hyperlinks.Count > 0 Then
Worksheets("検索").Hyperlinks.Add Anchor:=Worksheets("検索").Range("E" & y), Address:=tmp.Offset(0, 2).Hyperlinks(1).Address
End If
みたいな感じ。(列などがずれていたら訂正願います)
No.3
- 回答日時:
これでいかがでしょう?
Sub 検索02()
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
tmp.Offset(0, -1).Resize(, 9).Copy Sheets("検索").Range("b" & y).Resize(, 9)
Set tmp = Sheets("検索元データ").Columns(3).FindNext(tmp)
y = y + 1
Loop Until tmp.Address = firstAddress
End If
End Sub
すみません。
上記式だとエラーがかかってしまいました。
とりあえず下記のお二方の方法にて対応できましたので
今回はこれでいこうと思います。
また何かありましたら、よろしくお願いします。
No.2
- 回答日時:
代入ではハイパーリンクや書式は移動できませんので、コピーしてください。
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)
上記の転記部分を下記の1行と入れ替える
tmp.EntireRow.Copy Sheets("検索").Range("A" & y)
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
- ・漫画をレンタルでお得に読める!
- ・人生のプチ美学を教えてください!!
- ・10秒目をつむったら…
- ・あなたの習慣について教えてください!!
- ・牛、豚、鶏、どれか一つ食べられなくなるとしたら?
- ・【大喜利】【投稿~9/18】 おとぎ話『桃太郎』の知られざるエピソード
- ・街中で見かけて「グッときた人」の思い出
- ・「一気に最後まで読んだ」本、教えて下さい!
- ・幼稚園時代「何組」でしたか?
- ・激凹みから立ち直る方法
- ・1つだけ過去を変えられるとしたら?
- ・【あるあるbot連動企画】あるあるbotに投稿したけど採用されなかったあるある募集
- ・【あるあるbot連動企画】フォロワー20万人のアカウントであなたのあるあるを披露してみませんか?
- ・映画のエンドロール観る派?観ない派?
- ・海外旅行から帰ってきたら、まず何を食べる?
- ・誕生日にもらった意外なもの
- ・天使と悪魔選手権
- ・ちょっと先の未来クイズ第2問
- ・【大喜利】【投稿~9/7】 ロボットの住む世界で流行ってる罰ゲームとは?
- ・推しミネラルウォーターはありますか?
- ・都道府県穴埋めゲーム
- ・この人頭いいなと思ったエピソード
- ・準・究極の選択
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
viで連続で検索したい時
-
InputBoxの値で検索して転記す...
-
「大舎制」ってなんて読むんで...
-
windows11のエクスプローラーで...
-
オーバークロックについて
-
Alfred Evernote検索出来ない…?
-
Excelで、テキストボックスに書...
-
OUTLOOKでOR検索するには
-
エクセルでテキストボックス内...
-
[Ctrl]+FをVBAで表現
-
Bingの「話題の検索ワード」を...
-
グーグル先生
-
ホームページの画面文字を濃く...
-
単純所持になりますか?
-
英字の筆記体をエクセル等で表...
-
起き上がりこぼしと起き上がり...
-
特定のサイトだけが重くて開けない
-
エクセルのプルダウン三角マー...
-
スマホの最初の暗証番号の変更...
-
株式会社オール5 について
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
Excelで、テキストボックスに書...
-
windows11のエクスプローラーで...
-
[Ctrl]+FをVBAで表現
-
viで連続で検索したい時
-
検索キーワードが二重に表示さ...
-
エクセルの検索機能でコピーペ...
-
「大舎制」ってなんて読むんで...
-
Word、特定の文字を網掛けにす...
-
エクセルで検索結果を抽出し、...
-
ACCESS VBA Filterに配列を使い...
-
検索の窓に変な文字が
-
エクセルでテキストボックス内...
-
エクセルで~ (チルダー)が検...
-
InputBoxの値で検索して転記す...
-
Bingの「話題の検索ワード」を...
-
検索エンジンで個人情報入力は...
-
教えてgooで質問者の名前で検索...
-
メール内 本文の検索を行いた...
-
Alfred Evernote検索出来ない…?
-
DROPBOXで、ファイルを検索する...
おすすめ情報