- ベストアンサー
VBAでハイパーリンクをつける
- VBAを使用してExcelに画像のファイル名を書き出し、ハイパーリンクをつける方法について質問です。
- 実行すると最初の一行だけハイパーリンクが作成されて、その後は作成されません。
- 解決策を教えてください。
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
>Anchor:=Selection になってるからじゃないですか Anchor:=Cells(貼付行, 1) にしてみたらどうでしょう
その他の回答 (1)
- dennou2000
- ベストアンサー率62% (18/29)
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
お礼
できました。ありがとうございます。 ディスプレイの拡張子をはぶくものは 別で、質問したいと思います。 ありがとうございました。
補足
できました!ありがとうございます。 TextToDisplayで拡張子が○○○.jpgと着きますが この拡張子無しで表示したいのですが この部分を消しても意味はないのですね。 (1)Dim 拡張子 As String (2)拡張子 = "*." & "JPG" (3)ファイル名 = Dir(パス & 拡張子)⇒この「&拡張子」の部分 たぶんこのDirに意味があるのでしょうか?