「一気に最後まで読んだ」本、教えて下さい!

エクセルVBAで、画像の倍率を知るには、どのようにすればいいのでしょうか?
あるボタンを押したら選択されている画像の倍率を読み込みたいのですが、どのように書けばいいのかわかりません。selection.??? ではわからないのでしょうか? すみませんがどなたか教えて下さい!

A 回答 (2件)

記録できましたっけ?


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
    • good
    • 0
この回答へのお礼

返事が遅くなりスミマセンでした。
教えていただいた方法ですとトリムしたときに
倍率が上手く出ないような感じですが
大変貴重なご回答で解決しました
ありがとうございました。

お礼日時:2010/08/02 12:14

手動で倍率を変えてみて、それを「マクロの記録」してみましたか?


それで解るはずです。
    • good
    • 0
この回答へのお礼

返事が遅くなりスミマセンでした。
私の説明不足が原因で、ご回答いただいた内容は
求めていたものと少し違っていましたが
マクロの記録が出来るとは知りませんでした。
今後の作業では役立てていこうと思います。
ありがとうございました。

お礼日時:2010/08/02 12:17

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人はこんなQ&Aも見ています