有識者 様
いつもお世話になります。
Excelのマクロの使い方について、質問があり投稿致しました。
下記が行いたい事となりますが、過去の回答を確認しても上手くExcel上で実現できず、
再度ご質問させて頂く流れとなりました。
お手数ですが、マクロについての有識者がおりましたら回答頂けないでしょう。
アウトプットのイメージとして、サンプルファイルを用意致しました。
中身をご確認いただければわかる通り、事前にSheet1とSheet2が用意されており、
データが事前に入っております。
(リンク列は空白。)
その後、Sheet1にリンク作成ボタンを配置し、そこを押下すると、
Sheet1を基準に、名称列にある値がSheet2の値列に同一の値がある場合、
リンクマーク▼を作成し、マークをクリックすると、Shee2の同一の値のセルに飛べるようにしたいです。
例えば、下記の例ですと、Sheet1)の名称1は、Sheet2)の名称1と一致するので、
Sheet1)のリンク列に▼マークを作成し、それをクリックすると、Sheet2)へのリンクが
飛べるようになります。
*同様にSheet2からSheet2へ飛べるようにしたいです。Sheet2の値列は一部セルがマージされております。
Sheet1)
No リンク 名称 値1 値2
1 ▼ 名称1 12243 oiref
2 ▼ 名称2 242 efhn
3 ▼ 名称3 23254 dsfvn
4 ▼ 名称4 3 23254
5 ▼ 名称5 35 3
6 名称6 23243 35
7 ▼ 名称7 243 23243
Sheet2) *値列はマージしているケースがあります。また投稿形式の都合上、リンク列にサンプル2やサンプル6などずれていますが、あくまで詳細情報列にある値となります。
No リンク列 値 詳細情報1 詳細情報2
1 ▲ 名称1 サンプル1 サンプル18
2 サンプル2 サンプル19
3 サンプル3 サンプル20
4 ▲ 名称2 サンプル4 サンプル21
5 名称3 サンプル5 サンプル22
6 サンプル6 サンプル23
7 サンプル7 サンプル24
8 ▲ 名称4 サンプル8 サンプル25
9 サンプル9 サンプル26
10 サンプル10 サンプル27
11 ▲ 名称5 サンプル11 サンプル28
12 サンプル12 サンプル29
13 サンプル13 サンプル30
14 サンプル14 サンプル31
15 ▲ 名称7 サンプル15 サンプル32
16 サンプル16 サンプル33
17 サンプル17 サンプル34
有識者の方がおりましたら、教えて頂けないでしょう。
ちなみに下記のマクロを組みましたが、実行しても何も値が返ってきません。
デバックモードでもそのまま値が追加されます。
下記がコードになります。
Sub Sample()
Dim sh1 As Worksheet, sh2 As Worksheet
Dim i As Long
Dim rng As Range
Application.ScreenUpdating = False
Set sh1 = Worksheets("Sheet1")
Set sh2 = Worksheets("Sheet2")
With sh1
For i = 5 To .Cells(Rows.Count, "C").End(xlUp).Row
If .Range("C" & i).Value <> "" Then
Set rng = sh2.Cells.Find(What:=.Range("C" & i).Value, LookIn:=xlValues, LookAt:=xlWhole)
If Not rng Is Nothing Then
.Hyperlinks.Add Anchor:=.Range("B" & i), Address:="#'" & sh2.Name & "'!" & rng.Address, TextToDisplay:="▼"
sh2.Hyperlinks.Add Anchor:=rng.Offset(0, -1), Address:="#'" & sh1.Name & "'!" & .Range("C" & i).Address, TextToDisplay:="▲"
End If
End If
Next i
End With
Application.ScreenUpdating = True
End Sub