- ベストアンサー
マクロの実行について質問です。
- マクロ勉強中です!何時間も調べておりますが、どうしても分からないのでお教え下さい(;_;)
- 別シートの都道府県が混在するデータの中から、3列の付属語が『下関』のものだけをコピーして、シート1に貼り付けるマクロを作成しました。
- マクロの実行時に、ハイパーリンクをクリックして実行する方法を教えてください。
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
No.2です! 何とか希望に近い形になってよかったです。 昨日の回答で「セルをダブルクリック」する方法がある!とだけ言っておいてその方法を載せていませんでしたので 余計なお世話かもしれませんが、今日はそのコードの一例です。 前回同様、Sheet2にデータがありSheet2のH3セルに「付属語」があるとします。 Sheet2のH3セルをダブルクリックするとSheet1に表示する方法です。 これまた余計なお世話かもしれませんが、「付属語」は単に「下関」となっていますが もし住所であれば元データは「山口県下関市○○本町・・・」のような感じになっていると思いますので 「付属語」が含まれるデータすべてをSheet1に表示するようにしてみました。 下記のコードをSheet2のSheet見出し上で右クリック → コードの表示 → VBE画面 に貼り付けてください。 Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean) If Target = Cells(3, 8) Then Dim i As Long Dim ws As Worksheet Set ws = Worksheets("sheet1") i = Cells(Rows.Count, 2).End(xlUp).Row Range(Cells(2, 2), Cells(i, 6)).AutoFilter field:=2, Criteria1:="*" & Target & "*" Columns("B:F").Copy ws.Activate ws.Cells(1, 2).Select ActiveSheet.Paste ws.Columns("B:F").AutoFit Cancel = True Worksheets("sheet2").Select Selection.AutoFilter ws.Activate ws.Cells(1, 1).Select End If End Sub これでSheet2のH3セルをダブルクリックしてみてください。 尚、前回のような「付属語」と完全一致のデータ表示にする場合は >Range(Cells(2, 2), Cells(i, 6)).AutoFilter field:=2, Criteria1:="*" & Target & "*" の行を >Range(Cells(2, 2), Cells(i, 6)).AutoFilter field:=2, Criteria1:=Target に変更してみてください。 何度も失礼しやんした。m(_ _)m
その他の回答 (2)
- tom04
- ベストアンサー率49% (2537/5117)
こんばんは! 普通にやるとすればH3(R3C8)セルをダブルクリックするとマクロが走る方法が一般的だと思います。 (Sheet2のH3セルデータを変更しようとH3セルをアクティブにするたびにマクロが走ってしまいます) ご希望としてはH3セルをハイパーリンク設定し、 「付属語」でオートフィルタを掛けてそれをSheet1に表示する方法をお望みのようですので・・・ ↓のようなコードを作ってみました。一例です。 Sheet2にデータがありSheet1に表示するようにしています。 尚、Sheet2のH3セルはハイパーリンク設定でSheet1に飛ぶようにしておきます。 Sheet2のSheet見出し上で右クリック → コードの表示 → ↓のコードをコピー&ペーストしてみてください。 Private Sub Worksheet_FollowHyperlink(ByVal Target As Hyperlink) Dim i As Long Dim ws1 As Worksheet Set ws1 = Worksheets("sheet1") i = Cells(Rows.Count, 2).End(xlUp).Row Range(Cells(2, 2), Cells(i, 6)).AutoFilter field:=2, Criteria1:=Cells(3, 8) Columns("B:F").Copy ws1.Activate ws1.Cells(1, 2).Select ActiveSheet.Paste ws1.Columns("B:F").AutoFit Application.CutCopyMode = False Worksheets("sheet2").Select Selection.AutoFilter End Sub こんなんではどうでしょうか? 尚、最初に書いたようにSheet3のH3セルをダブルクリックすれば同様の操作が可能なコードもできます。 とりあえず、今回はこの辺で! 参考になれば良いのですが・・・m(_ _)m
お礼
tom04さん、こんばんは! ほんとに一瞬で、できました! (^▽^)人 ものすごく難しいマクロ・・・ご配慮にも、再び感謝感激です。 マクロ名からの実行と シートのセルなどからの実行・・・その違いさえわからず、 あらためて 難しさを実感してます(p;;) 会社での、連日の激務、大問題勃発などで 頭が回らなくなっていた今日この頃・・・(愚・_・痴) 今回もまた素晴らしい、心優しきマクロを教えていただき、元気がでました!(^ワ^) どこが違うのかを比べながら 勉強していきます。
- silverfd
- ベストアンサー率57% (204/356)
Private Sub Worksheet_FollowHyperlink(ByVal Target As Hyperlink) (上記のマクロ) End Sub というのを、対象となるワークシートのシートモジュールに書き込んだらできるはずです。 まぁハイパーリンクがどうなっているかは別の話とします。
お礼
silverfdさん(^^)ありがとうございます! マクロという言葉を知ってから、1ヶ月・・・・毎日インターネットで見るマクロに 勝手に解説をつけながら勉強していますが、 なかなか難しいです(;_;q) 実際は、質問内容とは かなり違うのですが・・・ すこーし 教えて頂いて、なんとか自分で・・・・と思ったのでした。 今から、マクロの記録での『セレクト』を使わないようにして、 できるだけ短くする勉強をしようと思っています。 ご無礼を、お許し下さいませ。
お礼
す ば ら し いっ! 2種類(+α)もご伝授いただき、ありがとうございます。 (人^□^) また一瞬で、出てでてきました♪ なんと なんと・・・ 付属語、実は その通りなのです! 達人には、予知能力が あるに違いないです (+^▽^+) 『山口県下関市彦島〇〇1-5-8』と表示され、列幅も付属語にあわせて 広くなってました。 『完全一致のデータ表示』も、ぶち参考になります♪ どこまでも深いご配慮に 驚きと感激で、言葉が見つかりません。 時間を裂いて考えてくださったマクロを、コピーして貼りつけただけで終わらないように、 違いのわかる女 になります! 今はまだ、ひとかけらも解らないですけど・・・・10年後かかっても、必ず。