- 締切済み
エクセルのマクロ
エクセルに画像を貼りつけるマクロを教えてください。 エクセルにたくさんの数字が入っています。 その数字と同じファイル名の画像を貼りつけたいです。 数字は何度も同じものが出てくるので、エクセルのシートに入っている数字すべてに張り付けたいです。 よろしくお願いいたします。
- みんなの回答 (3)
- 専門家の回答
みんなの回答
- imogasi
- ベストアンサー率27% (4737/17069)
コアな部分は、マクロの記録を取ればわかる。 開発ーマクロの記録ーマクロ名は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)
画像がどのフォルダに入っているのか、画像名がシートのどのセルに入っているのか、画像名はどのような形で入っているのか(拡張子は付いているのか)、複数のシート・ブックに対して行いたいのか、不明な点が多いので、そのままずばりのコードは書けません。 一応、参考になるだろうコードを下に書いておきます。 ファイル名が入ったセル範囲やパス名、ファイル名等を適宜変更して下さい。 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)
ツッコミどころ満載の質問です。 >数字と同じファイル名の画像を貼りつけたい 何処のワークシートに画像を挿入 ? 何処の位置に画像を挿入しますか ? 画像のサイズは? (オリジナルサイズ? リサイズした画像 ? サイズは全て同じサイズ ?) もう少し具体的な条件などを明らかにしたほうがイメージしやすい。