壮年エンジニアpothのひとりごと

壮年エンジニアpothが適当に思い付いたことをつぶやきます。最近始めた株とかプログラム(VBAとかC#)とかが多くなるかな

【エクセルVBA】画像をエクセルに貼るマクロ1

こんにちはpothです。

はじめての記事は、エクセルVBAを使ってエクセルファイルに写真とかの画像をペタペタ貼り付けるマクロの紹介です。

実験とかで結構たくさん写真を撮ることがあるのですが、それをエクセルで編集したいと思ったら結構な手間なんです。

例えば、条件が3つあって2枚ずつ写真を撮ったとします。

f:id:daigorochang:20180225172913j:plain

これをエクセルに貼り付けようとすると、 

f:id:daigorochang:20180225172935j:plain

こんな感じになります。

ここから、「サイズ変更」⇒「きれいに並べる」⇒「写真の説明」ってしていくとそれだけで結構大変です。

今回写真が6枚しいかないですが、それが20枚とか、100枚とかになるともうパニックです。並べてるうちに「どの写真がどの条件だっけ?」とかなります。

これを楽にするマクロです。完成形はこんな感じ

f:id:daigorochang:20180303120512j:plain

エクセルのセル何行分のサイズにするか指定し、画像を貼り付ける列を指定します。その2つのパラメータを入力して、ボタンを「ポチっ」

すると、フォルダーの選択画面になるので貼りたい画像が保存されているフォルダーを選択すると、全部自動で貼り付けてくれます。またファイル名も下に書くようにしています。

上の画像は2列で8セル分のサイズにしてます。3列で3セル分にするとこんな感じ

f:id:daigorochang:20180303121353j:plain

ただ画像をそのまま貼り付けるので、写真などの重いデータを大量に貼るとエクセルが非常に重くなるので、あらかじめフリーソフトでデータを軽くしておきます。おすすめは「縮小専用」

forest.watch.impress.co.jp

具体的なコードはぼちぼち書いていきます。