- ベストアンサー
excelへの図の挿入とサイズ調整
こんばんは。 仕事でexcelシートに画像を多数(最大7枚前後)挿入することが 多いのですが、ここで 1枚1枚デジカメからのファイルを選択して挿入し、印刷している ような使い方をしています。 1. 1つのファイルごとでなく、複数のファイルをEXCELに一回で 挿入することはできますか? 2. 異なるサイズの画像ファイルがあるので、サイズを同じにするため サイズ変更をするのですが、このとき書式の「サイズ調整で○cm」と指定するのでなくマウスでのサイズ調整で複数いっぺんにサイズを変えることはできますか?たとえば一番小さい画像ファイルに調整サイズをあわせるといったことです。 (○Cmと指定すると自分のイメージしたサイズになりずらい) 3. EXCELシートを印刷するときに、EXCELシート上では紙のサイズ に合わせた点線 (印刷プレビューを1回行うと自動的に出てくる点線のことです) 内に文字を入れているのに印刷プレビューで見るとはみ出してしまうことがあるのはなぜでしょう?入力モードと、印刷のモードが異なるということなのでしょうか??印刷プレビューしないで印刷して困ることが多いです。以上、良い方法があったら教えてください。 よろしくお願いいたします。
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
↓のブックのコードが参考になると思います。 画像の一括挿入 http://www.geocities.jp/vbaxl/book/001.html
その他の回答 (1)
- imogasi
- ベストアンサー率27% (4737/17069)
仕事上のニーズに関することらしいので、十分に応えられるかどうか判りません。 下記をやってみてください。 Sheet2にA1:A6に sunset.jpg Blue hills.jpg Water lilies.jpg Winter.jpg Winter.jpg Winter.jpg と入れておきます。(最後の2つは手抜きで同じもの指定したが意味なし) C:\Documents and Settings\All Users\Documents\My Pictures\Sample Picturesにこれらの画像ファイルがあるものとします。 ツールーマクロ-VBE VBE画面で、挿入ー標準モジュールで出る画面に下記をコピーし、貼り付け。 一部プログラムを修正して(後部に詳記)、実行(PF5キーを押す)。 Sub test02() X = Array("A1", "C1", "E1", "G1", "A3", "C3") Dim cl As Range Worksheets("Sheet1").DrawingObjects.Delete For i = 0 To UBound(X) Set cl = Worksheets("Sheet1").Range(X(i)) 'MsgBox cl.Address pn = Worksheets("Sheet2").Cells(i + 1, "A") With Worksheets("Sheet1").Pictures.Insert( _ "C:\Documents and Settings\All Users\Documents\My Pictures\Sample Pictures\" & pn _ ) .Top = cl.Top .Height = cl.Height .Width = cl.Width .Left = cl.Left End With Next i End Sub (修正箇所) (1)現状はSheet1,Sheet2を使っており 実行後にSheet1に画像を表示する。 Sheet2のA列に画像のファイル名(拡張子つき)を入力しておきます。 (2)Sheet1に画像をセットするセルを上例では、1行目はA1,C1、E1、G1、2行目はA3,C3に指定してます。 隣とは1列、1行間隔をあけてます。 これらは任意のセルを指定してもかまいません。 X = Array("A1", "C1", "E1", "G1", "A3", "C3")に付け加える方法については、"H1"のように列記号と行番号を表示し、前後に””で囲んでカンマ区切りで、付け加えてください・ (3)セルのサイズですがA,C、E、G列は写真を表示したいサイズにそろえ、B,D、F列は間隔として適当と思う幅にしてください 。行高についても同じです。 (4)C:\Documents and Settings\All Users\Documents\My Pictures\Sample Picturesは本番では画像ファイルのあるフォルダの パス名で置き換えて、指定してしてください。 (5)シート名は、Sheet1が2箇所、Sheet2が1箇所ありますが、それぞれ、シート名で置き換えてください。前後に””が残るように””の中を変えてください。 (7)私サイドでは上記少数例では、うまく表示できます。 (8)もし上記がうまくいけば、将来、ボタンをSheet2に1つ設けて、画像ファイル名を入力し、クリックすると実行するようにできます。勉強してください。 ファイル名が、いつも連続した名前になっている場合、オートフィルで実現できないか考えてください。 質問者側で、さてうまくいきますでしょうか。 印刷した結果との問題は手探りでサイズや配置調整をお願いします。 VBAでは難しくなりそうなのでご勘弁願いたい。
お礼
ファイル名は毎回微妙に変わる(デジタルカメラに入っている枚数が そのつど異なる)ため、ファイル名***123.jpgとか、数字の部分が変わるのでファイル名をあらかじめ入れておくのは難しそうです。でも、いろいろ応用は利きそうですね。ありがとうございます。
お礼
ありがとうございます。 デジタルカメラから10枚弱画像を取り込み、 1枚1枚挿入していくのが面倒だったので・・・ これだとサイズも一定になりますし、なにより 整列して挿入されるのが使えそうです。 (普通に画像を挿入すると、画像同士重なってしまう) 贅沢いいますと、新しいブックではなく、 毎回ファイル名が変わるシート上に挿入できればなお よかったのですが。 さっそく使ってみようかと思います。