人生最悪の忘れ物

エクセルに画像を貼付け縮小する作業をマクロにしたいのですが、
分からない部分があって困ってます。

(1)挿入したいセルにカーソルを合わせる
(2)マクロ
 挿入-図-ファイル-図の挿入-図の書式設定-サイズ-30%

この作業を覚えさせると以下になりました。

Sub Macro3()
ActiveSheet.Pictures.Insert("C:\Documents and Settings\デスクトップ\1.JPG") _
.Select
Selection.ShapeRange.LockAspectRatio = msoTrue
Selection.ShapeRange.Height = 360#
Selection.ShapeRange.Width = 480#
Selection.ShapeRange.Rotation = 0#
End Sub

これだと、写真が指定されてしまいます。
マクロの途中で止まって任意の写真を都度選べるようにできますか?
膨大な量の写真をセルに並べていきたいのです。

A 回答 (3件)

私も画像の取り込みでマクロをいじった経験があります。


こういうのはどうでしょう?(今動作確認できないのですが…)

Sub test()
ActiveSheet.Pictures.Insert(Application.GetOpenFilename).Select
Selection.Height = Selection.Height * 0.3
Selection.Width = Selection.Width * 0.3
End Sub
    • good
    • 7
この回答へのお礼

上手くいきました!ありがとうございました。
他の回答者様もありがとうございました。

お礼日時:2010/04/27 23:45

ダイアログを出してファイルを指定するようにしてみます。



sub macro3()
 dim s
 s = application.getopenfilename(title:="画像を選択", multiselect:=false)
 if s = false then exit sub
 ActiveSheet.Pictures.Insert(s) _
 .Select
 以下は同じ

end sub
    • good
    • 2

うーん それよりも30%になるように 解像度を予め変更する(pixelではなくdpi) っていうのを纏めて他のソフトでやって それをエクセルに取り込む形の方が良くない?



あと自分なら 面倒だからそのマクロ「に」ファイルリストを置換して実行しちゃうかな。。。(テキストエディタで)


まぁ そういうやり方も有るって言う参考程度に。

この回答への補足

早速の回答ありがとうございます。
貼り付けた画像を後に200%表示にして細かい部分も見ることもあるので
解像度を変えず取り込んでから縮小しています。
ファイルリストを置換して実行とはどういうことでしょうか?
すみません、詳しく教えてくださいませんでしょうか。

補足日時:2010/04/27 23:26
    • good
    • 1

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

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


おすすめ情報