Excel VBA質問箱 IV

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

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


24132 / 76732 ←次へ | 前へ→

【57953】Re:挿入した写真の原型のWeight / Width
発言  りん E-MAIL  - 08/9/23(火) 12:22 -

引用なし
パスワード
         Abebobo さん、こんにちわ。

>その写真の原型の Weight / Width の値を ローカルで探しましたが 取得の仕方がわかりませんでした。

シート上にある写真の情報をログにしてみました。

Sub test()
  Dim ws(1 To 2) As Worksheet, sh As Shape
  '
  Set ws(1) = Application.ActiveSheet '表示しているシート
  Set ws(2) = Application.Workbooks.Add.Worksheets(1) 'ログ取りシート
  '
  ws(2).Range("A1:F1").Value = Array("名前", "位置", "幅", "高", "元幅", "元高")
  NN = 1
  For Each sh In ws(1).Shapes
   If sh.Type = msoPicture Then
     NN = NN + 1
     ws(2).Cells(NN, 1).Value = sh.Name
     ws(2).Cells(NN, 2).Value = sh.TopLeftCell.Address & ":" & sh.BottomRightCell.Address
     ws(2).Cells(NN, 3).Value = sh.Width
     ws(2).Cells(NN, 4).Value = sh.Height
     '元の大きさ(100%)でサイズ取得
     sh.ScaleHeight 1, msoTrue
     sh.ScaleWidth 1, msoTrue
     ws(2).Cells(NN, 5).Value = sh.Width
     ws(2).Cells(NN, 6).Value = sh.Height
     '縮小後のサイズに戻す
     sh.Width = ws(2).Cells(NN, 3).Value
     sh.Height = ws(2).Cells(NN, 4).Value
   End If
  Next
  'おわる
  Erase ws
End Sub

こんな感じです(動作確認 XL2003およびXL2007 & WinXP)。
縮小率に関連するプロパティを見つけられなかったので、縮小を解除してサイズを取得しています。
「元のサイズを基準にする」にチェックがついていない状態で加工されていれば偽装されちゃいますけどね(ダイアログでは原型のサイズで確認できます)。
2 hits

【57952】挿入した写真の原型のWeight / Width Abebobo 08/9/23(火) 11:07 質問
【57953】Re:挿入した写真の原型のWeight / Width りん 08/9/23(火) 12:22 発言
【57954】Re:挿入した写真の原型のWeight / Width Abebobo 08/9/23(火) 12:48 お礼
【57955】Re:挿入した写真の原型のWeight / Width りん 08/9/23(火) 13:27 発言
【57956】Re:挿入した写真の原型のWeight / Width Abebobo 08/9/23(火) 13:35 お礼

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