• ベストアンサー

Excel2002マクロについて

マクロで画像の情報を得たいのですが、どういったコマンドを入力したら画像情報をVBAに取り込めるでしょうか? 例えば、保存してある画像が横ならそのまま貼付、縦なら回転して貼付といったことをマクロでしたいので、画像の縦の長さ、横の長さをVBAに読み出したいのです。 よろしくお願いします。

質問者が選んだベストアンサー

  • ベストアンサー
  • nishi6
  • ベストアンサー率67% (869/1280)
回答No.1

保存してある画像を一旦、シート上に貼り付ければ簡単に分かるような気がしますが・・・ シート上の画像の名前、高さ、横幅、横位置、縦位置、セル位置を表示するようにしてみました。 ご参考に。(Excel2000です) 'シート上の画像を特定 Sub PicturePropertiesShow()   Dim pic As Shape   For Each pic In Worksheets("Sheet1").Shapes     getPictureProperties pic '画像情報を表示   Next End Sub '画像情報を表示(Sub) Sub getPictureProperties(myPic As Shape)   Dim picPrp As String   With myPic     picPrp = "画像名(Name):" & .Name     picPrp = picPrp & vbCrLf & "高さ(Height ):" & .Height     picPrp = picPrp & vbCrLf & "横幅( Width ):" & .Width     picPrp = picPrp & vbCrLf & "横位置(Left ):" & .Left     picPrp = picPrp & vbCrLf & "縦位置( Top ):" & .Top     picPrp = picPrp & vbCrLf & "セル(address):" & .TopLeftCell.Address   End With   MsgBox picPrp End Sub

noname#192965
質問者

お礼

ありがとうございます。 貼り付けてからですね。 これを、貼り付ける前から、情報を得るようにはできないでしょうか? 例えば、画像の挿入の次に、画像を選択しますが、その画像をクリックした段階で、縦長か横長かを判断できないでしょうか?

その他の回答 (1)

  • nishi6
  • ベストアンサー率67% (869/1280)
回答No.2

>その画像をクリックした段階で、縦長か横長かを判断できないでしょうか? 主旨がよく分からないので答えになっていないかもしれませんが・・・ 読み込んでいない画像の縦横の取得については分かりませんので、私なら、事前に対象ファイルを読み込んで情報をカタログ化しておいて、マクロで一括処理し易いよう考えるかもしれません。*.jpgとか拡張子で判別でき、順次、見えないシートに貼り付けて画像情報を取り込んでいけばたいした処理ではないように思えます。ただ、Excel97やExcel2000しか使っていないので、『画像の回転』がピンときませんね。 MougにExcelを使った画像管理がありましたのでご参考に・・・ Shapeを使って画像管理-UserPictureメソッド http://www.moug.net/cgi-bin/technic.cgi?exvba+TI12010013

noname#192965
質問者

お礼

ありがとうございます。 まだ使い慣れていないもので、どれが一番効率いい方法なのか?ということはまだまだわかりません。 とりあえず、できそうなことをやってしまっています。。 URLとても参考になります。 ただ、まだ初心者なので、理解するのに時間がかかりますが。。。 ありがとうございました。

関連するQ&A