• 締切済み

Access2007でFile Searchが使えなくなり大変困ってい

Access2007でFile Searchが使えなくなり大変困っています。 行いたい内容は以下です。 1.ボタンを押下し、指定したフォルダのファイル一覧画面を出す 2.一覧画面のファイル名に直近のファイル名を表示させる ・Access2000(VBA)でのコード Set fs = Application.FileSearch With fs .lookin =Path  'Path=D:¥system¥file .FileName ="*.xls" If Execute() > 0 Then File = foundfiles(.foundfiles.Count) Else File = "" End With ネットで検索すると、FileSystemObjectで対応できるとのことですが、よく分かりません。 File Searchを使わずにFileSystemObjectを使うとどのように書くのでしょうか。 どうぞ宜しくお願いします。

noname#117163
noname#117163

みんなの回答

  • nicotinism
  • ベストアンサー率70% (1019/1452)
回答No.1

ファイルを選択したいのですよね? なら2002以降からFileDialogが使えますからこっちの方が楽チン。 下記のような感じで取得できますよ。 Function FilePick() As String   'OFFice2002以降(参照設定不要)   Dim FD As Object   Dim F As Variant   Set FD = Application.FileDialog(3)   With FD     '.InitialFileName = "D:\system\File"       '初期検索先指定     .InitialFileName = Application.CurrentProject.Path     .Title = "ファイル選択"     .AllowMultiSelect = True        '複数ファイル選択の可否          .Filters.Clear             'ファイルフィルタの設定     .Filters.Add "すべてのファイル", "*.*"     .Filters.Add "Accesssデータベース", "*.mdb;*.mde"     .Filters.Add "エクセルファイル", "*.xls;*.xla;*.xlt"          .FilterIndex = 3            '初期選択フィルタの設定     .ButtonName = "決定"          'ボタンの表示文字列の設定     'キャンセル時にはShowメソッドは0(Long型)を返す     IF CBool(.Show) Then       '選択ファイルのパスの取得         FilePick = .selecteditems(1)     Else         FilePick = ""     End IF          For Each F In .selecteditems       Debug.Print F 'イミディエイト ウィンドウに出力     Next    End With    End Function

