| 
    
     |  | 先日、「初めてのマクロで困ってます」でお世話になりました まつじゅんです。
 
 当初の目的をほぼクリアーし更に改造したいと思い
 新規投稿とさせて頂きました。
 
 さて、今回は…。
 下記のようなコードを用いて画像表示をさせている
 照明設置表において、
 現在 画像ファイルを特定のホームページからダウンロードして
 保存しているのですが、
 季節毎に商品の入れ替えをする関係でListBoxに表示されていない
 新製品の画像を直接読み込む事ができればより使いやすくなるかと思い
 皆様のアドバイスをお願いしたく投稿しました。
 
 
 前回の投稿で完成させたuserformのマクロです。
 
 Private Sub ExitBtn_Click()
 Unload Me
 End
 End Sub
 
 Private Sub InputBtn_Click()
 Dim MyPicture As Object
 Dim MyRow As Long
 Dim 設置場所 As String
 設置場所 = StrConv(StrConv(TextBox1.Value, vbNarrow), vbUpperCase)
 
 If ListBox1.ListIndex = -1 Then
 MsgBox "商品番号を選択して下さい。"
 ListBox1.SetFocus
 Exit Sub
 ElseIf 設置場所 = "" Then
 MsgBox "設置場所を入力してください。"
 TextBox1.SetFocus
 Exit Sub
 ElseIf Len(設置場所) <> 3 Or Val(Right(設置場所, 2)) _
 > 44 Or Val(Right(設置場所, 2)) < 15 Then
 MsgBox "設置場所に不適切な値が入力されています。"
 TextBox1.SetFocus
 Exit Sub
 End If
 
 Select Case Left(設置場所, 1)
 Case "V"
 MyRow = 4
 Case "W"
 MyRow = 6
 Case "X"
 MyRow = 8
 Case "Y"
 MyRow = 10
 Case "Z"
 MyRow = 12
 Case "A"
 MyRow = 14
 Case "B"
 MyRow = 16
 Case "C"
 MyRow = 18
 Case "D"
 MyRow = 20
 Case "E"
 MyRow = 22
 Case "F"
 MyRow = 24
 Case "G"
 MyRow = 26
 Case "H"
 MyRow = 28
 Case "I"
 MyRow = 30
 Case Else
 MsgBox "設置場所に不適切な値が入力されています。"
 TextBox1.Value = ""
 TextBox1.SetFocus
 Exit Sub
 End Select
 
 Cells(MyRow, 46 - Val(Right(設置場所, 2))).Value = ListBox1.Value
 Set MyPicture = ActiveSheet.Pictures.Insert("D:\picture1\" & ListBox1.Value & ".jpg")
 With Cells(MyRow + 1, 46 - Val(Right(設置場所, 2)))
 MyPicture.Top = .Top
 MyPicture.Left = .Left
 MyPicture.Width = .Width
 MyPicture.Height = .Height
 End With
 TextBox1.Value = ""
 ListBox1.SetFocus
 End Sub
 
 Private Sub ListBox1_Click()
 Image1.Picture = LoadPicture(ThisWorkbook.Path & "\" & ListBox1.Value & ".jpg")
 End Sub
 Private Sub UserForm_Initialize()
 Dim jpgDir As String
 Dim Fname As String
 
 jpgDir = ThisWorkbook.Path & "\*.jpg"
 Fname = Dir(jpgDir, vbNormal)
 Do
 ListBox1.AddItem Left(Fname, Len(Fname) - 4)
 Fname = Dir
 Loop While Fname <> ""
 End Sub
 
 |  |