年月日の入力により曜日名を取得し、その曜日に関した複数のエクセルシート(例えば複数のシート名が月曜日、monday、mon等)を選択し、それぞれのシートを横断的に参照し比較処理等するマクロは、どのような構文を使用して作成すれば良いでしょうか。例文でのご教示、宜しくお願い致します。
Excel Sheet名には、まずマクロ結果を表示するmainがあり、この後に
月曜日、火曜日、水曜日、木曜日、monday、Tuesday,Wednesday、Thursday、Mon,Tue、Wed 、Thu があります。
No.2ベストアンサー
- 回答日時:
mainのシートと各曜日のシートはあきらかにレイアウトが違うので、
arrayの中に組み込まないほうが良いです。
Mon Amとは、月曜日の例でしょうか。日曜日ならSun Amと解釈します。
日曜日のシートのA1の値を、mainのシートに転記する例です。
2021/9/12を入力すると、日曜日のシートが対象になります。
2021/9/13を入力すると、月曜日のシートが対象になります。
Sub Sample()
Dim wday As String
Dim date1 As Date
Dim wno As String
Dim arr As Variant
Dim i As Long
Dim wk As Variant
wday = InputBox("日付を入力してください(yyyy/mm/dd)")
date1 = CDate(wday)
wno = Weekday(date1) '曜日の番号を取得
Select Case wno
Case 1
arr = Array("日曜日", "Sunday", "Sun", "Sun Am")
Case 2
arr = Array("月曜日", "Monday", "Mon", "Mon Am")
'以下同様
Case 3
Case 4
Case 5
Case 6
Case 7
End Select
i = 1
For Each wk In arr
Worksheets("main").Cells(i, "A").Value = Worksheets(wk).Range("A1").Value
i = i + 1
Next
End Sub
No.1
- 回答日時:
以下はinputboxから日付を入力し、その曜日を求め、曜日に対応したシートのA1の内容をメッセージボックスに表示するサンプルです。
inputboxで2021/9/12と入力すると、日曜日、Sunday,SunのシートのA1の内容が表示されます。
-------------------------------------
Sub Sample()
Dim wday As String
Dim date1 As Date
Dim w1 As String
Dim w2 As String
Dim w3 As String
wday = InputBox("日付を入力してください(yyyy/mm/dd)")
date1 = CDate(wday)
w1 = Format(date1, "aaaa") '例 日曜日
w2 = Format(date1, "dddd") '例 Sunday
w3 = Format(date1, "ddd") '例 Sun
MsgBox (Worksheets(w1).Range("A1").Value)
MsgBox (Worksheets(w2).Range("A1").Value)
MsgBox (Worksheets(w3).Range("A1").Value)
End Sub
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Excel(エクセル) Excelについて 1 2023/03/06 10:26
- Excel(エクセル) 添付写真上のExcelシートのように時間と曜日ごとに担当者が振り分けられているシートがあります。 例 1 2023/03/08 13:02
- Excel(エクセル) Excel2019、2021の日付、曜日の表示について 2 2022/11/29 15:01
- Excel(エクセル) エクセルのマクロについて教えてください。 2 2023/01/25 11:42
- Excel(エクセル) エクセルの祝日に色が反映しない 4 2022/05/18 09:58
- Excel(エクセル) エクセルでカレンダーを作りたい 5 2023/05/16 07:32
- Visual Basic(VBA) 祝日を除いた月曜から土曜までの1週間分の日付行を選択し、別シートへカットアンドペーストしたい 13 2023/07/13 22:46
- Excel(エクセル) 【Excel関数、count系】どなたか教示下さると助かります。 Excelでシフトを管理しており、 2 2022/07/09 06:34
- Visual Basic(VBA) ExcelのVBAコードについて教えてください。 1 2023/01/23 11:02
- Visual Basic(VBA) EXCEL VBA 単語置き換え について質問です ブック名 ぶぶぶ シート名 ししし セル V3〜 3 2023/03/08 01:41
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
マクロを複数シートに実行する...
-
【 Excel】シートの見出しに自...
-
コマンドボタンがデザインモー...
-
EXCELのエラー
-
VBAで条件によってシート見出し...
-
VBAマクロが動きません
-
VBA ワークシートオブジェクト...
-
Excel:複数シートから条件に合...
-
マクロを特定の複数シートで実...
-
EXCELでマクロを使わずに図形の...
-
エクセル シート保護をかける...
-
Excelのマクロの呼び出し元を知...
-
vba エクセルシートの追加、名...
-
VBAで作るexcel検索窓
-
Excel VBA ピボットテーブル201...
-
マクロでの全シート内検索
-
EXCELの起動時に常に同じ...
-
マクロで複数シートに条件付き...
-
VBAの「一つのBook内のセルから...
-
エクセル:マクロの手直し
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
マクロを複数シートに実行する...
-
コマンドボタンがデザインモー...
-
【 Excel】シートの見出しに自...
-
エクセルを開いたとき常に同じ...
-
EXCELでワークシートを開いたら...
-
エクセルでシートの並び替えで...
-
VBAで条件によってシート見出し...
-
EXCELでマクロを使わずに図形の...
-
マクロを特定の複数シートで実...
-
エクセルの複数のワークシート...
-
複数シートの保護・解除
-
シートを保護した時でも並べ替...
-
EXCELのエラー
-
エクセルで複数のSheetを一括フ...
-
エクセルで回数をカウントする...
-
EXCELの起動時に常に同じ...
-
VBA シート名を先月の名前に...
-
エクセル2013でマクロのボタン...
-
Excelのマクロの呼び出し元を知...
-
Excelで,特定のシートを開いた...
おすすめ情報
ご回答、有難うございます。ご提示内容は分かりましたが、曜日取得後は、以下のようにその特定の曜日に関連した複数のシート4つをSelectし、以下のSelect Case 構文は可能ですか?
Select Case w1
Case 1
Worksheet(Array("main","日曜日","Sunday",”Sun”)).Select
Case 2
Worksheet(Array("main","月曜・・・
'以下同様
Case Else
MsgBox”休みです"
End Select
可能ですと、この4つのシートは開いた状態?なので、横断的にセルを比較する場合、worksheets("月曜日")!Range(A1)のようなセルの指定でいいですか? また、シート名を例えば曜日取得文字だけではなく、Mon Amとした場合はご回答された例ではどう記述すれば良いのでしょうか。