フォルダー名の検索してファイルを開くことは出来ました。
複数の開いたファイルからvlookupを利用して抽出したいのですが、そもそもファイルの指定方法がわかりません。
どなたかわかる方いらっしゃいませんか?
---------------------------------------------------
Sub Macro1()
Dim path, fso, file, files
For i = 18 To 21
path = "C:\Users\night\Desktop\新しいフォルダー (3)"
Set fso = CreateObject("Scripting.FileSystemObject")
Set files = fso.GetFolder(path).files
'フォルダ内の全ファイルをループ
For Each file In files
'文字指定
If InStr(file.Name, Cells(i, 3)) >= 1 Then
'ファイルを開く
CreateObject("Shell.Application").ShellExecute file 'Shellオブジェクト.ShellExecute 開くファイルのフルパス
End If
Next file
Next i
End Sub
No.1ベストアンサー
- 回答日時:
こんにちは
VlookupとかCell(i, 3)などとあるので、エクセルのVBAだろうと勝手に解釈しました。
>そもそもファイルの指定方法がわかりません。
Sellスクリプトでファイルを開かなくても、エクセルのWorkbooks.Openなどでファイルを開けば、戻り値としてそのWorkbookオブジェクトが取得できますので、そちらを利用すれば宜しいのではないでしょうか?
https://docs.microsoft.com/ja-jp/office/vba/api/ …
とは言え、なんだか沢山のファイルを一度に開いているようなので、関数を使うにしても、「どのブックの、どのシート」に対してLookupするのかを明確にしておく必要がありますけれど・・・
ブックを複数開くのなら、ブックオブジェクトを配列に入れておくなどの工夫が必要になるかもしれません。
実際のセルの値が不明ですけれど、ブック名そのものがセルに入力されているのなら、いちいち変数などに保持しておかなくても、ブック名を利用して参照することは可能です。
(ご提示のコードからは、値がブック名そのものなのかどうかはわかりませんので‥)
Workbooks("ブック名")
https://docs.microsoft.com/ja-jp/office/vba/api/ …
Sub Sample9()
Const PName = "C:\Users\night\Desktop\新しいフォルダー (3)\"
Dim FName As String
Name = Cells(5, 1)
FName = Dir(PName & "*" & Name & "*")
Workbooks.Open Filename:=PName & FName
End Sub
Workbooksで検索する事が出来ました!ありがとうございます!
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) vbaの構文の修正相談(xmlファイルを順に開いてコピペ作業) 1 2023/04/22 01:18
- Visual Basic(VBA) vbaのエラー対応(実行時エラー7:メモリが不足しています) 4 2023/04/24 00:20
- Visual Basic(VBA) エクセルVBA(実行時エラー438)の対処法を教えてもらえないでしょうか 3 2023/04/22 13:43
- Visual Basic(VBA) このVBAでExcelアプリケーションを作成は必要ですか? 3 2023/07/19 21:13
- Visual Basic(VBA) VBA This Workbookモジュールを別ファイルにコピーする方法 1 2022/09/14 01:51
- Visual Basic(VBA) VBAが止まります。 2 2022/09/02 14:02
- Visual Basic(VBA) あるフォルダーのファイルを違う親フォルダーのサブフォルダーに移したい 11 2023/02/15 19:00
- Visual Basic(VBA) InputBoxでキャンセルボタンを押したらファイル自体を閉じたい 3 2022/07/23 17:52
- Excel(エクセル) VBA フォルダ見える化のコードについて 2 2023/06/19 15:04
- その他(Microsoft Office) マクロVBAについて 1 2022/09/06 18:12
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
vbaサブフォルダーをワイルドカ...
-
VB6でUTF-8ファイルの読取りを
-
「AccessViolationException」...
-
VBA ディレクトリ名をワイルド...
-
vbsでのアスタリスクとファイル...
-
フォルダ内のファイルを上から...
-
【VBAマクロ初心者】Excel VBA...
-
FileDialog オブジェクトでファ...
-
excel マクロ PDF化の際のエラ...
-
ffftpでファイル取得が0バイト...
-
サブフォルダ含むフォルダ内の...
-
Accessのウインドウサイズの固定
-
Long型で表現できないファイル...
-
Wordのプロパティ・総ページ数...
-
Filesearchオブジェクトを使用...
-
ファイルを複数選択した時のフ...
-
動かなくなってしまった古いVBA...
-
Excel VBAにてtextファイルの読...
-
ファイルを開く時間測定のスク...
-
ファイルのアクセス回数について
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
vbaサブフォルダーをワイルドカ...
-
FileDialog オブジェクトでファ...
-
サブフォルダ含むフォルダ内の...
-
ffftpでファイル取得が0バイト...
-
動かなくなってしまった古いVBA...
-
excel マクロ PDF化の際のエラ...
-
VBからExcelファイルを開くとき...
-
「エクセルファイルが開いてい...
-
VBAでフォルダ内のhtmlファイル...
-
複数のワークブックのVBAを変更...
-
ExcelVBA 文字コード変換
-
Wordのプロパティ・総ページ数...
-
「AccessViolationException」...
-
AccessからOLEオブジェクト型の...
-
エクセルのVBAで開いている...
-
VBAで色々な種類のファイルを開く
-
VBAでCSVファイルを読み込もう...
-
VB.net XMLの作成方法 Iniの代替
-
【ACCESS VBA】アクセスからデ...
-
VBA、ファイル名検索から開く、...
おすすめ情報
'文字指定
If InStr(file.Name, Cells(i, 3)) >= 1 Then
Sellスクリプトでファイルを開くとう方法でしか文字指定で検索する方法が見つからない状態です。
ファイルのタイトル検索して条件に合ったファイルからvlookupで抽出するというVBAを作成したい次第です。
Workbookオブジェクトを利用して作成できるのでしょうか?