
現在、月次集計ファイルの❶シートのセル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
・・・・・・・・・・・
どのように変更したら良いでしょうか?
よろしくお願いいたします。

A 回答 (2件)
- 最新から表示
- 回答順に表示
No.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
No.1
- 回答日時:
こんにちは
シート名は「登録者一覧」のままでよいものと解釈しました。
また、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"
としておけば、後のところでは毎回拡張子を付けなくても済むようになりますね。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
VBA シートをコピーする際に Co...
-
VBA 別ブックからコピペしたい...
-
別ブックをダイアログボックス...
-
【ExcelVBA】インデックスが有...
-
【ExcelVBA】zip圧縮されたCSV...
-
VBAで別ブックのシートを指定し...
-
エクセルVBAが途中で止まります
-
VBAで別のブックにシートをコピ...
-
新しく開いたブックをアクティ...
-
【VBA】全シートの計算式を全て...
-
Excelファイルを開くとき、読み...
-
VBSでExcelのオープン確認
-
オブジェクトは、このプロパテ...
-
フォルダ内の全てのファイルに...
-
Excel にて、 リストボックスの...
-
Excel2007VBAファイルの表示に...
-
EXCEL2013 シート内容を別ブッ...
-
Excel マクロ ファイルと同じシ...
-
エクセルVBA エクセルを開いた...
-
フォルダー内の支店ごとのブッ...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
別ブックをダイアログボックス...
-
VBA シートをコピーする際に Co...
-
VBA 別ブックからコピペしたい...
-
エクセルVBAが途中で止まります
-
VBA コードを実行すると画面が...
-
ワイルドカード「*」を使うとう...
-
VBAで別ブックのシートを指定し...
-
オブジェクトは、このプロパテ...
-
VBAで別のブックにシートをコピ...
-
Excelマクロ 該当する値の行番...
-
【Excel VBA】書き込み先ブック...
-
複数のエクセルファイルとシー...
-
【ExcelVBA】zip圧縮されたCSV...
-
【ExcelVBA】インデックスが有...
-
VBA シート名が一致した場合の...
-
2つ目のコンボボックスが動作...
-
Excel マクロ ファイルと同じシ...
-
【VBA】全シートの計算式を全て...
-
[Excel]ADODBでNull変換されて...
-
Excel2007VBAファイルの表示に...
おすすめ情報