• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:VBAでハイパーリンクをつける)

VBAでハイパーリンクをつける

このQ&Aのポイント
  • VBAを使用してExcelに画像のファイル名を書き出し、ハイパーリンクをつける方法について質問です。
  • 実行すると最初の一行だけハイパーリンクが作成されて、その後は作成されません。
  • 解決策を教えてください。

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

  • ベストアンサー
  • BLUEPIXY
  • ベストアンサー率50% (3003/5914)
回答No.1

>Anchor:=Selection になってるからじゃないですか Anchor:=Cells(貼付行, 1) にしてみたらどうでしょう

cocoku
質問者

お礼

できました。ありがとうございます。 ディスプレイの拡張子をはぶくものは 別で、質問したいと思います。 ありがとうございました。

cocoku
質問者

補足

できました!ありがとうございます。 TextToDisplayで拡張子が○○○.jpgと着きますが この拡張子無しで表示したいのですが この部分を消しても意味はないのですね。 (1)Dim 拡張子 As String (2)拡張子 = "*." & "JPG" (3)ファイル名 = Dir(パス & 拡張子)⇒この「&拡張子」の部分 たぶんこのDirに意味があるのでしょうか?

その他の回答 (1)

回答No.2

ANo.1の方の方法でもいいですが、そうすると下記の※の部分の意味がなくなります。 且つそこが問題点なのですが・・・ Private Sub 指定フォルダ中の指定拡張子のファイル名をシートに書く()   Sheets(記入シート).Activate   Cells.Clear   Range("A1").Select '※   パス = ドライブ & ":\" & フォルダ & "\"   ファイル名 = Dir(パス & 拡張子)   貼付行 = 0   Do While ファイル名 <> ""     貼付行 = 貼付行 + 1     Cells(貼付行, 1).Value = ファイル名     ActiveSheet.Hyperlinks.Add Anchor:=Selection, Address:=ファイル名, TextToDisplay:=ファイル名     ファイル名 = Dir()   Loop End Sub ※の箇所で選択しているのはA1のセルのみです。 一方で、ActiveSheet.Hyperlinks.Addメソッドで、Anchor:=SelectionとしてSelectionプロパティ を指定していますから、選択されている部分しか追加されません。 従って、Range("A1").Selectで選択されているセルにしか追加されません。 【対処方法】   Do While ファイル名 <> ""     貼付行 = 貼付行 + 1     Range("A" & CStr(貼付行).Select   ’変更点     Selection.Value = ファイル名     ’変更点     ActiveSheet.Hyperlinks.Add Anchor:=Selection, Address:=ファイル名, TextToDisplay:=ファイル名     ファイル名 = Dir()   Loop という形にして、逐次セル単位でセレクトをかける形にすればいいと思います。 動作確認:Windows2000 Professional SP2、Office2000

関連するQ&A

専門家に質問してみよう