
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も見ています
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
Excelマクロのエラーを解決した...
-
特定の文字を含むシートだけマ...
-
エクセルで通し番号を入れてチ...
-
シートが保護されている状態で...
-
【ExcelVBA】全シートのセルの...
-
VBAマクロでシートコピーした新...
-
実行時エラー'1004': WorkSheet...
-
シート保護のパスワードは・・・
-
エクセルVBA Ifでシート名が合...
-
Excel VBA リンク先をシート...
-
VBAで指定シート以外の選択
-
別のシートから値を取得するとき
-
『実行時エラー'1001': 'Range...
-
ExcelVBAから,引数を渡してVBs...
-
実行時エラー1004「Select メソ...
-
excelのマクロで該当処理できな...
-
エクセル・マクロ シートの非...
-
VBA 指定した回数分、別シート...
-
ExcelVBA:複数の特定のグラフ...
-
シート名をフォルダ名に変更
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
特定の文字を含むシートだけマ...
-
Excelマクロのエラーを解決した...
-
excelのマクロで該当処理できな...
-
ユーザーフォームに入力したデ...
-
実行時エラー'1004': WorkSheet...
-
XL:BeforeDoubleClickが動かない
-
エクセルVBA Ifでシート名が合...
-
実行時エラー1004「Select メソ...
-
エクセルのシート名変更で重複...
-
【ExcelVBA】全シートのセルの...
-
VBA 存在しないシートを選...
-
ブック名、シート名を他のモジ...
-
Excel チェックボックスにチェ...
-
VBA 検索して一致したセル...
-
エクセルで通し番号を入れてチ...
-
シートが保護されている状態で...
-
【VBA】特定の文字で改行(次の...
-
ExcelのVBAのマクロで他のシー...
-
Worksheet_Changeの内容を標準...
-
EXCELVBAを使ってシートを一定...
おすすめ情報