[[20101129132326]] 『ハイパーリンクのVBA記述』(万年太郎) ページの最後に飛ぶ

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

 

『ハイパーリンクのVBA記述』(万年太郎)

 ハイパーリンクのVBA記述がうまくいかず、HELPをみてもよくわからないので投稿します。
 sheet(2)のRange("E1")に”メニュー画面に戻ります”のハイパーリンク設定をしてsheet(1)
 に戻るようにしたいのですが、戻りません。

 Sub ハイパーリンクテスト()
  Dim wh1, wh2 As Worksheet
   Set wh1 = Sheets(1)
   Set wh2 = Sheets(2)
   wh2.Select
   Range("E1") = "メニュー画面に戻ります"
   Range("E1").Hyperlinks.Add Anchor:=Range("E1"), Address:=Sheets(1).Range ("A1"), TextToDisplay:="メニュー画面に戻ります"
 End Sub

 VBAの記述のどこに問題があるか教えて下さい。
WindowXP,Excel2003

 こうですかね。

 Sub ハイパーリンクテスト()
   With Sheets(2)
     .Range("E1").Hyperlinks.Add Anchor:=.Range("E1"), _
                                 Address:="", _
                                 SubAddress:=Sheets(1).Range("A1").Address(External:=True), _
                                 TextToDisplay:="メニュー画面に戻ります"
   End With
 End Sub

 SubAddressにアドレスを渡します。

 それ以前にRangeオブジェクトのParentを指定していなかったり
 プロパティも省略されているので
 >Sheets(1).Range ("A1")
 これなんかはアドレスではなくSheet1のA1セルに書かれている値になってしまいます。
 Rangeオブジェクトのプロパティを省略した場合のデフォルトはValueプロパティですので。
 Addressプロパティで、なおかつシートも指定するので引数ExternalにTrueを設定しないと
 なりません。

 (momo)

 momoさん、早速のレスありがとうございます。上記の通り、やってみたらうまく行きました。
 m(_ _)m m(_ _)m(万年太郎)


コメント返信:

[ 一覧(最新更新順) ]


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