- ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:ExcelVBAでフォルダーからファルイ名を書き出しリンクを貼り、表示名を変える)
ExcelVBAでフォルダーからファイル名を書き出しリンクを貼り、表示名を変える
このQ&Aのポイント
- ExcelVBAを使用して、特定のフォルダーからファイル名を取得し、リンクを貼り付けた後に表示名を変更する方法についての質問です。
- 質問者は、以下のVBAコードを作成しましたが、正常に動作しないと報告しています。
- 質問者は特に(1)の部分に問題があると感じており、助言を求めています。
- みんなの回答 (1)
- 専門家の回答
質問者が選んだベストアンサー
>ディスプレイ = Left(strVal, "SEARCH(""."",strVal)-1") 要するに拡張子以降を取り除く処理ですよね。 ディスプレイ = Left(strVal, InStr(strVal, ".")-1) みたいな感じにすればイイと思います。 あと、 >strVal = Dir(パス & 拡張子) みたいにDir( ) をもう一度実行するとおかしなことになります。 >Cells(貼付行, 1).Value = ファイル名 は要らないと思います。 あと、前にも指摘がありましたが、 >Range("A1").Select もこの場合不要です。 修正版 Private Sub 指定フォルダ中の指定拡張子のファイル名をシートに書く() Sheets(記入シート).Activate Cells.Clear 'すべてクリア 'Range("A1").Select パス = ドライブ & ":\" & フォルダ & "\" 'パスを組む ファイル名 = Dir(パス & 拡張子) 貼付行 = 0 Do While ファイル名 <> "" 貼付行 = 貼付行 + 1 ディスプレイ = Left(ファイル名, InStr(ファイル名, ".") - 1) ActiveSheet.Hyperlinks.Add Anchor:=Cells(貼付行, 1), Address:=ファイル名, TextToDisplay:=ディスプレイ ファイル名 = Dir() '次のファイル名を取り出す Loop End Sub
お礼
絶対パスにすれば解決しました。 ありがとうございました。
補足
いつもすみません。さっそくのご返答ありがとうございます。 やってみましたが、表示名はうまく行きましたが リンクがきれてしまいました。 リンクもファイル名に拡張子がついた状態にかわってしまいます。 例)表示文字列⇒Dec08294 , アドレス⇒Dec08294.JPG と言う風になります。 コードは下記のように変更しました。 Private Sub 指定フォルダ中の指定拡張子のファイル名をシートに書く() Sheets(記入シート).Activate Cells.Clear Range("A1").Select パス = ドライブ & ":\" & フォルダ & "\" ファイル名 = Dir(パス & 拡張子) 貼付行 = 0 Do While ファイル名 <> "" 貼付行 = 貼付行 + 1 ディスプレイ = Left(ファイル名, InStr(ファイル名, ".") - 1) ActiveSheet.Hyperlinks.Add Anchor:=Cells(貼付行, 1), Address:=ファイル名, TextToDisplay:=ディスプレイ ファイル名 = Dir() Loop End Sub 何度もすみません。 よろしくお願い致します。