アプリ版:「スタンプのみでお礼する」機能のリリースについて

マクロ初心者です。
下記の動作を実現したいのですが、
「(下記★の)フォルダが見つかりません。移動や削除が行われた可能性があります。」とエラーが出ます。
初心者のためエラーの理由がわからず、そもそも記述が間違っているのかも不明な状況です。
知識をお持ちの方がいらっしゃれば、下記動きを実現するために、どこを修正する必要があるのか、
ご教示いただけますと幸いです。。。

実現したい動きとしては以下です。

・・・・・・・・・・・・・・・・・・・・・・・・・・・
ファイル名に「あいう」を含むファイルを開く
→F25:F42の値をコピー …①

ファイル名に「えお」を含むファイルを開く
→F25:F42の値をコピー …②

①と②を加算して、貼り付け先ファイルのF25:F42に貼り付け

→以上の動きをF列~AC列まで1列おきに行う。
※以上のすべてのファイルは同じフォルダ内に格納されています。
・・・・・・・・・・・・・・・・・・・・・・・・・・・

そして、書いてみたマクロは以下です。

Sub マクロ()

Dim i As Integer
For i = 5 To 28 Step 2

Dim xAdr As Range
Set xAdr = Range(Cells(25, i), Cells(42, i))

Dim ex As New Excel.Application
Dim wb As Workbook
Dim wbA As Workbook

Dim sPath
Dim sPathA

Dim r As Range
Dim sht As Worksheet

With Workbooks("貼り付け先ファイル.xlsm").Worksheets("指定sheet")

sPath = "C:\Users\指定フォルダ\*あいう*.xlsm"  ★
Set wb = ex.Workbooks.Open(Filename:=sPath, UpdateLinks:=0, ReadOnly:=True, IgnoreReadOnlyRecommended:=True)

wb.Worksheets("指定シート").Range(xAdr).Copy
.Range(xAdr).PasteSpecial Paste:=xlPasteValues, Operation:=xlAdd

Call wb.Close

sPathA = "C:\Users\指定フォルダ\*えお*.xlsm"
Set wbA = ex.Workbooks.Open(Filename:=sPath, UpdateLinks:=0, ReadOnly:=True, IgnoreReadOnlyRecommended:=True)

wbA.Worksheets("指定シート").Range(xAdr).Copy
.Range(xAdr).PasteSpecial Paste:=xlPasteValues

Call wbA.Close

End With
End Sub



どうぞよろしくお願いいたします。。

A 回答 (1件)

DIR関数かFileSystemObject を使って、


開くファイルのリストを作成してから
For文でWorkbooks.Openを繰り返すのがいいと思います。

ファイルの一覧を取得する
http://officetanaka.net/excel/vba/file/file07.htm
FileSystemObject について
https://www.tipsfound.com/vba/18010

開くファイルのリストを作るとき、
マッチングについては以下のサイトが参考になると思います

正規表現によるマッチング
http://officetanaka.net/excel/vba/tips/tips38.htm
VBAで正規表現を利用する(RegExp)
https://excel-ubara.com/excelvba4/EXCEL232.html
参照設定とCreateObjectの対応リスト
http://www.thom.jp/vbainfo/refsetting.html
    • good
    • 1

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人はこんなQ&Aも見ています