関連するQ&A

  • 【ファイルサーチ】指定のフォルダーではなく自分で選択したフォルダー内のファイルの総数をカウントしたい

    お世話になります。指定のフォルダーではなく自分で選択したフォルダー内の"csvファイル"の総数をカウントしたいのですがうまくいきません。アドバイスお願いいたします。 With Application.FileSearch .LookIn = Application.GetOpenFilename .Filename = "*.csv" If .Execute > 0 Then MsgBox .FoundFiles.Count & "個" End If For i = 1 To .FoundFiles.Count MsgBox .FoundFiles(i) Next i End With

  • VBAで、[.FoundFiles.count]で取得した値の変数Cへの渡し方

    VBAで、[.FoundFiles.count]で取得した値を C=.FoundFiles.count(理想) としたいです。そして以下のコードのFor文の.FoundFiles.countをCとしたいのですが、思うようにいきません。その方法を教えて頂きたいのです。宜しくお願い致します。 With Application.FileSearch .LookIn = largept .Filename = "*.txt" If .Execute > 0 Then   For i = 1 to .FoundFiles.Count     ...     処理     ...   Next i Else End If End With

  • EXCEL2000 フォルダ内のファイルを検索

    EXCEL2000 フォルダ内のファイルを検索 お分かりになる方がいましたらお力添えの程よろしくお願いします。 任意のフォルダ内で任意のファイルサーチが出来るマクロを実行したいのですが、ファイルサーチの値を全角、半角、大文字、小文字区別なく行いたいのです。 例えば,セル2,2に、topと入力したら、topもtopもTOPもTOPも検索対象に引っかかり、セルに書き出して欲しいのです。 ・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・ Sub ファイル一覧2() Dim vntF As Variant Dim objFS As FileSearch Dim objFSO As FileSystemObject Dim GYO As Long Dim cntFound As Long Set objFS = Application.FileSearch ' FileSearch Set objFSO = New FileSystemObject ' FSO Rows("5:65536").ClearContents Application.ScreenUpdating = False GYO = 4 With objFS .NewSearch .LookIn = Trim(Cells(1, 2).Value) ' Search開始フォルダ .Filename = Trim(Cells(2, 2).Value) ' 探索ファイル式 .SearchSubFolders = True ' サブフォルダも探索 ' 処理開始 If .Execute() <> 0 Then For Each vntF In .FoundFiles With objFSO.GetFile(vntF) GYO = GYO + 1 Cells(GYO, 1).Value = .Name Cells(GYO, 2).Value = .DateLastModified Cells(GYO, 3).Value = _ Left(.Path, Len(.Path) - Len(.Name) - 1) cntFound = cntFound + 1 End With Next vntF End If End With Set objFS = Nothing Set objFSO = Nothing ' 処理結果の表示 If cntFound = 0 Then MsgBox "見つかりません" Else MsgBox cntFound & "個見つかりました" End If End Sub

  • Excel2007で、ディレクトリ付きファイル一覧をシート出力するマクロ

    Excel2003で、以下のソースを使い、シート上にディレクトリ付きファイル一覧を作成していたのですが、Excel2007では使えなくなりました。代替方法はありませんか? Sheets("Sheet10").Range("A1:Z6000").Clear With Application.FileSearch .newSearch .LookIn = "C:\works" .filename = "*.html" .SearchSubFolders = True Sheets("Sheet10").Select CSVMAX = .FoundFiles.Count For result = 1 To CSVMAX Sheets("Sheet10").Cells(result, 1) = .FoundFiles(result) Next End With

  • 改善コードを教えてください。

    EXCEL2003で作成したマクロが2010で下記のコードが動作しません。 どう修正したらいいか教えてください 。 できれば、具体的なコードを書いていただけると、助かります。 ' With Application.FileSearch ' .NewSearch ' .LookIn = TXP_hozon_saki ' .Filename = ".TXP" ' .SearchSubFolders = True ' ' If .Execute() = 0 Then ' MsgBox "TXPファイルなし", vbOKOnly, "参照ファイルエラー" ' Exit Sub ' End If ' For KensakuSuu = 1 To .FoundFiles.Count ' TXP_hozon_name(1, KensakuSuu) = .FoundFiles(KensakuSuu) ' Next KensakuSuu ' End With 上記コードは、拡張子.TXPというファイルを検索して、動作させるものです。

  • 【ExcelVBA】指定したファイル名をAドライブで検索

    エクセルVBAで、指定したファイル名のファイルをAドライブ直下で検索した場合、ワイルドカードを使ってないにも関わらず、ワイルドカード検索みたいな感じで結果がとれてしまいます。 ■Aドライブ直下 aaaPROFILE.xls testPROFILE.xls ■コード With Application.FileSearch .NewSearch .LookIn = "A:\" .SearchSubFolders = True .Filename = "PROFILE.xls" If .Execute() > 0 Then MsgBox Application.FileSearch.FoundFiles(1) & "あった" Else MsgBox "Aドライブに[PROFILE.xls]を保存してね" End If End With これを実行すると、「Aドライブに[PROFILE.xls]を保存してね」というメッセージが出てほしいのですが、「aaaPROFILE.xlsあった」とでてきてしまい、aaaPROFILE.xlsが検索結果にひっかかってしまいます。 これは何故でしょうか?どうしたら指定した文字列をビタで検索できるでしょうか? ご回答よろしくお願いいたします。

  • VBAのFileSearchと同じことをVBで行いたいのですが・・・

    With Application.FileSearch '---FileSearchオブジェクトに対して .LookIn = strPath '---検索するフォルダを指定 .SearchSubFolders = True '---サブフォルダも検索対象にする .FileName = "*.lnk" '---検索するファイル名の指定 .FileType = msoFileTypeAllFiles '---検索対象はすべてのファイル .Execute(SortBy:=msoSortByFileName, _ SortOrder:=msoSortOrderAscending) End With 上記のような処理をVBで行いたいのですが、記述の仕方がわかりません。 VBにも上記のようなものはないでしょうか?

  • エクセルに画像挿入

    以前の投稿で下記のようなVBAを拝見しました。 実行するとA列に画像ファイル名、B列に画像が縦に配置されます。 これを横に配置するにはどうすればいいのでしょうか? 初心者なので質問不足かもしれませんがよろしくお願いします。 Sub PictAdd() Dim pict As Shape, r As Range With Application.FileSearch  .NewSearch  .LookIn = ThisWorkbook.Path  .SearchSubFolders = False  .Filename = "*.jpg"  If .Execute() > 0 Then   For i = 1 To .FoundFiles.Count    Set r = ActiveSheet.Range("B" & i)    Set pict = ActiveSheet.Shapes.AddPicture _       (.FoundFiles(i), msoTrue, msoFalse, _        r.Left, r.Top, r.Width, r.Height)       pict.OnAction = "PictClick"       r.Offset(0, -1).Value = Dir(.FoundFiles(i))   Next i  End If End With  Columns(1).EntireColumn.AutoFit End Sub

  • Excel2010のVBAで起動時に連続番号を表示

    数年前にVBAで質問させていただきました。 ずっとwindowsXP SP3を使用していたのですが(Excel2002 SP3もそのまま) 今回急遽社内のパソコンが2台(1台は自分のです)だけWindows7に変わりました。 その2台だけExcelも2002から2010に変わったのですが、使用しているファイルで記述してる FileSearchが使えないとあとから知りました。(泣) ネットで検索してFileSystemObjectを代わりに使用するというのを知りましたが 初心者の為理解が難しく・・・。 申し訳ありませんが記述の変更方法を教えていただけないでしょうか? (1)フォルダーは ”C:\指示\記入済” に出来たExcelファイルを保存してます (2)番号は指定フォルダ内のエクセルファイルをカウントしてその数+1を   U1のセルに表示させています。 **************現在使用中データ************** Public Const FPath = "C:\指示\記入済" 'xlsファイル検索 Sub Auto_Open() With Application.FileSearch .NewSearch .Filename = "*.xls" .FileType = msoFileTypeAllFiles .LookIn = FPath .SearchSubFolders = False .Execute Cells(1, 21).Value = .FoundFiles.Count + 1 Cells(1, 21).NumberFormat = "0000" End With End Sub ******************************************** 上記がExcel2002で問題なく動いている記述です。 大変申し訳ありませんが、宜しくお願いします。

  • FileSearchが使えなくなり困ってます。

    仕事場で前任者が下記のようなマクロを組んでいたのですが、「FileSearch」が使用できなくなり、なおさなくてはいけなくて困ってます。 指定の保存先から、アクティブセルと同じ保存名のファイル(エクセル)を開く内容なのですが、お分かりになるかた知恵を拝借願いますでしょうか? 素人なので、できれば専門用語じゃない回答をいただけるとありがたいです。 よろしくお願い致します。 Dim p As Range For Each p In Selection If p = "" Then Exit Sub End If With Application.FileSearch .Filename = p .LookIn = "保存先" .SearchSubFolders = True .LastModified = msoLastModifiedAnyTime .FileType = msoFileTypeExcelWorkbooks .SearchSubFolders = xt .Execute For Each f In .FoundFiles Workbooks.Open f Next f End With Next p End Sub

専門家に質問してみよう