« 数式かどうか判定する | トップページ | セルにハイパーリンクを設定する »

2020年5月14日 (木)

セルに移動するリンクを付けた図形を作成する

例えば,
Excelに貼り付けた画像の部分をクリックすると
特定のセルに移動させたい場合,
画像上に図形を配置して
図形にハイパーリンクを付けることで実現できます。

このようにすると画像の部分と
セルを関連付けることができます。

図形の数が数個であれば
手動で図形を作成することも簡単ですが
数十個となれば作成するのは手間です。
VBAであれば一瞬でできます。

VBAで
セルに移動するリンクを貼った図形を
作成する方法を見ていきます。

1~47のナンバーが入力されている
次の画像のシートがあるとします。
Vba20200514a

A列の各セルの内容を文字として表示して
セルに移動するリンクを追加した図形を作成します。
図形の種類は円です。
作成した図形を日本地図の画像上に配置して
地図からセルへ移動できるようにします。

セルに移動するリンクを付けた図形を作成するコード:

Sub macro20200514a()
'セルに移動するリンクを付けた図形を作成する

    Dim i As Integer
   
    For i = 1 To Cells(1, 1).End(xlDown).Row
        ActiveSheet.Shapes.AddShape(msoShapeOval, _
            200 + 14 * (i Mod 10), 10 + 14 * Int(i / 10), _
            14, 14).Select
       
        'テキストの設定
        Selection.ShapeRange(1).TextFrame2.TextRange. _
            Characters.Text = Cells(i, 1)
       
        '図形の塗りの設定
        With Selection.ShapeRange.Fill
            .Visible = msoTrue
            .ForeColor.RGB = RGB(255, 255, 255)
            .Solid
        End With
       
        '図形の線の設定
        With Selection.ShapeRange.Line
            .Visible = msoTrue
            .Weight = 0.75
            .ForeColor.RGB = RGB(0, 0, 0)
        End With
       
        '文字の塗りの設定
        With Selection.ShapeRange.TextFrame2.TextRange.Font.Fill
            .Visible = msoTrue
            .Solid
            .ForeColor.RGB = RGB(0, 0, 0)
        End With
       
        '余白,文字揃えの設定
        With Selection.ShapeRange.TextFrame2
            .MarginLeft = 0
            .MarginRight = 0
            .MarginTop = 0
            .MarginBottom = 0
            .VerticalAnchor = msoAnchorMiddle
            .HorizontalAnchor = msoAnchorCenter
            .WordWrap = msoFalse
        End With
       
        'フォントの設定
        With Selection.ShapeRange.TextFrame2.TextRange.Font
            .Name = "MS Pゴシック"
        End With
       
        'リンクの追加
        ActiveSheet.Hyperlinks.Add _
            Anchor:=Selection.ShapeRange.Item(1), _
            Address:="", _
            SubAddress:=ActiveSheet.Name & "!" & Cells(i, 1).Address
    Next i

End Sub

実行結果:
Vba20200514b

リンクを貼り付けた図形が作成されたので
これを日本地図上に配置します。

リンクを貼った図形は選択しようとすると
リンク先へ移動してしまうので
[ホーム]-[検索と選択]-[オブジェクトの選択]をクリックして
オブジェクトのみ選択できるようにしてから
図形を移動させます。

図形を日本地図上に配置すると次のようになります。
Vba20200514c

数字をクリックするとセルに移動します。

使用Ver:Win10, Excel For Office365

|

« 数式かどうか判定する | トップページ | セルにハイパーリンクを設定する »

コメント

この記事へのコメントは終了しました。