• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:Excelで文字列に対応する図を呼び出し挿入)

Excelで文字列に対応する図を呼び出し挿入

このQ&Aのポイント
  • Excelで特定の文字列に対応する図を挿入する方法について教えてください。
  • 指定したセルに入力された文字列に対応する画像ファイルを参照し、別のセルに表示する方法を知りたいです。
  • ファイルの格納フォルダには、Excelの下位にある特定のフォルダを使用していますが、指定したファイルが見つからないとエラーメッセージが表示されます。原因を教えてください。

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

  • ベストアンサー
  • imogasi
  • ベストアンサー率27% (4737/17070)
回答No.3

プログラムの中の画像ファイル名の指定が悪いのだと思う。 あとの究明ぐらいは、質問者が、責任をもって、テストをやるべきだ。 ーー なぜならば、 下記を実行してみると、小生の場合は、思い通りの画像が表示された。(一例ですが)。 ーーー 下記はSheet1のシートのChangeイベントに貼り付け。 標準モジュールへ貼り付け、ではないよ。 実行はSheetのC4セルの値の変更。 メニューの実行(F5キー)ではないよ。 Private Sub Worksheet_Change(ByVal Target As Range) 'C4セルの値が変わったら Const trgR As String = "C4" '地図通し番号を入力するセル Const insR As String = "B16" '挿入画像の左上のセル Const path As String = "Z:\サービス\チーム\ABC\データ\2019年\JPEG" 'ファイルの格納フォルダ Const pic As String = ".jpg" '「.(半角)」+ファイルの拡張子" Dim shp As Shape Dim buf As String If Target.Address(0, 0) = trgR Then For Each shp In ActiveSheet.Shapes '既に表示されている画像を削除する処理 If Not Intersect(Range(insR), Range(shp.TopLeftCell, _ shp.BottomRightCell)) Is Nothing Then shp.Delete End If Next '---- Range(insR).Select 'MsgBox path & Target.Value & pic fn = "C:\Users\xxxx\Pictures" & "\PC040626.JPG" ′xxxxはユーザー名を隠したもの。バックスラッシュの表示の部分は、¥です。   MsgBox fn buf = Dir(fn) ' buf = Dir(path & Target.Value & pic) If buf <> "" Then '入力したファイル名があるかチェック 'ActiveSheet.Pictures.Insert (path & Target.Value & pic) ActiveSheet.Pictures.Insert (fn) Else MsgBox "指定したファイルがありません" End If End If Target.Offset(1, 0).Select End Sub

sachiko555
質問者

お礼

imogasi様 ありがとうございます。 上記コードではすべてのシートに反映できなかったので、 Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Range) のように変更し、すべてのシートに反映することができました。 残るは画像のサイズの指定のみです。 また質問させていただくかもしれませんが、何卒よろしくお願いいたします。

すると、全ての回答が全文表示されます。

その他の回答 (2)

  • kkkkkm
  • ベストアンサー率66% (1747/2623)
回答No.2

そういう時は Debug.Print path & Target.Value & pic としてイミディエイトウィンドウに結合の結果を表示し、正しいファイルのフルパスが形成されているかどうか確かめてみましょう。

sachiko555
質問者

お礼

kkkkkm様 ご回答ありがとうございます。 そのようにしてみます。

すると、全ての回答が全文表示されます。
  • oboroxx
  • ベストアンサー率40% (317/792)
回答No.1

良くはわかりませんが、path変数の最後に¥記号がないから、変なファイル名になっているだけではないかな。

sachiko555
質問者

お礼

oboroxx様 ご回答ありがとうございます。 確認します。

すると、全ての回答が全文表示されます。

関連するQ&A