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

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

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

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

Q&A

解決済

2回答

985閲覧

エクセルで集約にワイルドカードを使えるようにしたい

roloc2909

総合スコア6

VBA

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

0グッド

0クリップ

投稿2020/09/24 03:46

エクセルを使用してcsvの結果をマクロの入っているbookに移行してきたいと考えています。
現在、ファイルを指定していますがアンダーバー以前が複数パターンあるのでそこをワイルドカードにしたいのですが
ファイル指定の方法が分かっていません。

フォルダ構成としては以下の通りです。

任意のフォルダ

┣マクロのあるブック
┣*_因果_NodeAcc.csv
┣*_因果_NodeDisp.csv
┣*_因果_Column.csv
┗そのほか使用しないcsv

vba

1Option Explicit 2 3Dim acc As Workbook, dis As Workbook, strain As Workbook 4 5Sub 解析移行() 6 7 Application.ScreenUpdating = False 8 ThisWorkbook.Worksheets("加速度").Range("G4:K170002") = "" 9 ThisWorkbook.Worksheets("変位").Range("G4:K170002") = "" 10 ThisWorkbook.Worksheets("ひずみ").Range("I4:O170002") = "" 11 12 13 ThisWorkbook.Worksheets("加速度").Range("G4").Select 14 Set acc = Workbooks.Open(ThisWorkbook.Path & "\R10M1H-5_tri_因果_NodeAcc.csv") 15 Range("A2:E170002").Copy 16 ThisWorkbook.Worksheets("加速度").Paste 17 Application.CutCopyMode = False 18 acc.Close 19 ActiveSheet.Range("G4").Select 20 21 22 ThisWorkbook.Worksheets("変位").Activate 23 ActiveSheet.Range("G4").Select 24 Set dis = Workbooks.Open(ThisWorkbook.Path & "\R10M1H-5_tri_因果_NodeDisp.csv") 25 Range("A2:E170002").Copy 26 ThisWorkbook.Worksheets("変位").Paste 27 Application.CutCopyMode = False 28 dis.Close 29 ActiveSheet.Range("G4").Select 30 31 32 ThisWorkbook.Worksheets("ひずみ").Activate 33 ActiveSheet.Range("I4").Select 34 Set strain = Workbooks.Open(ThisWorkbook.Path & "\R10M1H-5_tri_因果_Column3.csv") 35 Range("C:C, E:E, G:G, I:I, K:K, M:M").Delete 36 Range("A2:G170002").Copy 37 ThisWorkbook.Worksheets("ひずみ").Paste 38 Application.CutCopyMode = False 39 strain.Close savechanges:=False 40 ActiveSheet.Range("A1").Activate 41 ActiveSheet.Range("I4").Activate 42 43 ThisWorkbook.Worksheets("加速度").Activate 44 ThisWorkbook.Save 45 46End Sub 47

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

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

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

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

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

guest

回答2

0

ベストアンサー

サンプルをあげておきます。

VBA

1Sub Sample() 2 Dim buf As String 3 buf = Dir(ThisWorkbook.Path & "*_因果_NodeAcc.csv") 4 5 Do While buf <> "" 6 Debug.Print buf 7 buf = Dir() 8 Loop 9End Sub

これで「_因果_NodeAcc.csv」が含まれるものがイミディエイトウィンドウに表示されます。

投稿2020/09/25 00:53

radames1000

総合スコア1923

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

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

0

Dir関数を使うと、ワイルドカードで指定したファイル名が順次得られます。
ちょっと癖のある関数なので、使い方はリファレンスやサンプルを見てください。

投稿2020/09/24 03:59

otn

総合スコア84557

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問