
VB.NETというサイトの「フォルダ以下のファイルを最下層まで検索または取得する」(http://jeanne.wankuma.com/tips/vb.net/directory/ …に書かれているコードを実行しようとしてもエラーが出てしまいます。どのように修正したら実行されるのか、ご教授いただけないでしょうか。よろしくお願いいたします。
VBAのバージョンは7.0です。
サンプルにある通り、C直下にHogeフォルダを作り、その中にHoge.txtを作ってあります。
標準モジュールに「使用例は以下のようになります。」に書かれているコードを、クラスモジュールには「以下にサンプルコードを示します。」に書かれているコードを張り付けました。クラス名は「GetFilesMostDeep」としています。
下記がコードの内容となっています。
★標準モジュール-----------------------------
Sub Macro4()
' ファイル名に「Hoge」を含み、拡張子が「.txt」のファイルを最下層まで検索し取得する
Dim stFilePathes As String() = GetFilesMostDeep("C:\Hoge\", "*Hoge*.txt")
Dim stPrompt As String = String.Empty
' 取得したファイル名を列挙する
For Each stFilePath As String In stFilePathes
stPrompt &= stFilePath & System.Environment.NewLine
Next stFilePath
' 取得したすべてのファイルパスを表示する
If stPrompt <> String.Empty Then
MessageBox.Show (stPrompt)
End If
End Sub
★---------------------------------------
★クラスモジュール--------------------------------
''' ---------------------------------------------------------------------------------------
''' <summary>
''' 指定した検索パターンに一致するファイルを最下層まで検索しすべて返します。</summary>
''' <param name="stRootPath">
''' 検索を開始する最上層のディレクトリへのパス。</param>
''' <param name="stPattern">
''' パス内のファイル名と対応させる検索文字列。</param>
''' <returns>
''' 検索パターンに一致したすべてのファイルパス。</returns>
''' ---------------------------------------------------------------------------------------
Public Shared Function GetFilesMostDeep(ByVal stRootPath As String, ByVal stPattern As String) As String()
Dim hStringCollection As New System.Collections.Specialized.StringCollection()
' このディレクトリ内のすべてのファイルを検索する
For Each stFilePath As String In System.IO.Directory.GetFiles(stRootPath, stPattern)
hStringCollection.Add (stFilePath)
Next stFilePath
' このディレクトリ内のすべてのサブディレクトリを検索する (再帰)
For Each stDirPath As String In System.IO.Directory.GetDirectories(stRootPath)
Dim stFilePathes As String() = GetFilesMostDeep(stDirPath, stPattern)
' 条件に合致したファイルがあった場合は、ArrayList に加える
If Not stFilePathes Is Nothing Then
hStringCollection.AddRange (stFilePathes)
End If
Next stDirPath
' StringCollection を 1 次元の String 配列にして返す
Dim stReturns As String() = New String(hStringCollection.Count - 1) {}
hStringCollection.CopyTo(stReturns, 0)
Return stReturns
End Function
No.1ベストアンサー
- 回答日時:
>VBAのバージョンは7.0です。
参考にしているサイトはVB.NETですよ。
VBAでは動かないんじゃないですかね?
VBA(エクセル)であれば、
例えば
http://www.moug.net/tech/exvba/0150117.html
こちらのような事とか。
n-jun様
あぁなんてことでしょう・・・それじゃあ動くわけがありませんね。。
多分、お答えがなければ気がつかなかったと思います。.
URLもとても参考になりました。やりたいことがまさにここに
掲載されていました。
誠にありがとうございましたm(_ _)m
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Excel(エクセル) Excelにて、フォルダ内のTextファイルをマクロで統合すると文字化けしてしまう時の解消コード 4 2023/01/01 07:32
- Excel(エクセル) フォルダ内のワードファイルをPDFに一括変換するVBA 3 2023/06/09 16:51
- Visual Basic(VBA) ExcelVBAに関する質問 3 2023/02/17 10:47
- Visual Basic(VBA) このVBAでExcelアプリケーションを作成は必要ですか? 3 2023/07/19 21:13
- Visual Basic(VBA) あるフォルダーのファイルを違う親フォルダーのサブフォルダーに移したい 11 2023/02/15 19:00
- Visual Basic(VBA) ExcelのVBAコードについて教えてください。 1 2023/08/09 10:33
- Visual Basic(VBA) 入力ボックスが繰り返しポップアップして止まらない。 下記コードでファイル名の変更をしたいのですが、変 1 2022/09/08 11:27
- Excel(エクセル) エクセル VBA For Next 繰り返しの書き方を教えてください 6 2022/09/01 14:11
- Excel(エクセル) VBA フォルダ見える化のコードについて 2 2023/06/19 15:04
- Visual Basic(VBA) InputBoxでキャンセルボタンを押したらファイル自体を閉じたい 3 2022/07/23 17:52
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
どんなプログラムを書いても指...
-
「UNCパスはサポートされません...
-
ExcelVBAでカレントディレクト...
-
fopenで別ディレクトリにファイ...
-
フルパスから最後のディレクト...
-
絶対パスの絶対て英語で何でし...
-
セルに入力されたパスでフォル...
-
コマンドプロンプトについて
-
ASP.NET C#でのファイルアップ...
-
ファイルのパスを動的に取得
-
マイクラでPythonのプログラミ...
-
webアプリケーションでの画像フ...
-
vb2010です
-
ExcelVBA サーバーの(共有フォ...
-
リンクしていないWebページのセ...
-
VBAでのHTTP通信を用いたダウン...
-
EXCELでダイアログボックスを開...
-
ファイルやディレクトリの存在...
-
FTPでputすると空ファイルが出...
-
delphi5でのディレクトリ内ファ...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
どんなプログラムを書いても指...
-
フルパスから最後のディレクト...
-
「UNCパスはサポートされません...
-
FTPでputすると空ファイルが出...
-
絶対パスの絶対て英語で何でし...
-
fopenで別ディレクトリにファイ...
-
ExcelVBAでカレントディレクト...
-
ファイルやディレクトリの存在...
-
windows.hがincludeされない
-
セルに入力されたパスでフォル...
-
ネットワーク上のコンピュータ...
-
Ubuntu テキストファイルをどこ...
-
C言語を用いたファイルの一括削...
-
webアプリケーションでの画像フ...
-
新規作成ファイルパスが有効か...
-
ファイルダイアログのカレント...
-
ExcelVBA サーバーの(共有フォ...
-
GetPrivateProfileStringでini...
-
エクセルVBAで相対パスでファイ...
-
マイクラでPythonのプログラミ...
おすすめ情報