- ベストアンサー
エクセルのハイパーリンクについて
エクセルでsheet1の任意のセルをクリックすると、sheet2の任意のセルにハイパーリンクするようにしています。 その際に、ハイパーリンク先の該当箇所に色がつくようにVisual Basicでプログラムを組み込みました。ひとつのハイパーリンク元にひとつのハイパーリンク先を作っていましたが、ひとつのハイパーリンク元に複数のハイパーリンク先を作り、ハイパーリンク先の該当箇所に色をつけたいのですが、どのようにすればよいのでしょうか?(2つハイパーリンク先があるときは、2つの該当セルに色がつくようにしたいです) Visual Basicで作ったプログラムは以下のとおりです。 Private Sub Worksheet_SelectionChange(ByVal Target As Range) Cells.Interior.ColorIndex = xlColorIndexNone End Sub Private Sub Worksheet_FollowHyperlink(ByVal Target As Hyperlink) ActiveCell.Interior.ColorIndex = 3 End Sub このプログラムを修正する必要がある場合は、Visual Basic初心者なので具体的にどのようにすればよいか教えてください。 よろしくお願いします。
- みんなの回答 (4)
- 専門家の回答
質問者が選んだベストアンサー
> ひとつだけ他のものより濃い色で表示されます。 正確に言えば、カーソルのあるセルが着色本来の色、その他の セルは網掛け表示されややくすんだ色で表示されています。 現在選択されているセルの内、カーソルのあるセルを視覚的に 識別するための Excel の仕組みです。 気にしなければ良い程度のことだと思いますが、今回のケース ではセルに着色を行っているので、 Private Sub Worksheet_FollowHyperlink(ByVal Target As Hyperlink) Selection.Interior.ColorIndex = 3 Application.EnableEvents = False ActiveCell.Select Application.EnableEvents = True End Sub こんな感じで、VBA のイベントを停止にしたうえで選択を解除 すればご希望の動作となりそうです。
その他の回答 (3)
- KenKen_SP
- ベストアンサー率62% (785/1258)
> とびとびのセルの場合どのように指定すればよいのでしょうか? セル範囲に名前を定義しておきます。 1. リンク先となるセルを選択 2. [挿入]-[名前]-[定義]、または数式バーの横にあるセル名が 表示されているボックスに直接入力で名前を定義します。 リンク先の設定に、この名前を選択します。
- KenKen_SP
- ベストアンサー率62% (785/1258)
> ActiveCell.Interior.ColorIndex = 3 Selection.Interior.ColorIndex = 3 で良くない? 少し凝ったやりかたなら Range(Target.SubAddress).Interior.ColorIndex = 3 とか。
補足
回答ありがとうございました。 連続するセルならば、例えばハイパーリンクの設定で「A1:A20」とすれば、VisualBasicですべてに色がつきますが、連続しない、とびとびのセルの場合どのように指定すればよいのでしょうか?
- misatoanna
- ベストアンサー率58% (528/896)
> ひとつのハイパーリンク元に複数のハイパーリンク先を作り とは、具体的にどういうことですか?
補足
sheet1に図面、sheet2に一覧表を作りました。 一覧表で商品を管理しており、商品名および管理番号を記載しております。 図面にも管理番号を記載しており、sheet1の一覧表の管理番号をクリックすると、ハイパーリンクでsheet2の図面の同じ管理番号のセルにカーソルがいき、そのセルが色つきで表示されるようにしています。(一覧表の管理番号が図面上、どこにあるのか分かるようにしています) しかし、図面上に同じ管理番号が複数存在するものがあり、複数存在するものは一覧表の管理番号をクリックすると、図面上の同じ管理番号がすべて色つきで表示されるようにしたいと思っています。 ハイパーリンクの機能でこのようなことができるのか、またVisualBasicでできるのかよく分かりません。 説明不足で申し訳ございません。よろしくお願いします。
補足
できました。ご親切にありがとうございました。 リンク先の複数のセルが色つきで表示されるのですが、ひとつだけ他のものより濃い色で表示されます。これは仕方ないのでしょうか?