VBAについて質問をさせてください。
ほぼ触ったことのない素人です。
エクセルに記載している品番から、特定のフォルダ内にある同じ品番の
jpg(品番がaaaであれば、aaa.jpg)を隣のセルに表示させたいのですが、
実行時にエラーが出てしまいました。
該当のソースコード
VBA
1Private Sub Worksheet_SelectionChange(ByVal Target As Range) 2 3Dim p As String 4Dim h As Range 5 6'写真の保存場所 7p = "C:\Users\●●(※ユーザー名が入っています)\Desktop\banner\" 8 9'現在表示されている写真は一度削除する 10ActiveSheet.Pictures.Delete 11 12'商品名が入力されている行まで繰り返す 13For Each h In Sheet5.Range("E3:E" & Sheet5.Range("E1048576").End(xlUp).Row) 14 15'写真ファイルが保存されている時 16If Dir(p & h) <> "" Then 17With ActiveSheet.Pictures.Insert(p & h) 18 19'写真ファイル名が入力されているセルから2つ左のセルに挿入 20.Top = h.Offset(0, 1).Top 21.Left = h.Offset(0, 1).Left 22'写真サイズの設定 23.Width = h.Offset(0, 1).Width 24.Height = h.Offset(0, 1).Height 25End With 26End If 27Next 28 29End Sub
・エクセルの保存場所:Desktop
・画像の保存場所:Desktop\banner
・画像のサイズはバラバラ
・品番のある列はE列(数字8桁、-が間に入る時もあります)、画像を表示させたい列はF列
・Shhet5の「コードを表示」で出てきた個所に入れています
(WorksheetとSelectionChangeとの表示があります)
・参考:https://oshiete.goo.ne.jp/qa/8357181.html
記事のものをコピペし、保存場所やシート名、セルの場所などの手を加えています。
発生している問題・エラーメッセージ
For Each h In Sheet5.Range("E3:E" & Sheet5.Range("E1048576").End(xlUp).Row) の部分が黄色くなり、 ['Range'メソッドは失敗しました:'_worksheet'オブジェクト] と表示されます。
該当のエラーで調べてみてもSheetがアクティブになっていないのでは?
といった事例が多く出てきたので、Rangeの前にシート名を
入れてみたりしたのですが解決にはなりませんでした。
これから勉強するつもりではいるのですが、正直初心者にはハードルが高すぎたなと感じております。
どうかご教示いただけないでしょうか。
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2018/06/06 06:20
2018/06/06 08:32
2018/06/07 00:19