• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:エクセル マクロ 相対パスから画像を読み込みたいです。)

エクセルマクロで相対パスから画像を読み込む方法

このQ&Aのポイント
  • エクセルのマクロを使用して相対パスから画像を読み込む方法について教えてください。
  • 以前は絶対パスで画像を読み込んでいましたが、相対パスでも読み込めるようにしたいです。
  • 具体的なセルの配置などの情報も教えてください。

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

  • ベストアンサー
  • myRange
  • ベストアンサー率71% (339/472)
回答No.1

このブックと画像を同じフォルダーに入れておくと Thisworkbook.Pathでブックのパスが取得できるのでそれを利用したらどうでしょう。 現在、Sheet1の画像はフルパスになってますが、 パスは、ThisWorkbook.Pathで取得しますので 画像ファイルの名前だけにしてください。 例えば、Pic1.jpg とか。。 下記●のコード1行追加するだけです。 '---------------------------------- For Each r In .Range("D1", "D3") s = r.Value If Len(s) = 0 Then Exit For s = ThisWorkbook.Path & "¥" & s  '●これを追加 i = i + 1 If Len(Dir(s)) > 0 Then '---------------------------------------------- ■■注意■■ 追加コードの "¥" は上記では全角になってますが、実際では半角の¥にすること 以上です。  

yooko0108
質問者

お礼

myRange様 先ほど補足を入力してすぐに 「ん?相対パスでもいいのなら…」 と思って色々試してみたところ、画像を表示することができました! 「HYPERLINK関数」で呼び出したパスの頭に「..¥」を足したらできました。 びっくりです。 ちょっと急いでいたのでとても助かりました! どうもありがとうございました。

yooko0108
質問者

補足

素早いご回答ありがとうございます! 質問に書き忘れていたのですが、画像を種類ごとにいくつかのフォルダに分けています。 ・ブックを1階層とすると3階層まで ・最終のフォルダ数は30フォルダ(画像数:合わせて5000枚)) 後から大事な情報を申し上げてすみません。 ※■←ブック/□←フォルダ とすると ‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥ 階層1 ■ □…画像フォルダ ‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥ 階層2 □…Aフォルダ □…Bフォルダ □…Cフォルダ □…Dフォルダ ‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥ 階層3 □□□□□□□□□□□□□ (Aフォルダの中:13フォルダ) □□□□□□□□□□ (Bフォルダの中:10フォルダ) □□□□ (Cフォルダの中: 5フォルダ) □□ (Dフォルダの中: 2フォルダ) ↑それぞれに「.jpg画像」が入っている ‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥ という構成です。 (関係ないかもしれませんが)今の自分でもできることは 「あらかじめ関数で※のようにパスを文字列として呼び出しておくこと」 ぐらいでしょうか。 ※..\画像フォルダ\Aフォルダ\最後のフォルダ\いちご01.jpg もしお時間がありましたら、ヒントをいただけると大変助かります。 自分でも教えていただいたコードを元に調べてみたいと思います。 よろしくお願いいたします。

関連するQ&A