Excel VBA質問箱 IV

当質問箱は、有志のボランティア精神のおかげで成り立っています。
問題が解決したら、必ずお礼をしましょうね。
本サイトの基本方針をまとめました。こちら をご一読ください。

投稿種別の選択が必要です。ご注意ください。
迷惑投稿防止のため、URLの入力を制限しています。ご了承ください。


57856 / 76738 ←次へ | 前へ→

【23616】Re:jpgの圧縮率によって異なるのでしょうか?
発言  ichinose  - 05/3/30(水) 14:08 -

引用なし
パスワード
   ▼さんい さん:
こんにちは。

>ご返事をしていただきありがとうございます。
>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です。
確認してみて下さい。

2 hits

【23590】「ピクチャーが不正です」が出てしまう さんい 05/3/29(火) 14:23 質問
【23603】Re:「ピクチャーが不正です」が出てしまう ichinose 05/3/29(火) 23:57 発言
【23605】jpgの圧縮率によって異なるのでしょうか? さんい 05/3/30(水) 1:56 質問
【23616】Re:jpgの圧縮率によって異なるのでしょうか... ichinose 05/3/30(水) 14:08 発言
【23619】Re:jpgの圧縮率によって異なるのでしょう... さんい 05/3/30(水) 16:08 お礼

57856 / 76738 ←次へ | 前へ→
ページ:  ┃  記事番号:
2610219
(SS)C-BOARD v3.8 is Free