ここから本文です

A1セルに入力されている番号と同じファイル名の画像を挿入するVBAについて ある...

s2d********さん

2017/7/719:06:54

A1セルに入力されている番号と同じファイル名の画像を挿入するVBAについて

あるフォルダに、画像ファイルが500個ほど入っています。
ファイル名はすべて10ケタの数字となっています。

それをエクセルのA1セルに入力された値と一致した画像を
C3セルに挿入したいのです。(サイズ等は自分で調整します。)

どういったコードになるのでしょうか。
申し訳ございませんが、よろしくお願いいたします。

この質問は、活躍中のチエリアン・専門家に回答をリクエストしました。

閲覧数:
100
回答数:
2
お礼:
250枚

違反報告

ベストアンサーに選ばれた回答

プロフィール画像

カテゴリマスター

lin********さん

リクエストマッチ

2017/7/814:13:09

Sub Sample()
fn = "D:\" & Range("A1").Value & ".jpg"
With Range("C3")
Set p = .Parent.Shapes.AddPicture(Filename:=fn, LinkToFile:=False, SaveWithDocument:=True, Left:=.Left, Top:=.Top, Width:=.MergeArea.Width, Height:=.MergeArea.Height)
End With
End Sub

簡単な説明です。

fn = "D:\" & Range("A1").Value & ".jpg"

まず、私の環境で、「D:\」としていますが、ここは、質問者の環境に合わせてください。

今は、「D:」ドライブのセル「A1」に書き込まれている値+「.jpg」のファイルのファイル名を「fn」に代入しています。

With Range("C3")

いっぱい、「Range("C3")」を使うので、「With」しておきます。

この「With」とは、今回の場合でしたら、「Range("C3").~」と記述しなくても、「.~」と記述するだけで、「Range("C3")」が記述されているのと同じなります。

Set p = .Parent.Shapes.AddPicture(Filename:=fn, LinkToFile:=False, SaveWithDocument:=True, Left:=.Left, Top:=.Top, Width:=.MergeArea.Width, Height:=.MergeArea.Height)

まず、「.Parent.Shapes.AddPicture()」が、セルに画像を挿入するのですが、頭が「.」ですので、実際には、「Range("C3").Parent.Shapes.AddPicture()」と記述していることになります。

この「()」内のいろいろな設定を省略することができないので、すべて記述しなければなりません。

もちろん「Filename:=fn」は、ファイル名です。

「LinkToFile:=False」は、見ていただければ分かるように、リンクさせるかどうかで、今は、不要なので「False」としています。

「SaveWithDocument:=True」は、保存時に、画像も一緒に保存するかどうか出、これは、必要ですので「True」です。

「Left:=.Left」は、セルの左端、「Top:=.Top」は、セルの上からですが、それぞれ「.」がありますので「Range("C3")」が省略されています。

「Width:=.MergeArea.Width」は、セルの幅に合わせています。

「Height:=.MergeArea.Height」は、同じく、セルの高さに合わせています。

こちらも「.」があるように、「Range("C3")」が、省略されています。

あとは、手作業でされる、ということで、マクロとしては、ここまでですが、縦横の比を戻される場合は、セル内の画像を右クリックから「サイズとプロパティ」を選択して、画面右に現れた窓の「リセット」ボタンを押してください。

  • 質問者

    s2d********さん

    2017/7/1111:23:33

    ありがとうございます。画像の挿入に成功しました!
    ただ、貼りつけられた画像なんですが、画質がすごい悪くなって
    いるんです。画質はどうにもならないのでしょうか?

  • その他の返信(1件)を表示

返信を取り消しますが
よろしいですか?

  • 取り消す
  • キャンセル

質問した人からのコメント

2017/7/12 09:10:00

画質の件は失礼いたしました。
ありがとうございました。

ベストアンサー以外の回答

1〜1件/1件中

tao********さん

2017/7/720:45:32

これで引数にファイル名渡すだけでしょう。
https://www.moug.net/tech/exvba/0120020.html

あわせて知りたい

みんなで作る知恵袋 悩みや疑問、なんでも気軽にきいちゃおう!

Q&Aをキーワードで検索:

Yahoo! JAPANは、回答に記載された内容の信ぴょう性、正確性を保証しておりません。
お客様自身の責任と判断で、ご利用ください。
本文はここまでです このページの先頭へ

「追加する」ボタンを押してください。

閉じる

※知恵コレクションに追加された質問は選択されたID/ニックネームのMy知恵袋で確認できます。

不適切な投稿でないことを報告しました。

閉じる