質問: エクセルvbaで、画像の倍率を知るには、どのようにすればいいのでしょう エクセルvbaで、画像の倍率を知るには、どのようにすればいいのでしょうか? あるボタンを押したら選択されている画像の倍率を読み込みたいのですが、どのように書けばいいのかわかりません。selection.??? ではわからないのでしょうか? すみませんがどなたか教えて下さい!
回答: 記録できましたっけ? scalewidth|heightメソッドを使って元の大きさから計算して求めるのが近道だと思ってました。 sub test() dim ret if typename(selection) = "picture" then ret = fgetpicscale(selection) if isarray(ret) then msgbox "x:= " & ret(0) & vblf & "y:=" & ret(1) end if end if end sub function fgetpicscale(byref pic as picture) dim xy(0 to 1) as single dim w as single dim h as single dim lc as long on error goto errexit with pic.shaperange w = .width h = .height lc = .lockaspectratio .lockaspectratio = msofalse .scalewidth 1, msotrue .scaleheight 1, msotrue xy(0) = w / .width xy(1) = h / .height .width = w .height = h .lockaspectratio = lc end with fgetpicscale = xy errexit: end function