|
本当にありがとうございます!
早速試してみたいと思います。
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
|
|