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

現在、月次集計ファイルの❶シートのセルC5へ別ファイル❷登録者一覧から条件を指定し、カウントした値を求めています。

しかしファイル名❷登録者一覧は、ファイル名が登録者一覧_4月のように変わってしまうため、セルS1に書いた❸ファイル名を参照するよう下記記述を変更したいができません。
・・・・・・・・・
Dim rg As Range
Dim mm_str As Date
Dim date_str As String
mm_str = ThisWorkbook.Worksheets("P1").Range("Q1").Value
date_str = ThisWorkbook.Worksheets("P1").Range("T1").Value
Set rg = ThisWorkbook.Worksheets("P1").Range("C4:N4").Find(what:=mm_str)
If rg Is Nothing Then
MsgBox ("該当月なし")
Exit Sub
End If
'「同一フォルダ内の別ブック」開く
Dim bookpath As String
bookpath = ThisWorkbook.Path & "\" & "登録者一覧.xlsx"
Workbooks.Open bookpath
'「別ブック」を参照して条件一致の数を算出
With Workbooks("登録者一覧.xlsx").Worksheets("登録者一覧")
rg.Offset(1).Value = WorksheetFunction.CountIf(.Range("E:E"), date_str)
End With
'「別ブック」を閉じる
Workbooks("登録者一覧.xlsx").Close
・・・・・・・・・・・

どのように変更したら良いでしょうか?
よろしくお願いいたします。

「VBAの参照先のファイル名をセルに書いて」の質問画像

A 回答 (2件)

以下のようにしてください。



Dim rg As Range
Dim mm_str As Date
Dim date_str As String
mm_str = ThisWorkbook.Worksheets("P1").Range("Q1").Value
date_str = ThisWorkbook.Worksheets("P1").Range("T1").Value
Set rg = ThisWorkbook.Worksheets("P1").Range("C4:N4").Find(what:=mm_str)
If rg Is Nothing Then
MsgBox ("該当月なし")
Exit Sub
End If
'「同一フォルダ内の別ブック」開く
Dim bookpath As String
Dim fname As String
fname = "登録者一覧" & "_" & ThisWorkbook.Worksheets("P1").Range("Q1").text & ".xlsx"
bookpath = ThisWorkbook.Path & "\" & fname
Workbooks.Open bookpath
'「別ブック」を参照して条件一致の数を算出
With Workbooks(fname).Worksheets("登録者一覧")
rg.Offset(1).Value = WorksheetFunction.CountIf(.Range("E:E"), date_str)
End With
'「別ブック」を閉じる
Workbooks(fname).Close
    • good
    • 0

こんにちは



シート名は「登録者一覧」のままでよいものと解釈しました。
また、S1セルと言うのはマクロのあるブックのシートP1のS1セルということで良いのでしょうか?

ブックの名が変わるということなので、最初に
 book_name = ThisWorkbook.Worksheets("P1").Range("S1").Value
とでもしておいて

その後のブック名の部分を全て上記の変数、book_name に変えれば宜しいかと。
例えば、
 bookpath = ThisWorkbook.Path & "\" & "登録者一覧.xlsx"
    ↓  ↓
 bookpath = ThisWorkbook.Path & "\" & book_name & ".xlsx"
といった塩梅です。


あるいは、最初のところで
 book_name = ThisWorkbook.Worksheets("P1").Range("S1").Value & ".xlsx"
としておけば、後のところでは毎回拡張子を付けなくても済むようになりますね。
    • good
    • 1

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