VBAで取得した画像サイズと、プロパティで確認したサイズ(ピクセル)が異なっており、原因を知りたく質問いたしました。
(※サイズとは、画像の縦横の長さのサイズです。)
このサイトを参考にPNG画像のサイズを取得しようと試みました。
(URL:https://excel-ubara.com/excelvba4/EXCEL263.html)
※「AddPictureしてから取得」の所です。
ほぼ同じコードですが以下にそのコードを記載します。
Sub sample2() Dim sp As Shape Dim pWidth As Long Dim pheight As Long Dim Path As String Path = "パスがここに入ります.png"'ここにPNG画像のパスが入ります。 If strFile = "False" Then Exit Sub End If Set sp = ActiveSheet.Shapes.AddPicture( _ Filename:=Path, _ LinkToFile:=False, _ SaveWithDocument:=True, _ Left:=0, _ Top:=0, _ Width:=0, _ Height:=0 _ ) With sp .LockAspectRatio = msoTrue .ScaleHeight 1, msoTrue .ScaleWidth 1, msoTrue pWidth = CLng(.Width * 4 / 3) pheight = CLng(.Height * 4 / 3) .Delete End With MsgBox "横:" & pWidth & vbLf & "縦:" & pheight End Sub
画像のプロパティで確認すると、155×211ですが、最後のMsgBoxでは「幅68 縦92」と表示されます。
比率を調べると、縦、横共に2.279・・・・ となるのですが関連性がわかりません。
プロパティで表示されているピクセルと、コード中でのピクセルは異なるものなのでしょうか。
サイトの上部には「ピクセル数を取得する方法について・・・」とあるので、「.Width * 4 / 3」でピクセル数になっているとは思うのですが。
原因、対策についてご助言いただければと思います。
よろしくお願いします。
回答3件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2020/10/24 13:55