Excel VBA質問箱 IV

当質問箱は、有志のボランティア精神のおかげで成り立っています。
問題が解決したら、必ずお礼をしましょうね。
本サイトの基本方針をまとめました。こちら をご一読ください。

投稿種別の選択が必要です。ご注意ください。
迷惑投稿防止のため、URLの入力を制限しています。ご了承ください。


2811 / 13646 ツリー ←次へ | 前へ→

【65825】一覧データでハイパーリンクを設定する けい 10/6/29(火) 18:19 質問[未読]
【65827】Re:一覧データでハイパーリンクを設定する マクロマン 10/6/29(火) 19:01 発言[未読]
【65841】Re:一覧データでハイパーリンクを設定する けい 10/6/30(水) 9:52 質問[未読]
【65851】Re:一覧データでハイパーリンクを設定する マクロマン 10/7/1(木) 0:24 発言[未読]
【65853】Re:一覧データでハイパーリンクを設定する けい 10/7/1(木) 9:39 お礼[未読]
【65829】Re:一覧データでハイパーリンクを設定する 通り魔 10/6/29(火) 20:08 発言[未読]
【65842】Re:一覧データでハイパーリンクを設定する けい 10/6/30(水) 9:56 質問[未読]
【65843】Re:一覧データでハイパーリンクを設定する SS 10/6/30(水) 11:11 発言[未読]
【65844】Re:一覧データでハイパーリンクを設定する けい 10/6/30(水) 11:37 お礼[未読]

【65825】一覧データでハイパーリンクを設定する
質問  けい  - 10/6/29(火) 18:19 -

引用なし
パスワード
   ハイパーリンクについて教えてください。

一覧表というシートがあり、A列にはシート名が入っています。
そのシート名をクリックすると、ブック内の同じ名前の別シートに詳細があるので
そこへハイパーリンクができるようにしたいのですが

  A列
1 シート名(タイトル)
2 Sheet1  ←クリックするとSheet1へハイパーリンク
3 Sheet2  ←クリックするとSheet2へハイパーリンク
4 Sheet3  ←クリックするとSheet3へハイパーリンク

よろしくお願いいたします

【65827】Re:一覧データでハイパーリンクを設定する
発言  マクロマン  - 10/6/29(火) 19:01 -

引用なし
パスワード
   一般関数のHYPERLINKではだめなのですか?

【65829】Re:一覧データでハイパーリンクを設定する
発言  通り魔  - 10/6/29(火) 20:08 -

引用なし
パスワード
   ハイパーリンクはよくわからないのでシートのSelectionChangeイベントで
セルの中身がシート名ならそこをアクティブにするマクロ

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Dim a As Worksheet
For Each a In ThisWorkbook.Sheets
If a.Name = Target Then
a.Activate
Exit For
End If
Next
End Sub

【65841】Re:一覧データでハイパーリンクを設定する
質問  けい  - 10/6/30(水) 9:52 -

引用なし
パスワード
   ▼マクロマン さん:
>一般関数のHYPERLINKではだめなのですか?

ご返信ありがとうございます。
なぜ質問したかは、一般のハイパーリンクなら簡単に私でも
できるのですが、データ数が多いので質問しています。
かなり量があるので、それだけに時間を取られたくないと思いまして。。。

【65842】Re:一覧データでハイパーリンクを設定する
質問  けい  - 10/6/30(水) 9:56 -

引用なし
パスワード
   ▼通り魔 さん:

ご回答ありがとうございます。
基本的な質問ですみません。

Private Sub ・・・から始まるものは
モジュールにそのまま貼った時に、マクロから
マクロ名が出てこないのですが、どうやって保存すればよいのですか?

初心者な質問ですみません。


>ハイパーリンクはよくわからないのでシートのSelectionChangeイベントで
>セルの中身がシート名ならそこをアクティブにするマクロ
>
>Private Sub Worksheet_SelectionChange(ByVal Target As Range)
>Dim a As Worksheet
>For Each a In ThisWorkbook.Sheets
>If a.Name = Target Then
>a.Activate
>Exit For
>End If
>Next
>End Sub

【65843】Re:一覧データでハイパーリンクを設定する
発言  SS  - 10/6/30(水) 11:11 -

引用なし
パスワード
   ▼けい さん:

先にある質問はgoogleなどで検索をかければ色々出てくると思います。
あとマクロの記憶を活用すると
  例)A4にSheet2と記述されているときハイパーリンクを設定すると
   Range("A4").Select
  ActiveSheet.Hyperlinks.Add Anchor:=Selection, Address:="", _
      SubAddress:="Sheet2!A1", TextToDisplay:="Sheet2"
