[[20160517225325]] 『リンクを設定』(リンク) ページの最後に飛ぶ

[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]

 

『リンクを設定』(リンク)

シート1のA列にリンク対象になる語句を設定して

リンク1
リンク2
リンク3
リンク4
リンク5
....

他のシートに同様の語句が含まれていた場合、
そこに対してシート1のA列に対してリンクしたいのですが
どうすればよいでしょうか。

< 使用 Excel:Excel2007、使用 OS:Windows10 >


 >>シート1のA列に対してリンクしたい

 リンクの方向は シート1 --> 他のシート ですか?
 それとも 他のシート --> シート1 ですか?

 とれと、本件、関数処理ご希望ですか?

(β) 2016/05/18(水) 05:55


おはようございます。
質問者さんの回答を待ったほうがよいとは思うのですが、
私も時間が限られていますので、失礼して。

ブックベースの名前を定義しておくと、
挿入や削除に伴う位置の変化に耐えうるかもしれませんね。

(1)
関数でやるなら
=HYPERLINK("[Book1.xlsm]リンク1")
ブック名の表示を避けるなら別名も指定して、
=HYPERLINK("[Book1.xlsm]リンク1","リンク1")

(2)
挿入からハイパーリンクを張ったほうが、
名前の一覧が表示されるので楽かも知れない。

(γ) 2016/05/18(水) 06:53


 一つのセル内に複数のリンク対象が含まれることはあるのだろうか?
 もしある場合、その対象ごとにリンクを張りたいということだろうか?

(ねむねむ) 2016/05/18(水) 09:18


回答コメントをしたが、返事が無いですね。

そもそも、質問の趣旨が不明確ですね。
もっとやりたいことを明確にしてください。
・リンクの仕方がわからないのか
・他シートにある文字列の検索の仕方がわからないのか
・それら一連のことを実行するマクロが欲しいのか

こちらの掲示板サイトのように一般機能もマクロも質問できるところでは
特にどのようなものを作りたいのか、知りたいのか、きちんと書く必要があると思います。
質問者さんがどこまでできているのか書いてもらわないと適切な回答はできません。

なお、私は、本の目次のようなものを作りたいのだろうと推測して回答したつもり。
別の話だったのかもしれない。

(γ) 2016/05/19(木) 07:03


 皆さんコメントしておられるように、何を、どのように、どの程度のものとして準備したいのかが不明です。
 以下は、たまたまボランティアで世話をしている図書館の利用者からあがる質問に担当者が答えるQ/A集として
 インデックスをはっておきたいということで、ちょこっと作ったものを、今回の要件(これも推測ですけど)にあわせて
 手直しをしたものです。
 こんなおおげさなものは的外れなのかもしれませんが、参考出品ということで。

 ThisWorkbookモジュールに。

 Option Explicit

 Dim TODO As Boolean
 Const SHNAME As String = "Sheet1"  '★

 Private Sub Workbook_SheetActivate(ByVal Sh As Object)
    Dim c As Range
    If Sh.Name = SHNAME And TODO Then
        For Each c In Range("A1", Range("A" & Rows.Count).End(xlUp))
            setHLink c
        Next
        TODO = False
    End If
 End Sub

 Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Range)
    Dim c As Range
    Dim r As Range

    If Sh.Name = SHNAME Then

        '列選択クリア時の膨大な処理時間を回避
        If Target.Areas.Count = 1 Then
            If Target.Cells.Count = WorksheetFunction.CountBlank(Target) Then Exit Sub
        End If

        Set r = Intersect(Target, Columns("A"))
        If Not r Is Nothing Then
            For Each c In r.Cells
                setHLink c
            Next
        End If
    Else
        TODO = True
    End If

 End Sub

 Private Sub setHLink(c As Range)
    Dim shF As Worksheet
    Dim f As Range

    If IsEmpty(c) Then Exit Sub

    On Error Resume Next
    c.Hyperlinks(1).Delete
    On Error GoTo 0

    For Each shF In Worksheets
        If shF.Name <> SHNAME Then
            Set f = shF.UsedRange.Find(What:=c.Value, LookAt:=xlPart)
            If Not f Is Nothing Then
                c.Parent.Hyperlinks.Add Anchor:=c, Address:="", _
                    SubAddress:=f.Address(False, False, External:=True)
                Exit For
            End If
        End If
    Next

 End Sub

(β) 2016/05/19(木) 08:48


すみません、皆様回答ありがとうございます。
ここ数日、体がバテバテで見過ごしてしまっていました。

一番最後の回答がほしかったものです。
ありがとうございます。

>そもそも、質問の趣旨が不明確ですね。
>もっとやりたいことを明確にしてください。
すみません。方針ができてから質問するべきでした。

(リンク) 2016/05/19(木) 19:16


コメント返信:

[ 一覧(最新更新順) ]


YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki. Modified by kazu.