質問: 新規ブック作成その後のファイル名取得について はじめまして。ken-zieです エクセル2003でvbにチャレンジし始めたんですが ブックの新規作成 ↓ 文字入力 ↓ 文字や、パターン等の書式設定 までは何とかできたのですが、 その後セルc7から下にネットワークドライブにある フォルダの中身のjpgファイルを拡張子込みの形式で 取得して表示したいと考えています。 が!ここで詰まってしまいました。 だれかご教授願いたいと思います。 できたらダイアログを使用してフォルダの中のjpgを 一括で取得できたらいいなぁ~と思っています。 よろしくお願いします。
回答: こんにちは。kenken_sp です。 dir関数とかfilesearchオブジェクトでファイル検索します。 参考: http://oshiete1.goo.ne.jp/kotaeru.php3?q=1744224 上記url の wendy02さんのものが参考になります。下記は wendy02 さんのものを ちょこちょこっとカスタマイズしたものです。 フォルダ選択ダイアログについて、ネットワークドライブが想定される場合、下記 のコードはやや物足りないかもしれません。別の方法もありますが、コードが長く なるので、、まずは下記でどんな感じか試してみて下さい。 sub samplemacro() dim myfolder as object dim myfolderitem as string dim i as long dim lngr as long 'フォルダ選択ダイアログ表示(以下はcドライブ以下の設定です) set myfolder = createobject("shell.application"). _ browseforfolder(0, "フォルダを選択してください", 0, "c:\") if not myfolder is nothing then myfolderitem = myfolder.items.item.path else exit sub end if 'filesearch オブジェクトでファイル検索 with application.filesearch .lookin = myfolderitem .filename = "*.jpg" '<-----検索ファイル名(ワイルドカード可) if .execute > 0 then '該当ファイルが見つかった場合の処理 lngr = 7 '7行目から for i = 1 to .foundfiles.count '↓↓↓ この間に処理を書く ↓↓↓ sheets("sheet1").cells(lngr, "c").value = .foundfiles(i) lngr = lngr + 1 if lngr = 65537 then msgbox "最大行数に達しましたので終了します" exit for end if '↑↑↑ ここまで ↑↑↑ next i else '該当ファイルが見つからない場合 msgbox "該当ファイルはありません" end if end with set myfolder = nothing end sub