Excel VBA質問箱 IV

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

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


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

【54796】ハイパーリンクの作成で まいける 08/3/30(日) 14:36 質問[未読]
【54801】Re:ハイパーリンクの作成で ichinose 08/3/30(日) 20:39 発言[未読]
【54805】Re:ハイパーリンクの作成で まいける 08/3/30(日) 23:25 発言[未読]
【54806】Re:ハイパーリンクの作成で りん 08/3/31(月) 8:07 発言[未読]
【54807】Re:ハイパーリンクの作成で まいける君を叱る 08/3/31(月) 8:34 回答[未読]
【54828】Re:ハイパーリンクの作成で まいける 08/3/31(月) 23:56 お礼[未読]
【54829】Re:ハイパーリンクの作成で まいける君を叱る 08/4/1(火) 8:00 発言[未読]
【54833】Re:ハイパーリンクの作成で VBWASURETA 08/4/1(火) 11:19 発言[未読]

【54796】ハイパーリンクの作成で
質問  まいける  - 08/3/30(日) 14:36 -

引用なし
パスワード
   ずっと調べたのですがBook内のSheetのハイパーリンクを目次ページ
に作りたいのですがどうやってもうまくいきません。お暇がありましたらよろ
しくお願いします。
シート1でコマンドボタンを押すとシート3を複数コピーするように作ってあ
ります。
そうすると同時にシート2のセルへリンクを貼ります。
それがどうしても・・・シート2のセルへはリンク先の名前は入りますが違う
シートにハイパーリンクが出来しかも飛ぶことが出来ません。
わたすぃのコードです。

Sub link()

  Dim moji As Variant
  Dim adds As Workbooks

   moji = aioue
   Set adds = Thisworkbook.Worksheets(Sheet2)

     Range("A5").select
   ActiveSheet.Hyperlinks.add Anchor:= selection, _
adress:adds, Text To Display:=moji
End Sub

どうか助けてください
お願いします

【54801】Re:ハイパーリンクの作成で
発言  ichinose  - 08/3/30(日) 20:39 -

引用なし
パスワード
   ▼まいける さん:
こんばんは。
新規ブックの標準モジュールに

Sub sample1()
  With Worksheets("sheet1").Range("b1")
    .Value = "icinoseA"
    .Hyperlinks.Add anchor:=.Cells(1), Address:="", SubAddress:="sheet2!a1"
    End With
   
End Sub

'↑Sheet1のセルB1にichinoseAと入力し、ハイパーリンク先としてSheet2のセルA1
'                    を設定しています。

