• 締切済み

エクセルのマクロ

エクセルに画像を貼りつけるマクロを教えてください。 エクセルにたくさんの数字が入っています。 その数字と同じファイル名の画像を貼りつけたいです。 数字は何度も同じものが出てくるので、エクセルのシートに入っている数字すべてに張り付けたいです。 よろしくお願いいたします。

みんなの回答

  • imogasi
  • ベストアンサー率27% (4737/17069)
回答No.3

コアな部分は、マクロの記録を取ればわかる。 開発ーマクロの記録ーマクロ名はMacro1になるが、そのままで「OK」。 シートで挿入ー画像―画像ファイルを指定ー挿入 でシートに指定画像が挿入される。 シート画面で、開発ーマクローMacro1を指定ー編集 コードは、 Sub Macro1() ' ' Macro1 Macro ' ' ActiveSheet.Pictures.Insert("C:\Users\??\Pictures\XXXXXXXXXXXXxxxxx.JPG").Select End Sub のようになる。これの( )内のファイル名の終りの部分を、多分、セルの数字と関連させて変えて、繰り返し処理(For Next利用)すればよいと推察する。  それを2-3個のファイルで繰り返して、ファイル名の部分の終りの部分で、少し変化している箇所に注目して、どう変化するのか、文章で表現してみること。 そして、行き詰まった箇所を中心に質問するならやむを得ないが。 何のことを言っているかわからないようなら、VBAでやるのは早すぎるということ。 ーー 丸写しで済む、VBAのコードを回答者に作らせようにも、シートのデータ(数字らしい)のあり様(行と列が判るように)の例示と、ファイル名の変化の仕方の例が、回答者に、わからないと、完成形のコードは、誰にも書きようがない、はず。 その他に写真の表示位置を、シート上で、ずらして表示しないとならないが。 Selection.Top = 200 Selection.Left = 200 Selection.Width = 300 Selection.Height = 200 を加える。 そして、2つ目、3つ目・・は、これらをn番目という、nの数字から計算して 指定しないとならない。縦に1列に並べるならTOPの値は(nー1)*220 +200などと、やさしいが、多列なら、中学校の級数の知識が必要かと。 10-20個なら手動操作の方が早い。 VBAを少しやれるには、最少でも数か月の勉強が必要と思う。 サムネイル的に表示するのが目的なら、そういう出来合いのソフトを探したら。 エクセルは、写真表示ソフトとして、最適とは言えないと思う。

  • Mathmi
  • ベストアンサー率46% (54/115)
回答No.2

画像がどのフォルダに入っているのか、画像名がシートのどのセルに入っているのか、画像名はどのような形で入っているのか(拡張子は付いているのか)、複数のシート・ブックに対して行いたいのか、不明な点が多いので、そのままずばりのコードは書けません。 一応、参考になるだろうコードを下に書いておきます。 ファイル名が入ったセル範囲やパス名、ファイル名等を適宜変更して下さい。 Sub PasteImage()  Dim TargetPath As String  Dim TargetRange As Range  Dim myCell As Range  Dim myShp As Shape  TargetPath = "C:" '画像ファイルが入っているフォルダのパス。ThisWorkbook.Pathでもよいか?  Set TargetRange = Selection '貼り付けたい画像名が入力されているセル範囲。  On Error Resume Next '画像がない等エラーが出た時にスキップする。  For Each myCell In TargetRange   Set myShp = ActiveSheet.Shapes.AddPicture(Filename:=TargetPath & myCell.Value & ".png", _              LinktoFile:=False, SaveWithDocument:=True, _              Left:=0, Top:=0, Width:=0, Height:=0)   myShp.ScaleHeight 1, msoTrue   myShp.ScaleWidth 1, msoTrue   myShp.Left = myCell.Left + myCell.Width / 2 - myShp.Width / 2   myShp.Top = myCell.Top + myCell.Height / 2 - myShp.Height / 2  Next myCell  On Error GoTo 0 End Sub

  • NuboChan
  • ベストアンサー率47% (785/1650)
回答No.1

ツッコミどころ満載の質問です。 >数字と同じファイル名の画像を貼りつけたい  何処のワークシートに画像を挿入 ? 何処の位置に画像を挿入しますか ?  画像のサイズは?   (オリジナルサイズ? リサイズした画像 ? サイズは全て同じサイズ ?) もう少し具体的な条件などを明らかにしたほうがイメージしやすい。

関連するQ&A