dポイントプレゼントキャンペーン実施中!

WindowsXP(home)上でexcel2002を使用しております。

標記のように、ハイパーリンクで別ブックの
グラフシートを参照させたいのですが、やり方が
分かりません。
普通のワークシート上のセルをリンク先に指定する
事はできるのですが、グラフシートにはできなくて
困っております。

1.リンク先に直接グラフシートを指定する。
2.グラフシート上にダミーのオブジェクトを
  つくり、これをリンク先に指定することで
  グラフを表示させる。

1,2どちらかでも結構ですので、ご存知の方
いらっしゃいましたらお願いいたします。

(最悪、ワークシート上にグラフをはめ込んで
 同じシートのセルを参照させることで、
 グラフを表示することも考えられますが、
 できればこれは避けたいと考えております。)

よろしくお願いします。

A 回答 (2件)

こんにちわ。



無理やりの方法ですが・・・・ ^^;

グラフシートが1枚だけの場合でしたら、通常シートを非表示にしておき、通常の
シートのセルにリンクを張る方法があります。

グラフが2枚以上の場合はマクロで処理するほかないのかも知れません。
一応次のようにします。

<グラフシートのあるブック>
 1)通常シートのどこでもよいですので、グラフシート名のリストを作ります。
  ここではグラフシートが3枚あって、Sheet1のA1:A3に入力したと仮定します。
 2)Sheet1のA1:A3を選択して、Area という名前をつけます。
  ※Sheet1以外のシート(例:Sheet2)にも別なグラフシートリストを作る場合は
   Sheet1のリスト範囲の名前は Sheet1!Area にして、Sheet2のリスト範囲は
   Sheet2!Area という名前にします。
 3)[Alt]+[F11]で Visual Basic Editor を開き、画面左側のツリーの中にある
  ThisWorkbook をダブルクリックして、右画面に下記をコピーします。
  '
  Private Sub Workbook_SheetSelectionChange(ByVal Sh As Object, ByVal Target As Range)
   Dim RNG As Range
   For Each RNG In Range("Area")
    If Target.Address = RNG.Address Then
     Sheets(Target.Value).Select
    End If
   Next
  End Sub

ハイパーリンクを張るブックでは、前記(1)のリスト内のセルにジャンプするように設定します。
    • good
    • 0

#1です。


一部追加させてください。

If Target.Address = RNG.Address Then
 の行の次に、
Range("G1").Select
 という行を追加してください。
 上の"G1"は仮のアドレスです。グラフシート名リストの範囲以外の実際のセルに
 書き換えてください。

Workbook_SheetSelectionChange のマクロは、選択セルが変更されたときに実行
されますので、ここでポインタを別セルに移動しておかないとセルが選択された
ままですので、続けて同じハイパーリンクをクリックしたときにジャンプしてくれ
ません。
    • good
    • 0
この回答へのお礼

misatoanna様

うまく出来ました!ありがとうございます。
大変助かりました。
マクロでこんなことができるなんて、正直感動いたしました。
これで仕事の効率があがります。
本当にありがとうございました。

お礼日時:2005/05/21 16:36

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