• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:エクセルVBAで教えてください。)

エクセルVBAでハイパーリンクを設定する方法

このQ&Aのポイント
  • エクセルVBAを使用してファイルをハイパーリンクで開く方法について教えてください。
  • 指定したフォルダへのハイパーリンクを作成するために、エクセルVBAのコードを使用します。
  • ハイパーリンクを作成したいフォルダのフルパスを取得し、そのパスをハイパーリンクとして設定します。

質問者が選んだベストアンサー

  • ベストアンサー
  • Masa2072
  • ベストアンサー率51% (94/182)
回答No.2

コモンダイアログにはComdlg32.ocxが必要でOfficeには入っていませんでした。 というわけで再度修正 Sub hyperlink3() Dim objXLS As New Excel.Application Dim File As Variant Dim fp As String '今度はEXCELのアプリケーションオブジェクトなので大丈夫だと思います File = objXLS.GetOpenFilename("全てのファイル,*.*", , "ファイルの指定") If Not (File = False) Then Range("IV1").Value = File 'End If <== ココにEnd Ifだとキャンセル時に処理がおかしいのでコメントアウト Application.ScreenUpdating = False Range("IV1").Copy Range("A65536").End(xlUp).Offset(1).PasteSpecial xlPasteValues fp = Range("A65536").End(xlUp).Value ActiveSheet.Hyperlinks.Add Anchor:=Selection, Address:=fp, TextToDisplay:=fp Application.CutCopyMode = False Range("IV1").ClearContents Application.ScreenUpdating = True MsgBox "ハイパーリンクを設定しました。" 'キャンセル時の処理を追加 Else MsgBox "処理を中止しました。" End If End Sub という感じでどうでしょうか、今度は大丈夫だと思うのですが・・・大変失礼しました。

4k3s4r3
質問者

お礼

ありがとうございました!ばっちりでした。 すばらしいコードありがとうございました。とても自分では考えられないものでした。

その他の回答 (2)

  • Masa2072
  • ベストアンサー率51% (94/182)
回答No.3

重ね重ね申し訳ありません。 ExcelのVBAなんだから Dim objXLS As New Excel.Application は不要で File = Application.GetOpenFileName(・・・・・・・ でOKです。

  • Masa2072
  • ベストアンサー率51% (94/182)
回答No.1

File用に少し変更 Sub hyperlink2() Dim File As Object Dim fp As String 'Shell.Application.BrowseForFolderの変わりにコモンダイアログを使用しました Set File = CreateObject("MSComDlg.CommonDialog") File.ShowOpen If Not IsNull(File.Filename) Then Range("IV1").Value = File.Filename End If Application.ScreenUpdating = False Range("IV1").Copy Range("A65536").End(xlUp).Offset(1).PasteSpecial xlPasteValues fp = Range("A65536").End(xlUp).Value ActiveSheet.Hyperlinks.Add Anchor:=Selection, Address:=fp, TextToDisplay:=fp Application.CutCopyMode = False Range("IV1").ClearContents Application.ScreenUpdating = True MsgBox "ハイパーリンクを設定しました。" End Sub

4k3s4r3
質問者

お礼

Masa2072さんこんばんは。ありがとうございました。実行したところ 「実行時エラー ActiveXコンポーネントはオブジェクトを作成できません」となります・・・。特別な設定が必要でしょうか?

関連するQ&A