2020年3月13日のブックマーク (3件)

  • VBA Dir関数とFileSystemObjectの比較 - t-hom’s diary

    ※ 冗談の通じない方はご退場願います。 はじめに私の立場を明確にしておくと、私は個人的にFileSystemObject(以降FSOと記載)が好きで、Dir関数はあまり好きではない。従ってDir関数で事足りる処理でも基的にVBAコードではFSOを利用する。この記事ではその理由を述べ、Dir派の方をFSO派に改宗させることを目的としたいと思う。悪を滅し、正義の光あらんことを。なんつって。 さて、まずはDir関数がいかに貧相であるかをご覧いただきたい。Dirで出来ることは主に以下の三つである。 指定したファイル・フォルダの存在チェック 指定したパターンにマッチするファイル名の取得 指定したフォルダ内のサブフォルダ・ファイルの一覧取得 機能豊富なFSOにとってこれしきの事は朝飯前である。 FSOが如何に機能豊富であるかはFSOが備える以下のメソッド群を見てもらえば一目瞭然。 BuildPath

    VBA Dir関数とFileSystemObjectの比較 - t-hom’s diary
  • Office TANAKA - FileSystemObject[GetFileメソッド]

    【書式】 FileSystemObject.GetFile(filespec) 指定したファイルを表すFileオブジェクトを返します。 引数filespecにはファイル名を含むパスを指定します。 Sub test17() Dim FSO As Object, FileObject As Object Set FSO = CreateObject("Scripting.FileSystemObject") ''C:\Book1.xlsxのサイズを返します Set FileObject = FSO.GetFile("C:\Book1.xlsx") MsgBox FileObject.Size Set FileObject = Nothing Set FSO = Nothing End Sub

  • Office TANAKA - VBA講座:ファイルの操作(ファイルの一覧を取得する)

    任意のフォルダに存在するすべてのファイル名を取得するには、Dir関数にワイルドカードを指定します。次のコードは、C:\Sampleフォルダに存在するすべての「*.xlsx」をアクティブシートに書き出します。 Sub Sample1() Dim buf As String, cnt As Long Const Path As String = "C:\Sample\" buf = Dir(Path & "*.xlsx") Do While buf <> "" cnt = cnt + 1 Cells(cnt, 1) = buf buf = Dir() Loop End Sub Dir関数にワイルドカードを指定して実行すると、まずそのワイルドカードに一致するファイル名が返ります。次に、Dir関数の引数を省略して実行すると、前回に指定されたワイルドカードが指定されたものとしてファイルを探します。そ