| 
    
     |  | ▼さんい さん: こんにちは。
 
 >ご返事をしていただきありがとうございます。
 >png形式の画像はワークシート内に、
 >jpg形式の画像はuserform内に貼り付けられました。ありがとうございます。
 >ところで、jpg形式でも画像優先で圧縮形式を小さくした
 >画像はいくらjpg形式でも全く画像は現れませんでした。
 JPGでいくつかサンプルを作成しましたが、再現は出来ませんでした。
 が、私のPCにころがっている複数のgifファイルで画像が現れない
 という現象を確認しました。
 何が原因なのかはわかりません。
 
 で、対応策としては、前回投稿したように一度JPGに変換して表示する。
 
 '=======================================================
 Private Sub CommandButton1_Click()
 On Error Resume Next
 Me.Hide
 DoEvents
 ans = Application.GetOpenFilename("ピクチャーファイル*.png,*.png;*.jpg;*.gif;*.bmp")
 If ans <> False Then
 Call mk_jpg(ans, ThisWorkbook.Path & "\temp.jpg", ActiveSheet)
 Image1.Picture = LoadPicture(ThisWorkbook.Path & "\temp.jpg")
 Kill ThisWorkbook.Path & "\temp.jpg"
 End If
 Me.Show
 End Sub
 '==================================================
 Private Sub UserForm_Initialize()
 With Image1
 .Enabled = False
 .PictureAlignment = fmPictureAlignmentTopLeft
 .PictureSizeMode = fmPictureSizeModeClip
 End With
 End Sub
 '====================================================
 Sub mk_jpg(inflnm, otflnm, sht As Worksheet)
 
 Charts.Add
 ActiveChart.Location Where:=xlLocationAsObject, Name:=sht.Name
 Set shp = ActiveChart.Pictures.Insert(inflnm)
 shp.Top = 0: shp.Left = 0
 With sht.ChartObjects(1)
 .Interior.ColorIndex = xlNone
 .Border.LineStyle = xlLineStyleNone
 .Width = shp.Width + .Chart.ChartArea.Left * 2
 .Height = shp.Height + .Chart.ChartArea.Top * 2
 '    ↑は、やっぱりLeftとTopの分を足しておかないとまずいですね
 .Chart.Export Filename:=otflnm, Filtername:="JPG"
 .Delete
 End With
 End Sub
 
 
 とするか、Imageコントロールを止めて、Webbrowserコントロールを使う方法。
 
 ユーザーフォームにImage1の代わりにWebbrowser1を配置して
 
 '==========================================================
 Private Sub CommandButton1_Click()
 On Error Resume Next
 Me.Hide
 DoEvents
 ans = Application.GetOpenFilename("ピクチャーファイル*.png,*.png;*.jpg;*.gif;*.bmp")
 If ans <> False Then
 WebBrowser1.Navigate ans
 End If
 Me.Show
 End Sub
 
 私のPCころがっていたgifファイルはこれでは、表示されました。
 また、PngファイルもOKです。
 確認してみて下さい。
 
 |  |