Sub sample2()
  Dim linkadd As String
  linkadd = Worksheets("sheet3").Range("a1").Address(, , , True)
  With Worksheets("sheet1").Range("b2")
    .Formula = "=hyperlink(""" & linkadd & """,""icinoseB"")"
    End With
End Sub
'↑これは、Hyperkink関数を設定した例です
'Sheet1のセルB2にichinoseBという文字列にハイパーリンク先としてSheet3のセルA1
'                    を設定しています。

これを参考にしてみてください

【54805】Re:ハイパーリンクの作成で
発言  まいける  - 08/3/30(日) 23:25 -

引用なし
パスワード
   ありがとうございます
教えていただいたとおりやってみたら出来ました。
私のやっていることの中に組み込んでみたらうまくいかなくなってしまったのでどうしたらよいのでしょうか?
リンクは作れるのですが変数を使うとリンク先に飛べないのです・・・
ご教示いただけないでしょうか。お願いします。

Dim sheet As Worksheet
Dim sheetname As String
Dim intThisYear As Integer

intThisYear = Year(Date)

sheetname = "Sheet2" & intThisYear

  With Worksheets("sheet1").Range("b1")
    .Value = "icinoseA"
    .Hyperlinks.Add anchor:=.Cells(1), Address:="", SubAddress:="sheetname"
End With
  
End Sub

【54806】Re:ハイパーリンクの作成で
発言  りん E-MAIL  - 08/3/31(月) 8:07 -

引用なし
パスワード
   まいける さん、おはようございます。

>リンクは作れるのですが変数を使うとリンク先に飛べないのです・・・
>ご教示いただけないでしょうか。お願いします。

>intThisYear = Year(Date)
>sheetname = "Sheet2" & intThisYear
シートの名前は 「Sheet22008」ですか?

>SubAddress:="sheetname"
        ↑"でくくっているので、sheetnameという文字列を指定しています。
" をはずすだけだと範囲を指定していないので、参照エラーになります。ichinoseさんも前回書いておられましたが、リンク先セルがA1の時はこんな感じです。

  .Hyperlinks.Add anchor:=.Cells(1), Address:="", SubAddress:=sheetname & "!A1"

【54807】Re:ハイパーリンクの作成で
回答  まいける君を叱る  - 08/3/31(月) 8:34 -

引用なし
パスワード
   貴君はマルチポストが禁止されている某掲示板とマルチポストしている。
いい年齢をしているのだろうから、ルールくらい守りたまえ。

SubAddress:="sheetname"
これが致命的だ。変数を""で囲むと、それは単なる文字列になってしまう。
それにシート名だけではダメだと思う。あくまでセル参照が必要となる。


ついでに言っておくが、こんなデタラメやっていたら、いつになっても上達は
しない。
  moji = aioue
      ~~~~~~
  Set adds = Thisworkbook.Worksheets(Sheet2)
                         ~~~~~~~~~ 
  Range("A5").select
  ActiveSheet.Hyperlinks.add Anchor:= selection, _
    adress:adds, Text To Display:=moji
    ~~~~~~~~~~~ ~~~~~~~~~~~~~~~
文字列と変数の区別くらいしっかりすることです。
また、投稿に当たっては、コードを直接コピーペイストしたほうがいい。
Text To Display:= なんていうことはありえない。

【54828】Re:ハイパーリンクの作成で
お礼  まいける  - 08/3/31(月) 23:56 -

引用なし
パスワード
   ありがとうございます!
セルの位置まで指定しないと出来ないのですね
出来たのはいいのですが何故か文字が小さくなってしまうんです。
なぜか考えてみています。

【54829】Re:ハイパーリンクの作成で
発言  まいける君を叱る  - 08/4/1(火) 8:00 -

引用なし
パスワード
   まいける(ステラお痔さん)さん
Sub link()
  Dim moji As Variant
  Dim adds As Workbooks
   moji = aioue
   adds = "Sheet2!A1"
     Range("A5").select
   ActiveSheet.Hyperlinks.add Anchor:= selection, _
adress:adds, Text To Display:=moji
End Sub
としてスレッドを閉じられたが、これで動くのですか?
いい加減なことをするものではありません。

こうしたQ&A掲示板は、自分にとっての課題を解決する場であると同時に、
それが他人にとってもデータベースとなるのです。
そういう理解ができないなら、こうした仕組みを利用すべきではありません。

ちなみに、文字が小さくなる原因は、セルの書式をよくみれば判明するはずです。

【54833】Re:ハイパーリンクの作成で
発言  VBWASURETA  - 08/4/1(火) 11:19 -

引用なし
パスワード
   皆さんおはようございます。

モーグ側とこちら側のも見せて頂きました。
(モーグ側は本来マルチポスト禁止なのでこの質問に対して回答をつけないつもりでしたが参考にされる方のために)

まいけるさんのソースを見る限り多分ですが
いつもマクロ自動記録でされているのではないかな?
という感じのソースですね。

後、型と書き方はとりあえずサンプルとして書いたのではないかなと思いますが。

一応、まいけるさんのソースを元にしたサンプル(データベース用)に
したものを載せておきます。
でも参考にされるのでしたら、ichinoseさんのソースがベストと思います。

Sub link()
  Dim moji As String
  Dim adds As Range

  'Range("A1")オブジェクトを生成
  Set adds = ThisWorkbook.Sheets("Sheet1").Cells(1, 1)

  'セルA5に表示する文字
  moji = "テストリンク"
  
  'セルA5「.Cells(5, 1)」にセルA1「.Worksheet.Name & "!" & .Address」に
  '飛ぶリンクを貼り付けるサンプル
  With adds
    .Hyperlinks.Add Anchor:=.Cells(5, 1), Address:="", _
        SubAddress:=.Worksheet.Name & "!" & .Address, _
        TextToDisplay:=moji
  End With

  'Range("A1")オブジェクトの解放
  Set adds = Nothing
End Sub

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