ExcelVBA(Windows)にて画像を挿入してサイズ変更をしますのに
Set P = LoadPicture(PicName)
がjpeg、gif(bmpも?)にしか対応していない関係で、pngの画像の
縦横サイズをゲットするのにこちら
https://vbabeginner.net/get-width-height-png/
を参考に書いてみました。
ここで、Windowsではjpeg、gif、pngの画像の縦横サイズをゲット
してリサイズ出来ましたけれど、MACではLoadPictureがありません
ので、上記サイトのpng画像のようにjpeg、gifもバイナリから
縦横サイズをゲットしたいと思っています。
何か参考となりますサイトがありましたら、教えて頂きたいと思います。
pos = InStrRev(PicID, ".")
ext = LCase(Mid(PicID, pos + 1))
If ext = "JPG" Or ext = "JPEG" Or ext = "GIF" Or ext = "jpg" Or ext = "jpeg" Or ext = "gif" Then
Set P = LoadPicture(PicName)
a_lWidth = P.Width
a_lHeight = P.Height
ElseIf ext = "PNG" Or ext = "png" Then
ReDim byData(23)
iFileNo = FreeFile
Open PicName For Binary As #iFileNo
Get #iFileNo, , byData
Close #iFileNo
If (byData(0) = 137) And (byData(1) = 80) And (byData(2) = 78) And (byData(3) = 71) And _
(byData(4) = 13) And (byData(5) = 10) And (byData(6) = 26) And (byData(7) = 10) And _
(byData(8) = 0) And (byData(9) = 0) And (byData(10) = 0) And (byData(11) = 13) And _
(byData(12) = 73) And (byData(13) = 72) And (byData(14) = 68) And (byData(15) = 82) Then
a_lWidth = byData(16) * 16777216 + byData(17) * 65536 + byData(18) * 256 + byData(19)
a_lHeight = byData(20) * 16777216 + byData(21) * 65536 + byData(22) * 256 + byData(23)
End If
End If
No.1ベストアンサー
- 回答日時:
こんにちは
MACに関しては全くわかりませんが、Shapes.AddPictureも使えませんか?
テキストファイルで読んで解析するよりも、画像を読み込んでからサイズを取得するほうが簡単だと思うのですが。
(読み込めるかどうかが不明ですけれど…)
以下は、元の画像サイズのまま一旦読み込んで、サイズを表示する例です。
(windows10ですが、jpgでもpngでも読み込めます)
filepath = "画像のパス"
Set s = ActiveSheet.Shapes.AddPicture(filepath, 0, 1, 100, 100, -1, -1)
MsgBox "height:" & s.Height & "pt" & vbCrLf & "width:" & s.Width & "pt"
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) 【VBA】写真の貼り付けコードがうまく機能しません。 5 2022/09/01 18:43
- PHP imageフォルダに、画像をリサイズして保存する時のファイル名を変更したい 1 2023/05/30 11:39
- Visual Basic(VBA) VBAの繰り返し処理について教えてください。 3 2022/08/02 13:21
- HTML・CSS PCサイズで赤い画像2つと、青い画像2つがそれぞれ横に2つずつ並んでいるのですが、これをスマホサイズ 5 2022/04/11 12:01
- Visual Basic(VBA) Excel vbaについての質問 3 2023/04/18 16:14
- JavaScript clear機能を失わずにファイルアップロード機能を作成したい 3 2023/06/10 16:12
- Visual Basic(VBA) エクセル VBA 難しいです 1 2023/02/21 15:39
- HTML・CSS CSSが効かずどのように指定すれば良いか分からないのでアドバイスお願い致します 2 2023/06/07 12:25
- 英語 下記はなんていってますか? こんにちは以降、訳していただけたら助かります。 Hello, We’re 1 2023/01/14 00:09
- Excel(エクセル) R列の1111/11/11以外、且つQ列の×の条件で該当行のAからAE列までオレンジに塗りつぶす 2 2022/07/02 10:18
このQ&Aを見た人はこんなQ&Aも見ています
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
ピクチャーボックスの大きさに...
-
教えてください。困ってます。D...
-
Powerpointに貼った画像のサイ...
-
複数の画像を1枚にしたファイ...
-
画像ファイルの縦,横サイズを取...
-
同盟用のバナーサイズ。
-
画像サイズが見る人の環境によ...
-
L字みたいな記号の表示
-
シーサーブログのヘッダー画像...
-
テーブルセル余白(例えば左側...
-
iPhoneで HTMLファイルを閲覧
-
PDFファイルが破損していると表...
-
HTMLタグ内文字を抽出するには
-
borderの太さを1px以下に見せ...
-
509エラー
-
ホームページビルダーで文字の...
-
画像転載について(URLをそのま...
-
縦ボーダーの長さ変更方法
-
ホームページ作成ソフトを変更...
-
レスポンシブWeb 右側の表示が...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
ピクチャーボックスの大きさに...
-
複数の画像を1枚にしたファイ...
-
Powerpointに貼った画像のサイ...
-
paintに貼り付けてある画像の大...
-
一行は何ピクセル?
-
ページサイズの目安は?
-
Dreamweaverで縦の区切り線あり...
-
楽天RMSについて
-
jQuery BoxerというLightBoxに...
-
動画のサイズ指定
-
ASP.NETで画像の高さと幅を取得
-
同盟用のバナーサイズ。
-
javaで画像のトリミングをする方法
-
画像サイズが見る人の環境によ...
-
DIRECTXのスプライト描...
-
教えてください。困ってます。D...
-
作成時に利用するPCの画面解像...
-
スマホ対応ウェブサイトの横幅...
-
ExcelVBAで挿入画像の縦横サイ...
-
フラッシュと音楽
おすすめ情報