- ベストアンサー
Excelで該当の画像ファイル張り付るVBAは?
- Excelで雛形のシートを複製して名前を変更し、該当する画像を指定したセルに張り付けるVBAを教えて頂けないでしょうか?
- 現場写真というフォルダには、13枚の画像があります。雛形のエクセルシートに現場写真というシートを複製し、13枚の画像を指定したセルに張り付けたいです。
- 画像を張り付ける場所は、一枚目をA1、二枚目をA46、三枚目をA91と指定しています。
- みんなの回答 (4)
- 専門家の回答
質問者が選んだベストアンサー
淡々と。 sub macro1() dim myPath as string dim myFile as string dim a as variant, b as variant ’初期化 a = array("","A1","A46","A91") mypath = "C:\不明の場所の\現場写真\ 'または 'mypath = thisworkbook.path & "\現場写真\" on error goto errhandle ’画像ファイルの調査開始 myfile = dir(mypath & "*.jpg") do until myfile = "" b = split(myfile, "-") worksheets(b(0)).activate ’画像の挿入 with activesheet.pictures.insert(mypath & myfile) .top = range(a(val(b(1)))).top .left = range(a(val(b(1)))).left ’.width = 指定無し ’.height = 指定無し end with myfile = dir() loop exit sub errhandle: ’シートの複製 worksheets("現場写真").copy after:=worksheets(worksheets.count) activesheet.name = b(0) resume end sub
その他の回答 (3)
- jcctaira
- ベストアンサー率58% (119/204)
No.2です。 > With Application.FileSearch の部分が黄色くなってしまいうまく機能しませんでした。 EXCEL2003までは問題なく動きます。 多分EXCEL2007かEXCEL20010を使用していると思います。 正直かなり便利なコマンドでしたが、NO.1のkeithinさんのようにDIR()関数か 「Scripting.FileSystemObject」クラスに変更する必要があります。 すでに解決しているようなので、今回は省略させて頂きます。
- 某HN クロメート(Chromate)(@CoalTar)
- ベストアンサー率40% (705/1742)
VBAは苦手なので、こんなファイルを使っています http://lonewolf.chu.jp/
お礼
アドバイスありがとうございます。 こういうのがあるの知りませんでした。 大変参考になりました。
- jcctaira
- ベストアンサー率58% (119/204)
redcurbさん こんにちは。 以下のプログラムでできると思います。 お試しください。 Sub 画像セット() Const 検索フォルダ = "C:\現場写真" Dim I As Long Dim F As Long Dim 写真名 As String For I = 13 To 15 写真名 = "現場写真" & I Sheets("現場写真").Copy After:=Sheets(Sheets.Count) ActiveSheet.Name = 写真名 With Application.FileSearch .NewSearch .SearchSubFolders = True ''サブフォルダも検索する .LookIn = 検索フォルダ .Filename = 写真名 & "*.jpg" .Execute For F = 1 To .FoundFiles.Count Cells((F - 1) * 45 + 1, "A").Select ActiveSheet.Pictures.Insert (.FoundFiles(F)) Next F End With Next I End Sub
お礼
アドバイスありがとうございます。 With Application.FileSearch の部分が黄色くなってしまいうまく機能しませんでした。
お礼
アドバイスありがとうございます! 素晴らしい!完璧です!凄すぎます! 自分も勉強してこういうのができるようになりたいです。 勉強するのに何か良いサイトや本があるのでしょうか?