エクセルのVBAを使用してバラバラだった画像のサイズをワンクリックで指定のサイズに変更する方法のご紹介です。
指定のサイズに一括変更された画像の完成イメージ
写真台帳を作成する場合などを想定し、画像を複数並べて指定のサイズに変更され整った書類が簡単に作成される。
あらかじめ準備しておくこと
写真を張り付けるためのベースとなる台帳(テーブル)を作成
印刷をする場合は、印刷するベースのサイズや挿入したい写真のサイズにも気を付けながらレイアウトを考えて作成すること。
画像は、あらかじめ複数挿入しておくと作業がより早くなります。
今回は、A4縦ベースで作成しました。
画像サイズを変更するVBAを作成
画像サイズを一括で変更するためのVBAを作成します。
クイックアクセスツールバーの下にある開発タブをクリック
このとき、タブの中に開発タブが表示されていない場合は、以下の手順で表示させましょう。
1.クイックアクセスツールバーの右端にある下向き矢印を選択
2.その他のコマンドを選択
3.リボンのユーザー設定からメイン タブの中にある「開発」にチェックを入れてOKをクリックする。
開発タブをクリックした後、リボンに表示されているVisual Basicを選択します。
Visual Basic Editorが起動し別画面に表示されます。この中の挿入タブから標準モジュールを選択します。
さらに新しい画面が表示され、この表示された画面の中に以下のコードを入力します。
Sub 画像縮小()
‘28.34646は1cm
Selection.ShapeRange.Width = 28.34646 * 8.47
Selection.ShapeRange.LockAspectRatio = msoTrue
End Sub
この場合では、28.34646*8.47の部分が画像のサイズを指定し横幅が8.47cmで縦横比が固定されるようにしています。
Selection.ShapeRange.Width = 28.34646 * 8.47 が横幅を8.47cmで指定
ここで8.47を希望する横幅のサイズ(cm)に変更してください。
Selection.ShapeRange.LockAspectRatio = msoTrue で縦横比を固定
横幅が指定されているので、元画像から縦横比を固定してサイズ変更されます。
28.34646というのは、エクセルでの画像はポイントという単位で扱われるため、画像を72dpiで表示した場合、1cmを換算すると、28.34646ポイントとなるためです。
ワンクリックで使用するためのボタン作成
VBAが作成できたら次は、実行するためのボタンを作成します。
挿入タブから図形を選択し、任意の図形を選択します。(例では、長方形を選択しています。)
任意の場所へ図形を作成し、ボタンに名前をつけておきます。
ここでは、図形を右クリック→テキストの編集から文字入力して中央揃えにしています。
次に図形を印刷時に表示されないように設定しています。
図形を右クリック→サイズとプロパティを選択します。
図形の書式設定からプロパティのオブジェクトを印刷するのチェックを外す。
再度、図形を右クリック→マクロの登録を選択します。
マクロの登録画面から先ほど作成した画像縮小を選択し、OKをクリックします。
これで、ワンクリックで画像サイズが変更できるようになりました。
VBAを実行して画像のサイズを一括変更する
あらかじめ挿入しておいた画像を全て選択(Ctrlを押しながら画像をクリック)します。
サイズ変更したい画像を全て選択した状態で先ほど作成したボタンをクリックする。
選択していた画像のサイズが指定したサイズに縦横比が固定されたまま一括変更されます。
画像をキレイに並べる
画像を選択した状態のまま
図の形式→配置→枠線に合わせるを選択する。
枠線に合わせるを有効にすることで、セルの枠線に画像の端がピッタリと合うようになり、きちんとした印象になります。
あらかじめ作成しておいた台帳(テーブル)の任意の箇所へドラッグして配置する。
以上で完成です。
画像が複数枚あるときは一度にサイズ変更すると時短につながります。
VBAを登録したエクセルファイルの形式はxlsmになります。保存する時には、気を付けるようにしましょう。
最後に、印刷プレビューでみるとこのようになります。
VBAを実行するボタンは、印刷時には表示されません。