• 締切済み

ハイパーリンクの一括設定

シート1のB列に1000件以上名前が入っているとします。 (1)B列に入力された名前と同じ名前のシートが作成される。 (2)B列に入力した名前をクリックすると、(1)で作成された同じ名前のページにジャンプする。 とゆうハイパーリンクの設定をしたいのですが無理でしょうか? B列に入力された名前の数だけシートが作成されるとゆう事になるのですが・・・。 B列の名前は1000件以上あり、尚且つ今後も増えていくので一つのエクセルファイルではシートが足りなくなってしまう為、別のエクセルファイルにも同様にジャンプできるように設定したいのです。 ちなみにA列には数字が入っており、ここにはハイパーリンクはつけたくありません。わかりにくい文章で申し訳ありませんがどなかたご回答お願いいたします。マクロは初心者です。

みんなの回答

回答No.2

B列に対応するbookにジャンプすると言う事にして、こんなのはどうですか? ただし、ハイパーリンクじゃないし、ダブルクリックですが・・・ ファイル名は行番号です(B列が書き直される事がある場合など、ファイル名にすると後が面倒になるので) ダブルクリックしたcellが空白だった場合のチェックはしてません。 Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean) Dim bookFile As String bookFile = ThisWorkbook.Path & "\" & Target.Row & ".xls" 'ファイル存在チェック If CreateObject("Scripting.FileSystemObject").fileExists(bookFile) Then 'ファイルあり Workbooks.Open bookFile Else 'ファイルなし Application.SheetsInNewWorkbook = 1 '新規bookのシートの数を1にする With Workbooks.Add .Sheets(1).Name = Cells(Target.Row, 2) .SaveAs bookFile End With End If '本来のダブルクリックのイベントはキャンセル Cancel = True End Sub B列をファイル名にする場合 Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean) Dim bookFile As String bookFile = ThisWorkbook.Path & "\" & Cells(Target.Row, 2) & ".xls" If CreateObject("Scripting.FileSystemObject").fileExists(bookFile) Then Workbooks.Open bookFile Else Application.SheetsInNewWorkbook = 1 With Workbooks.Add .SaveAs bookFile End With End If Cancel = True End Sub

  • redfox63
  • ベストアンサー率71% (1325/1856)
回答No.1

もう少し 仕様をはっきりさせたほうが良いでしょうね その1000以上の件の名前を何件毎で分割するのかとか リンク先のセルは何処にするのかとか 分割した際のブック名の命名規則など

関連するQ&A

専門家に質問してみよう