が出来るのでこれを応用すれば良いと思います。
一応考えたものを後述します。
Sub Macro1()
'ハイパーリンクの設定
  Dim SName As String
  Dim TRange As Range
  Dim WS As Worksheet
  
  For Each TRange In Range("A4:A6") '範囲は適当です。
    SName = TRange.Value
    For Each WS In Sheets
      If WS.Name = SName Then
        ActiveSheet.Hyperlinks.Add Anchor:=TRange, Address:="", _
             SubAddress:=SName & "!A1", TextToDisplay:=SName
        Exit For
      End If
    Next WS
  Next TRange
End Sub

Sub Macro2()
'ハイパーリンクのクリア
  Range("A4:A6").Hyperlinks.Delete '範囲は適当です。
End Sub

>ハイパーリンクについて教えてください。
>
>一覧表というシートがあり、A列にはシート名が入っています。
>そのシート名をクリックすると、ブック内の同じ名前の別シートに詳細があるので
>そこへハイパーリンクができるようにしたいのですが
>
>  A列
>1 シート名(タイトル)
>2 Sheet1  ←クリックするとSheet1へハイパーリンク
>3 Sheet2  ←クリックするとSheet2へハイパーリンク
>4 Sheet3  ←クリックするとSheet3へハイパーリンク
>
>よろしくお願いいたします

【65844】Re:一覧データでハイパーリンクを設定する
お礼  けい  - 10/6/30(水) 11:37 -

引用なし
パスワード
   ▼SS さん:

コードの書き方など、ありがとうございました。
Googleなどで、使用例なども参考になりました。
応用させて書き換えたらうまくいきました。

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


>▼けい さん:
>
>先にある質問はgoogleなどで検索をかければ色々出てくると思います。
>あとマクロの記憶を活用すると
>  例)A4にSheet2と記述されているときハイパーリンクを設定すると
>   Range("A4").Select
>  ActiveSheet.Hyperlinks.Add Anchor:=Selection, Address:="", _
>      SubAddress:="Sheet2!A1", TextToDisplay:="Sheet2"
>が出来るのでこれを応用すれば良いと思います。
>一応考えたものを後述します。
>Sub Macro1()
>'ハイパーリンクの設定
>  Dim SName As String
>  Dim TRange As Range
>  Dim WS As Worksheet
>  
>  For Each TRange In Range("A4:A6") '範囲は適当です。
>    SName = TRange.Value
>    For Each WS In Sheets
>      If WS.Name = SName Then
>        ActiveSheet.Hyperlinks.Add Anchor:=TRange, Address:="", _
>             SubAddress:=SName & "!A1", TextToDisplay:=SName
>        Exit For
>      End If
>    Next WS
>  Next TRange
>End Sub
>
>Sub Macro2()
>'ハイパーリンクのクリア
>  Range("A4:A6").Hyperlinks.Delete '範囲は適当です。
>End Sub
>
>>ハイパーリンクについて教えてください。
>>
>>一覧表というシートがあり、A列にはシート名が入っています。
>>そのシート名をクリックすると、ブック内の同じ名前の別シートに詳細があるので
>>そこへハイパーリンクができるようにしたいのですが
>>
>>  A列
>>1 シート名(タイトル)
>>2 Sheet1  ←クリックするとSheet1へハイパーリンク
>>3 Sheet2  ←クリックするとSheet2へハイパーリンク
>>4 Sheet3  ←クリックするとSheet3へハイパーリンク
>>
>>よろしくお願いいたします

【65851】Re:一覧データでハイパーリンクを設定する
発言  マクロマン  - 10/7/1(木) 0:24 -

引用なし
パスワード
   >なぜ質問したかは、一般のハイパーリンクなら簡単に私でも
>できるのですが、データ数が多いので質問しています。
>かなり量があるので、それだけに時間を取られたくないと思いまして。。。

??
一般関数のHYPERLINKもVBAから設定できますが。

【65853】Re:一覧データでハイパーリンクを設定する
お礼  けい  - 10/7/1(木) 9:39 -

引用なし
パスワード
   ▼マクロマン さん:

一般関数でも設定できると、よく知りませんでした。

Hyperlinks.Add _
でVBAを設定してみたら、うまくできました。
どうもありがとうございました。


>>なぜ質問したかは、一般のハイパーリンクなら簡単に私でも
>>できるのですが、データ数が多いので質問しています。
>>かなり量があるので、それだけに時間を取られたくないと思いまして。。。
>
>??
>一般関数のHYPERLINKもVBAから設定できますが。

2811 / 13646 ツリー ←次へ | 前へ→
ページ:  ┃  記事番号:
2610219
(SS)C-BOARD v3.8 is Free