プロが教える店舗&オフィスのセキュリティ対策術

エクセルで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初心者なので具体的にどのようにすればよいか教えてください。

よろしくお願いします。

A 回答 (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 のイベントを停止にしたうえで選択を解除
すればご希望の動作となりそうです。
    • good
    • 0

> とびとびのセルの場合どのように指定すればよいのでしょうか?



セル範囲に名前を定義しておきます。

1. リンク先となるセルを選択
2. [挿入]-[名前]-[定義]、または数式バーの横にあるセル名が
  表示されているボックスに直接入力で名前を定義します。

リンク先の設定に、この名前を選択します。

この回答への補足

できました。ご親切にありがとうございました。

リンク先の複数のセルが色つきで表示されるのですが、ひとつだけ他のものより濃い色で表示されます。これは仕方ないのでしょうか?

補足日時:2007/06/05 20:58
    • good
    • 0

> ActiveCell.Interior.ColorIndex = 3



  Selection.Interior.ColorIndex = 3

で良くない? 少し凝ったやりかたなら

  Range(Target.SubAddress).Interior.ColorIndex = 3

とか。

この回答への補足

回答ありがとうございました。

連続するセルならば、例えばハイパーリンクの設定で「A1:A20」とすれば、VisualBasicですべてに色がつきますが、連続しない、とびとびのセルの場合どのように指定すればよいのでしょうか?

補足日時:2007/06/05 19:31
    • good
    • 0

> ひとつのハイパーリンク元に複数のハイパーリンク先を作り



とは、具体的にどういうことですか?

この回答への補足

sheet1に図面、sheet2に一覧表を作りました。
一覧表で商品を管理しており、商品名および管理番号を記載しております。

図面にも管理番号を記載しており、sheet1の一覧表の管理番号をクリックすると、ハイパーリンクでsheet2の図面の同じ管理番号のセルにカーソルがいき、そのセルが色つきで表示されるようにしています。(一覧表の管理番号が図面上、どこにあるのか分かるようにしています)

しかし、図面上に同じ管理番号が複数存在するものがあり、複数存在するものは一覧表の管理番号をクリックすると、図面上の同じ管理番号がすべて色つきで表示されるようにしたいと思っています。

ハイパーリンクの機能でこのようなことができるのか、またVisualBasicでできるのかよく分かりません。

説明不足で申し訳ございません。よろしくお願いします。

補足日時:2007/06/05 19:13
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!