- ベストアンサー
Excel2002マクロについて
マクロで画像の情報を得たいのですが、どういったコマンドを入力したら画像情報をVBAに取り込めるでしょうか? 例えば、保存してある画像が横ならそのまま貼付、縦なら回転して貼付といったことをマクロでしたいので、画像の縦の長さ、横の長さをVBAに読み出したいのです。 よろしくお願いします。
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
保存してある画像を一旦、シート上に貼り付ければ簡単に分かるような気がしますが・・・ シート上の画像の名前、高さ、横幅、横位置、縦位置、セル位置を表示するようにしてみました。 ご参考に。(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
その他の回答 (1)
- nishi6
- ベストアンサー率67% (869/1280)
>その画像をクリックした段階で、縦長か横長かを判断できないでしょうか? 主旨がよく分からないので答えになっていないかもしれませんが・・・ 読み込んでいない画像の縦横の取得については分かりませんので、私なら、事前に対象ファイルを読み込んで情報をカタログ化しておいて、マクロで一括処理し易いよう考えるかもしれません。*.jpgとか拡張子で判別でき、順次、見えないシートに貼り付けて画像情報を取り込んでいけばたいした処理ではないように思えます。ただ、Excel97やExcel2000しか使っていないので、『画像の回転』がピンときませんね。 MougにExcelを使った画像管理がありましたのでご参考に・・・ Shapeを使って画像管理-UserPictureメソッド http://www.moug.net/cgi-bin/technic.cgi?exvba+TI12010013
お礼
ありがとうございます。 まだ使い慣れていないもので、どれが一番効率いい方法なのか?ということはまだまだわかりません。 とりあえず、できそうなことをやってしまっています。。 URLとても参考になります。 ただ、まだ初心者なので、理解するのに時間がかかりますが。。。 ありがとうございました。
お礼
ありがとうございます。 貼り付けてからですね。 これを、貼り付ける前から、情報を得るようにはできないでしょうか? 例えば、画像の挿入の次に、画像を選択しますが、その画像をクリックした段階で、縦長か横長かを判断できないでしょうか?