現在、月次集計ファイルの❶シートのセル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で質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) エクセルのマクロを使ってメールを送る方法について教えてください 2 2022/03/29 01:36
- Visual Basic(VBA) 【ご教示ください】VBAの記述方法がわかりません。 2 2022/08/12 21:28
- Visual Basic(VBA) VBAのユーザーフォームのテキストボックスに入力制限をしたい 6 2022/11/15 08:28
- Visual Basic(VBA) 【前回の続きです、ご教示ください】VBAの記述方法がわかりません。 2 2022/08/16 16:44
- Excel(エクセル) 2つのVBAを一緒にしたら機能しなくなりました(エクセル) 7 2022/06/02 12:41
- Visual Basic(VBA) エクセルのマクロについて教えてください。 2 2023/07/15 15:12
- Visual Basic(VBA) Excelのマクロコードについて教えてください。 1 2022/03/27 13:25
- Visual Basic(VBA) 【前回の続き続きです、ご教示ください】VBAの記述方法がわかりません。 2 2022/08/24 20:49
- Access(アクセス) ExcelのVBAコードについて教えてください。 4 2023/01/20 09:44
- Visual Basic(VBA) 3つのプロシージャをまとめたら実行時エラー発生で対応不能 6 2022/05/17 01:47
このQ&Aを見た人はこんなQ&Aも見ています
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
【ExcelVBA】zip圧縮されたCSV...
-
VBA シートをコピーする際に Co...
-
ワイルドカード「*」を使うとう...
-
別ブックをダイアログボックス...
-
VBA コードを実行すると画面が...
-
エクセルVBAが途中で止まります
-
VBS Bookを閉じるコード
-
【VBA】全シートの計算式を全て...
-
エクセルのマクロを使ってメー...
-
VBA シート名が一致した場合の...
-
【ExcelVBA】インデックスが有...
-
ユーザーフォームの切り替えに...
-
VBA 別ブックからコピペしたい...
-
vbaでvbaProjectのパスワード解...
-
VBA 実行時エラー 2147024893
-
【前回の続き続きです、ご教示...
-
【困っています2】VBA 追加処...
-
エクセルのマクロについて教え...
-
エクセルのマクロについて教え...
-
マクロで最終行を取得したい
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
VBA シートをコピーする際に Co...
-
エクセルVBAが途中で止まります
-
別ブックをダイアログボックス...
-
【ExcelVBA】インデックスが有...
-
ワイルドカード「*」を使うとう...
-
【ExcelVBA】VBA実行でダイアロ...
-
ExcelのVBAです。フォルダ内の...
-
フォルダ内の全てのファイルに...
-
VBA コードを実行すると画面が...
-
VBA 別ブックからコピペしたい...
-
VBAで別ブックのシートを指定し...
-
VBS Bookを閉じるコード
-
vbaでvbaProjectのパスワード解...
-
【VBA】全シートの計算式を全て...
-
VBA シート名が一致した場合の...
-
【ExcelVBA】zip圧縮されたCSV...
-
複数のエクセルブックをひとつ...
-
VBSでExcelのオープン確認
-
VBAで別のブックにシートをコピ...
-
【Excel VBA】書き込み先ブック...
おすすめ情報