| 
    
     |  | 本当にありがとうございます! 早速試してみたいと思います。
 U03に感謝します、本当にありがとうございます!!
 取り急ぎお礼まで♪───O(≧∇≦)O────♪
 
 ▼UO3 さん:
 >▼ぴょんぴょん さん:
 >
 >上で質問させていただいているように、要件がクリアには把握できていないのですが
 >・シートのB列に画像ファイル名(.jpg 等の拡張子なし)が列挙されている。
 > (この部分は実際のセル範囲に変更願います)
 >・そのファイル名を持つ、jpegあるいはjpgあるいはgifデータが指定フォルダにあれば
 >・そのセルの左のセル(A列)に画像を挿入。
 >・画像縦横比率を維持してセルにあてはめる部分は、少しすっきり(?)したロジックに。
 >このような仕様だとしてコードを書いてみました。
 >
 >Sub Sample()
 >  Dim c As Range
 >  Dim myFold As Object
 >  Dim myPath As String
 >  Dim myName As String
 >  Dim ext As Variant
 >  Dim myPic As String
 >  Dim r As Range
 >
 >  Set myFold = CreateObject("Shell.Application").BrowseForFolder(&O0, "フォルダを選んでください", &H1 + &H10, "C:\")
 >  If myFold Is Nothing Then Exit Sub
 >  myPath = myFold.Items.Item.Path
 >  Set myFold = Nothing
 >  With ActiveSheet
 >    For Each c In .Range("B1", .Range("B" & .Rows.Count).End(xlUp))
 >      If Len(c.Value) > 0 Then
 >        For Each ext In Array("jpeg", "jpg", "gif")
 >          myPic = Dir(myPath & "\" & c.Value & "." & ext)
 >          If Len(myPic) > 0 Then
 >            c.Offset(, -1).Activate
 >            With ActiveSheet.Pictures.Insert(myPath & "\" & myPic)
 >              Set r = .TopLeftCell
 >              With .ShapeRange
 >                .LockAspectRatio = msoTrue
 >                If .Height > r.Height Then .Height = r.Height
 >                If .Width > r.Width Then .Width = r.Width
 >              End With
 >              Set r = Nothing
 >            End With
 >            Exit For
 >          End If
 >        Next
 >      End If
 >    Next
 >  End With
 >End Sub
 
 
 |  |