• 締切済み

エクセルVBAで、フォルダ内の全画像とファイル名を挿入したいのですが・・・

教えてください。 エクセル2003を使用しています。 写真帳を作成するにあたり、フォルダ内の画像(jpg)をA4用紙にタテ3枚づつ配置し、そのファイル名をそれぞれの写真のヨコのセルに表示させたいのですが、マクロを教えてください。 ※可能であれば挿入する写真の大きさを当方にて任意に変えられるよう、マクロのどの部分が大きさ指定なのかも分かれば幸いです。  (すみません、マクロ素人なもので・・・) ※挿入した写真は最背面表示になっていると幸いです。

みんなの回答

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

過去に数回似た質問があって、答えました。 これはマクロに記録をとって修正すればできます。 (1)挿入ー図ーファイルからの繰り返しになるが、VBAで繰り返し実行はどういうコードになるか。 (2)ツールー「新しいマクロの記録」状態にして3枚の写真をシートの別場所にとりこみ、記録終了後ツールーマクローマクロー編集でコードを出し、印刷して、3つのどこの部分が変わっているか、1言1句洗い出すこと。そして第4の場合はどうなるか予想を立てられるようにすること。 また写真を動かしたり、拡大縮小の操作をマクロの記録にとって応用を考えるのも良い。 今回は1シート上に写真を並べる、で我慢しては。 マクロの記録は ActiveSheet.Pictures.Insert( _ "C:\Documents and Settings\XXX\My Documents\My Pictures\P1010039.JPG").Select >VBAで繰り返し実行はどういうコードになるか。 は手っ取り早いのは、 A列に画像名を入れておいて(10枚の場合) For i=1 to 10   ActiveSheet.Pictures.Insert( _ "C:\Documents and Settings\XXX\My Documents\My Pictures\" & cells(i,"A") & ".JPG").Select  '(写真のシート上の位置決めのコード。略) End Next i 写真の位置は、LEFT、TOP,Height、Widthの4要素で決まるが、 i番目の写真の場合は,どういう式(iを使った)になるか代数的に式を編み出すこと。>タテ3枚づつ配置、に関係する。 ーー 上記以外にも沢山つまずかないかなという点はあるが、付き合いきれない。自分で勉強すること。 >マクロ素人なもので・といって、回答者に全部書かせるような質問だ。

関連するQ&A

  • エクセルVBAで、画像の挿入をしたいと思っています。

    エクセルVBAで、画像の挿入をしたいと思っています。 シート名は左から まとめ、A、B、C、まとめ(1)、A(1)、B(1)、C(1)、まとめ(2)、A(2)、B(2)、C(2) と、あるとして、任意のフォルダの中にある画像(*.jpgが9枚)を昇順でひとつずつA、B、C、A(1)、B(1)…C(2)シート(まとめ以外のシート)の指定のセルに貼付けられないかと考えています。 画像の名前は任意で、001.jpgはA、002.jpgはB、…009.jpgはC(2)と画像は昇順に、シートは左からというルールは変わらないとして、どのようにVBAを組んでいけばよいでしょうか。 どうぞご教授お願いします。

  • エクセル2010 挿入画像の圧縮 VBA

    お世話になります。 エクセル2010を使用しています。写真帳を作成しダブルクリックすれば写真が挿入されるようVBAにて作成しましたが、写真の解像度が高いので挿入するたびに画像が圧縮するようにVBAを組みたいのですが、どなたかご教示ください。 具体的には一同挿入した画像を一度コピーし、再度貼り付ける・・・という動作かなと考えているのですが、マクロの記憶では記録されず・・・困っております。 現在の写真帳の構文は Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Excel.Range, Cancel As Boolean) Dim myF As Variant Dim mySp As Object Dim myAD1 As String Dim myAD2 As String Dim myHH As Double Dim myWW As Double Dim myHH2 As Double Dim myWW2 As Double '挿入のセルを指定 If Application.Intersect(Target, Range("d6,d23,d40")) Is Nothing Then Exit Sub Cancel = True Application.ScreenUpdating = False End If '写真挿入 Next myPic = Application.GetOpenFilename("画像ファイル,*.jpg;*.jpeg;*.gif;*.tif") If myPic = False Then MsgBox "画像を選択してください" Exit Sub End If Set myRange = Target 'このセル範囲に収まるように画像を縮小する Application.ScreenUpdating = False With ActiveSheet.Shapes.AddPicture(myPic, False, True, myRange.Left, myRange.Top, myRange.Width, myRange.Height) rX = 0.85 rY = 1 If rX > rY Then .Height = .Height * rY Else .Width = .Width * rX End If .Left = .Left + (myRange.Width - .Width) / 2 '写真を横方向の中央に配置 .Top = .Top + (myRange.Height - .Height) / 2 '写真を縦方向に中央に配置 .ZOrder msoSendToBack '最背面へ移動 End With Application.ScreenUpdating = True Cancel = True End Sub 上記に.CUT などを書き足せばよいのか・・・ →エラーばかりで動かなったので。。  こちらに質問することにしました。 どうぞ、よろしくお願いします。

  • エクセルでの画像挿入

    エクセル(2003)で画像を挿入した際に その画像の右のセルにファイル名も入れたいのですが このようなマクロがあれば教えていただきたいです それと上記のとは別に画像にポインタを会わせた時に ファイル名をその場かもしくは どこかに表示させることは可能ですか? それと既に挿入してしまった画像のファイル名を知ることは可能ですか? あまりマクロには詳しくないので 分かりやすいとありがたいです

  • excelにて。VBAで、フォルダ内の画像を一覧の横に表示させたい。

    excelにて。VBAで、フォルダ内の画像を一覧の横に表示させたい。 過去、似たような質問があり、ここに書かれているVBAを試したところ、やりたい事とかなり近かったです。 http://okwave.jp/qa/q2880877.html しかしコレの場合、ある一つのセルへの入力に対して、一つの画像を表示する、といった形になっています。私がやりたいのは、さらに以下のようなことです。 1.あるシートのA列に、画像名の一覧がある。(マックス500行程度) 2.マクロを実行すると、A列と同名の画像が、あるフォルダから呼び出されてB列に表示される。  (A2と同名の画像がB2へ、A3と同名の画像がB3へ、ということ) ※参照フォルダは固定でOKです。 ※表示サイズはサムネイル程度の小さなものでOKです。前述リンク先のVBAのように、任意指定できれば尚可。 前述のリンク先にあるVBAを自分で書き換えられればよいのですが、どうすればセルを可変にできるのかわかりません。(それとも下方向に向けて反復するといった形に書き換えるんですかね??) 当方はVBAできません。ネットで拾ったものをコピペして使っているレベルです。 バージョンは2002です。よろしくお願いいたします。

  • VBAなどでファイル名の入力で、特定のフォルダから画像を挿入する。

    VBAなどでファイル名の入力で、特定のフォルダから画像を挿入する。 お世話になります。 当方、エクセル少々、アクセス初心者、VBAはこれから勉強です。 環境 windows xp pro sp3 アクセスやエクセルで作った伝票に、製品のイラストを載せたいと考え 特定のフォルダにある画像ファイルと同じファイル名を入力すると、 その画像をシートやレポートのきまった場所に ちょうどいい大きさに自動的に挿入してくれることを 希望しています とりあえず、できるかできないか、ということと、 検索も、どの言葉で検索していいのかわからなかったので、 簡単に何を使ってやるのかなど、教えていただけたら幸いです。 また、他のソフトなどでも、いい方法があったらよろしくお願いします。

  • エクセルマクロ画像挿入について

    はじめまして。 マクロ全くの初心者です。 詳しい方、優しく教えていたたげると幸いです。 エクセル2010または2013でマクロを作成したいと思っています。今までマクロの作成は自動保存?マクロ記録→マクロ記録終了のボタンを使って条件付き書式等しか作成したことがありません。 今回は ピクチャの中のデジカメの画像を、選択したセルに挿入し、サイズを変更したいです。 他社から送られてきたデータにマクロが設定してあり、そのようにしたいです。 挿入したいセルをクリック→マクロの設定されているボタンをクリック→ピクチャが開く→挿入したい画像を選択→選択したセルに画像が挿入され同時にサイズも変更される 自分で少しやってみたのですが、画像を選べません(記録した時の画像が挿入されてしまう)。 ボタンの挿入方法は大丈夫です。 他の方の質問も参考にしたのですがうまくいかなくて、、、どうしたらいいかわかりません。 是非ご教授ください。 よろしくお願い致します。

  • エクセルに写真を挿入するVBA

    エクセルで写真集を作るためのVBAですが、以下のVBAでは画像がリンク貼り付けになってしまいます。どうしたらエクセルファイルに画像を貼りこみで保存できるのでしょうか? よろしくお願いいたします。 やりたいことは、まずダブルクリックでダイアログボックスを表示させ、挿入したい写真を選択、写真がセルに合わせた大きさに縮小、セルの中央に写真を配置。以上です。 Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, _                     Cancel As Boolean)   Dim PicFile As Variant   Dim rX As Double, rY As Double   '[ファイルを開く]ダイアログボックスを表示   PicFile = Application.GetOpenFilename( _             "画像ファイル,*.jpg;*.jpeg;*.gif;*.tif;*.png;*.bmp")   If VarType(PicFile) = vbBoolean Then Cancel = True: Exit Sub   Application.ScreenUpdating = False      '画像を挿入   With ActiveSheet.Pictures.Insert(PicFile)     rX = Target.Width / .Width     rY = Target.Height / .Height     If rX > rY Then       .Height = .Height * rY     Else       .Width = .Width * rX     End If     'セルの中央(横方向/縦方向の中央)に配置     .Left = Target.Left + (Target.Width - .Width) / 2     .Top = Target.Top + (Target.Height - .Height) / 2   End With      Application.ScreenUpdating = True   Cancel = True End Sub

  • Excel2003 マクロで図の挿入時のファイル名

    Excel2003を使用しています。 マクロを使用して以下の事をしたいと考えています。 (1):マクロ実行 ↓ (2):ファイル選択のダイアログボックス表示 ↓ (3):ファイル選択(画像ファイル。おもにjpg) ↓ (4):指定したセル(例:A3)に、(3)で選択した画像を挿入   :指定したセル(例:A2)に、(3)で選択したファイルのファイル名を挿入 なにとぞ、よろしくお願い致します。

  • ExcelのVBAでファイル名の変更

    こんにちわ。 写真というフォルダ内に以下のファイルがあります。 xxx_0001.jpg xxx_0002.jpg xxx_0003.jpg xxx_0004.jpg... Excelでこれらのファイルの名前を取得して表示し、変更してコマンドボタンを押せばファイル名を変更できるようにしたいのですが、可能でしょうか?

  • Excelで該当の画像ファイル張り付るVBAは?

    Excelで雛形のシートを複製して名前を変更し、該当する画像を指定したセルに張り付けるVBAを教えて頂けないでしょうか? 「現場写真」というフォルダ内に、下記の画像が入っています。 ・ 現場写真13-1.jpg ・ 現場写真13-2.jpg ・ 現場写真14-1.jpg ・ 現場写真14-2.jpg ・ 現場写真15-1.jpg ・ 現場写真15-2.jpg ・ 現場写真15-3.jpg 雛形のエクセルシートに「現場写真」というシートがあり、そのシートを複製し、シート名を「現場写真13」、「現場写真14」、「現場写真15」に変えて該当の写真を張り付けたいのです。 (雛形のシートの複製が難しいなら、新規シートを作成して、名前を変えるのでもOKです。) 張り付ける場所は、一枚目をA1、二枚目をA46、三枚目をA91にしたいです。(一枚目以外は、前の画像から2行あいた位置に入ればOKです) アドバイスよろしくお願いします。

専門家に質問してみよう