Quantcast
Channel: いつも隣にITのお仕事
Viewing all articles
Browse latest Browse all 2097

エクセルVBAで画像ファイルをシートに追加するAddPictureメソッドの使い方

$
0
0

excel,vba,shapes,addpicture,object,eyecatch

皆様こんにちは、ノグチです。

エクセルVBAで画像を操作しちゃおう!ということで、前回記事ではその第一歩として、Shapeオブジェクトとは?とShapeオブジェクトで操作できるオートシェイプやグラフなどをご紹介しました。

エクセルVBAで画像やオートシェイプなどを操作するShapeオブジェクトのはじめの一歩
エクセルVBAで、オートシェイプや画像などを操作するための第一歩として、Shapeオブジェクトのご紹介をしています。Shapeオブジェクトを使えば、画像をシートに追加したり、移動、コピー、削除などの操作ができるようになりますよ。

今回は、ShapesコレクションのAddPictureメソッドを使って、画像ファイルをエクセルに張り付ける方法をご紹介します!

Shapes コレクションとは

「Shapesコレクション?『s』がついているけど、shapeオブジェクトと何が違うの?」と思われた方、鋭い。

Shapesコレクションはシート上にあるShapeオブジェクト全てを指すものです。

それに対して、Shapeオブジェクトはシート上にあるオブジェクトのひとつ、単体を指すものです。

sがあるかないかの違いなのですが、役割や使えるメソッドが違いますので、注意が必要です。

シート上のShapesコレクションは、WorksheetオブジェクトのShapesプロパティで取得することができます。

Worksheetオブジェクト.Shapesプロパティ

AddPictureメソッドとは

さて、画像ファイルをエクセルに追加するには、ShapesオブジェクトのAddPictureメソッドを使います。

このメソッドは、画像をエクセルに追加するためのメソッドです。

AddPictureメソッドの記述方法はこちら。

Worksheetオブジェクト.Shapesコレクション.AddPictureメソッド

そしてこのメソッドはパラメータが7つあり、すべて指定する必要があります

それぞれ指定する内容がこちら。

パラメータ 指定する内容
Filename エクセルに追加したい画像ファイルを指定します。
LinkToFile True又はFalseで指定します。追加した画像ファイルにリンクを張ってエクセルを起動するたびに画像ファイルを読み込むか(False)、指定した画像をコピーしてエクセルに張り付けるか(True)を指定します。
SaveWithDocument True又はFalseで指定します。画像ファイルをエクセルと一緒に保存するか(True)、画像ファイルへのリンク情報だけを保存するかを指定します。
Left 画像ファイルの左上にあたる位置を、ポイントで指定します。
Top 画像ファイルの上にあたる位置を、ポイントで指定します。
Width 画像ファイルの幅を指定します。
Height 画像ファイルの高さを指定します。

これらパラメータをすべて指定するには、こういう感じで記述します。

Worksheets(1).Shapes.AddPicture _
Filename:="C:\Users\user\Desktop\画像.png", _
      LinkToFile:=True, _
          SaveWithDocument:=True, _
          Left:=330, _
          Top:=40, _
          Width:=100, _
          Height:=80

AddPictureメソッドで画像を表示する

では、実際にこのメソッドを使って、エクセルに画像を表示してみましょう。エクセル,vba,shapes,請求書,画像

請求書の右上にある日付の下に、 会社ロゴを張り付けてみます。

会社ロゴとして使う画像ファイルは、請求書と同じフォルダに格納しています。

エクセル,vba,shapes,請求書,画像,ロゴ

請求書にロゴを表示するためのコードがこちら。

Sub 画像追加()
Dim shpPic As Shape
Dim strPath As String
    strPath = "C:\Users\user\Desktop\請求書\ロゴ.png"
    Worksheets(1).Shapes.AddPicture _
                Filename:=strPath, _
                LinkToFile:=False, _
                SaveWithDocument:=True, _
                Left:=330, _
                Top:=40, _
                Width:=100, _
                Height:=80
End Sub

このコードを実行してみると…

この通り、画像ファイルが読み込まれて請求書にロゴが表示されました!

エクセル,vba,shapes,請求書,画像,ロゴ,貼付

 

まとめ

今回は、AddPictureメソッドで画像ファイルをエクセル上に張り付ける方法をご紹介しました。

手動の場合、画像の追加は簡単なんですが、サイズや場所の調整が結構面倒なんですよね。

1回こっきりのエクセルツールならまだしも、何度も使うような帳票などで毎回画像の調整なんてやっていられません。

そんな時には今回ご紹介したAddメソッドを使って、マクロに任せてしまいましょう!

それでは、最後までお読みいただきありがとうございました!

連載目次:エクセルVBAで図形を操作するShapeオブジェクトの使い方

画像、オートシェイプ、グラフ、テキストボックス、ワードアート、ボタン…エクセルでは様々なものをシートに配置できますが、これらのアイテムは全てShapeオブジェクトです。これら、Shapeオブジェクトの挿入や配置など、自在に操作する方法をお伝えしていきます。
  1. エクセルVBAで画像やオートシェイプなどを操作するShapeオブジェクトのはじめの一歩
  2. エクセルVBAで画像ファイルをシートに追加するAddPictureメソッドの使い方

Viewing all articles
Browse latest Browse all 2097

Trending Articles



<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>