質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
VBA

VBAはオブジェクト指向プログラミング言語のひとつで、マクロを作成によりExcelなどのOffice業務を自動化することができます。

Q&A

解決済

2回答

4122閲覧

参照するファイルをワイルドカードで指定したい

be36

総合スコア2

VBA

VBAはオブジェクト指向プログラミング言語のひとつで、マクロを作成によりExcelなどのOffice業務を自動化することができます。

0グッド

0クリップ

投稿2020/07/20 11:48

参照するファイルが日付によって以下のようになるので
ワイルドカードを使って【東】があるファイルだけを選択したいのですが、うまくいきません。
分かる方ご教示お願いいたします。

ファイル名
【東】1
【東】2

Sub test()
Dim wb1, wb2 As Workbook
Dim ws1, ws2 As Worksheet
Dim fName As Variant
Dim mys As String
Dim i, j As Long

Application.ScreenUpdating = False
mys = Workbooks("参照.xlsm").Sheets("Sheet1").Range("A1").Value '検索値

fName = Application.GetOpenFilename("ブック,*.xlsb")
Workbooks.Open fName

Set wb2 = Workbooks("【東】,*.xlsb") '検索対象ファイル
wb2.Activate
ReDim dary(10, 5) '10件まで
n = 1
With wb2.Worksheets(1) '検索ファイルの左側シートのみ対象
For i = 2 To Range("A" & Rows.Count).End(xlUp).Row
If Cells(i, 2).Value Like mys And Cells(i, 3).Value = "1" Then
For j = 1 To 5
dary(n, j) = Cells(i, j + 1).Value
Next j
n = n + 1
If n > 10 Then Exit For
End If
Next i
End With

Set wb1 = Workbooks("参照.xlsm")
wb1.Activate
With wb1.Sheets("Sheet1")
For i = 1 To 10
For j = 1 To 5
.Cells(i + 2, j).Value = dary(i, j)
Next j
Next i
End With
Application.ScreenUpdating = True
MsgBox "完了"
End Sub

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答2

0

ベストアンサー

y_waiwaiさんが回答された dir関数 は、引数と戻り値を正しく理解する必要があります。
引数をワイルドカード指定し、ループしながらファイル検索する方法について勉強が必要です。
以下動画では初学者向けに説明されてますので参考にしてください。

(動画)【VBA】実務では必須のDir関数。あまり知られていない使い方をご紹介します

投稿2020/07/20 12:51

編集2020/07/20 13:14
TanakaHiroaki

総合スコア1063

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

be36

2020/07/22 01:09

非常に助かりました。 ありがとうございます。
guest

0

dir関数にワイルドカードで指定して、ファイルリストを取得して、それをもとに処理しましょう

投稿2020/07/20 12:01

y_waiwai

総合スコア87774

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問