エクセルに画像を張り付ける。大変そうな気がしますが、割合簡単です。
与える情報は、画像のあるパス名と張り付ける場所ぐらいなもんです。
ただし、画像は大きさが大きいので、縮小して表示することにします。(サイズの変更でも可能です)
セルにパス名を入れて置きそのセルを指定(複数可)してから実行です。
サイズは無条件に4分の1とします。
並べる位置を与えて多少間隔をあけて斜めに並べます。
同じマクロで追加処理も可能です。
手順です。
1.指定範囲の取得とパラメータの取得
2.画像の貼付け。同時に大きさを取得し大きさを縮小する
3.貼り付ける位置の指定
4.画像の整列
1.は定番ですね。パス名は path_name(100) としました。
2.画像の貼付けです
ActiveSheet.Pictures.Insert(path_name(i)).Select
2-2.大きさの縮小です
hig = Selection.ShapeRange.Height
wid = Selection.ShapeRange.Width
hig2 = Int((hig * ll025 / 100) * 4 + 0.5) / 4 'll025は25のこと
wid2 = Int((wid * ll025 / 100) * 4 + 0.5) / 4
Selection.ShapeRange.Height = hig2
Selection.ShapeRange.Width = wid2
※これをFor文で囲ってください。
3.貼付け先のセル範囲の設定。これもほとんど定番化しています。
Dim セル範囲 As Range
Range(AAA1).Select
Set セル範囲 = Application.InputBox(Prompt:="図形を並べる基準のセルを指定してください", Default:=AAA1, Left:=10, Top:=2, Type:=8)
aaa2 = セル範囲.Address
retu2 = Range(aaa2).Column
gyo2 = Range(aaa2).Row
4.画像の整列
6行、3列ずらしで整列しています。
j = ii9 + i
ActiveSheet.Shapes(j).Left = Cells(gyo2 + (i - 1) * ll006, retu2 + (i - 1) * ll003).Left 'll006は6のこと
ActiveSheet.Shapes(j).Top = Cells(gyo2 + (i - 1) * ll006, retu2 + (i - 1) * ll003).Top
※これをFor文で囲ってください。
※最初の段階で既存の図形数を取得しておいてください。
ii9 = ActiveSheet.Shapes.Count
【画像の貼付結果とパス名】

写真入りのレポートなどに使えますね。
説明文は…。いろいろまだ問題があります。
エクセルでは、ワードレベルのものが表せません。行間、文字間、文章の連続性などが弱いのです。

0 件のコメント:
コメントを投稿