Excelマクロ VBAに関して、ご教示お願いします。
シート1の列Aに「文字列a」~「文字列z」が入力してあるとします。
シート2の列Bにシート1の列Aに入力してある文字列と同じ文字列が
入力してあるのですが、順は不同となります。
この時に、シート1のA列の各文字列にハイパーリンクを設定し、
シート2の同じ文字列へジャンプさせる方法についてご教示お願いします。
シート1 シート2
A B
---------------------------------------
a d
b a
c b
d c
ご回答いただけますと大変ありがたいです。
よろしくお願い致します。
A 回答 (2件)
- 最新から表示
- 回答順に表示
No.2
- 回答日時:
こんばんは。
すでに回答がついていますが、もう一度、考えなおしてみてください。
>シート2の同じ文字列へジャンプさせる方法についてご教示お願いします。
VBAだったら、ハイパーリンクを設定しなくても飛べますが・・・。
ジャンプさせる方法。
'シートタブを右クリックして、コードの表示で貼り付ける
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
Dim i As Variant
Dim sh2 As Worksheet
Set sh2 = Worksheets("Sheet2")
Cancel = True
If Target.Column <> 1 Then Exit Sub
If Target.Value = "" Then Exit Sub
i = Application.Match(Target.Value, sh2.Columns(2), 0)
If IsNumeric(i) Then
Application.Goto sh2.Cells(i, 2)
Else
MsgBox "該当するセルは見つかりません。", vbExclamation
End If
End Sub
'//
-------------------------
'ハイパーリンクを取り付ける
Sub Main()
Dim sh1 As Worksheet
Dim rng As Range
Dim r1 As Range
Set sh1 = Worksheets("Sheet1")
With sh1
Set r1 = .Range(.Cells(1, 1), .Cells(Rows.Count, 1).End(xlUp))
End With
For Each rng In r1
If rng.Value <> "" Then
Call makeHyperLinks(rng, sh1)
End If
Next rng
End Sub
Sub makeHyperLinks(rng As Range, sh As Worksheet)
Dim sh2 As Worksheet
Dim c As Variant
Set sh2 = Worksheets("Sheet2")
Set c = sh2.Columns(2).Find(rng.Value, , xlValues, xlWhole, , False)
If Not c Is Nothing Then
sh.Hyperlinks.Add rng, "", sh2.Name & "!" & c.Address(0, 0)
End If
End Sub
'//
No.1
- 回答日時:
シート名は、sheet1、sheet2としました。
このサイトは字下げが出来ない(前詰になってしまう)為、先行するブランクを_で書いています。
_を半角ブランクに置き換えて下さい。
Sub WK()
____Dim CNT1 As Long
____Dim END1 As Long
____Dim END2 As Long
____Dim FoundCell As Variant
____Dim 位置 As Variant
____Dim 検索値 As Variant
____Dim Sh1 As Worksheet
____Dim Sh2 As Worksheet
____Set Sh1 = Worksheets("sheet1")
____Set Sh2 = Worksheets("sheet2")
____END1 = Sh1.Range("A1").End(xlDown).Row '全体行数取得
____END2 = Sh2.Range("A1").End(xlDown).Row '全体行数取得
____For CNT1 = 2 To END1 '行数分実行
_____検索値 = Sh1.Range("A" & CNT1)
_____Set FoundCell = Sh2.Range("A1:A" & END2).Find(検索値)
______If FoundCell Is Nothing Then
______Else 'ハイパーリンク設定
_______位置 = FoundCell.Address
_______Sh1.Range("A" & CNT1).Hyperlinks.Add Anchor:=Sh1.Range("A" & CNT1), Address:="", SubAddress:="sheet2!" & 位置
_____End If
____Next CNT1
Application.StatusBar = False
End Sub
ハイパーリンク一括削除は以下を実行して下さい
Sh1.Hyperlinks.Delete
または
Worksheets("sheet1").Hyperlinks.Delete
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) excelにて、特定の列に数字入力してあれば、入力してある行コピーして 別ファイルに張り付ける 2 2022/08/11 05:33
- Visual Basic(VBA) EXCEL VBA 単語置き換え について質問です ブック名 ぶぶぶ シート名 ししし セル V3〜 3 2023/03/08 01:41
- Excel(エクセル) Excel>マクロ>特定のセルで同じ情報が登録されている行を1行にまとめたい(文字連結) 6 2023/01/05 16:30
- Excel(エクセル) 関数EXACT(文字列,文字列)とexcelVBA 3 2022/04/14 15:07
- Excel(エクセル) フォルダ内のファイル全てに対して、シート名・ファイル名を変更する方法(マクロ VBA) 2 2022/04/02 10:56
- Visual Basic(VBA) VBA B列にある前から10文字のみ表示 3 2023/08/07 11:24
- Excel(エクセル) Excelの列から検索して該当する行を別シートに転記するVBA 2 2022/12/20 09:35
- Excel(エクセル) エクセル関数について 8 2023/06/28 17:04
- Excel(エクセル) Excelの文字列を転記したいのですが。 2 2022/09/30 12:09
- Visual Basic(VBA) 【VBA】特定の文字で改行(次の行)に行きたい。 3 2022/04/11 17:20
このQ&Aを見た人はこんなQ&Aも見ています
-
プロが教える店舗&オフィスのセキュリティ対策術
中・小規模の店舗やオフィスのセキュリティセキュリティ対策について、プロにどう対策すべきか 何を注意すべきかを教えていただきました!
-
エクセルVBAで、条件に一致するセルへ移動
Excel(エクセル)
-
【VBA】指定したセルと同じ値で、別シートにあるセルに移動するには?
Visual Basic(VBA)
-
VBAでエクセルシートを更新(リフレッシュ)する方法を教えて下さい。
Excel(エクセル)
-
-
4
VBA 検索して一致したセルへジャンプさせたい
その他(プログラミング・Web制作)
-
5
Excel マクロ VBA 別シートのセルを検索し、該当するセルの右にあるセルを入力させる方法 s
Visual Basic(VBA)
-
6
エクセルでセルをダブルクリックしたらそのブックの別のシートに飛ぶ動作
Excel(エクセル)
-
7
Rangeメソッドは失敗しました。globalオブジェクトについて
Excel(エクセル)
-
8
VBA 空白行に転記する
Visual Basic(VBA)
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
別のシートから値を取得するとき
-
VBAの天才来てください
-
【ExcelVBA】全シートのセルの...
-
ユーザーフォームに入力したデ...
-
エクセルのマクロでアクティブ...
-
VBA 存在しないシートを選...
-
同じ作業を複数のシートに実行...
-
ExcelのVBAのマクロで他のシー...
-
エクセルのシート名変更で重複...
-
【VBA】シート名に特定文字が入...
-
【VBA】色のついたシート名を取得
-
ExcelVBA:複数の特定のグラフ...
-
ExcelVBA シート名を複数セルか...
-
XL:BeforeDoubleClickが動かない
-
VBAを用いて繰り返し自動的...
-
excelのマクロで該当処理できな...
-
VBA ユーザーフォーム上のチェ...
-
Excel マクロについての相談
-
特定の文字を含むシートだけマ...
-
エクセル・マクロ シートの非...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
別のシートから値を取得するとき
-
ユーザーフォームに入力したデ...
-
Excelマクロのエラーを解決した...
-
excelのマクロで該当処理できな...
-
同じ作業を複数のシートに実行...
-
ExcelVBA シート名を複数セルか...
-
【ExcelVBA】全シートのセルの...
-
Excel マクロについての相談
-
VBA 存在しないシートを選...
-
実行時エラー'1004': WorkSheet...
-
特定の文字を含むシートだけマ...
-
ExcelのVBAのマクロで他のシー...
-
ブック名、シート名を他のモジ...
-
XL:BeforeDoubleClickが動かない
-
VBA 複数の各シートに行を追加...
-
エクセルのシート名変更で重複...
-
【Excel VBA】Worksheets().Act...
-
シートが保護されている状態で...
-
Excel VBA 複数行を数の分だけ...
-
for 文の 繰り返し処理に使える...
おすすめ情報