(1)エクセルで7月31日分のシートをつくり、今年のカレンダーどおりの日付・曜日を(各シートのA1セルに、いちいち入力するのではなく)一括で各シートのA1セルに表示できる方法があれば、教えて下さい。
(2)エクセルで昨年7月の平日の数だけシートがあるファイルがあります。各シートのA1セルには、「平成19年7月○日(○曜日)」と入力されています。
このファイルを、今年の7月の平日カレンダーに一括置換するには、どうすればいいでしょうか?
昨年と今年は平日の日付はもちろん、同じ日でも曜日が違いますので、各シートを開き、いちいち日付・曜日を直さなければいけないのでしょうか。教えて下さい。宜しくお願いします。
A 回答 (3件)
- 最新から表示
- 回答順に表示
No.3
- 回答日時:
(1)31枚のシートに1日づつずらした日付を入れる方法
VBAで無いと出来ないでしょう。下記のように簡単。
シートの名前がシート1,シート2・・などで、そのシート名の1や2・・に頼る方法もありますが、変えられるとだめになるので、やめておいたほうがよいでしょう。
シートが別になると連続データの作成や関数式の複写が働かなくなるので難しいのです。
Sub test02()
For i = 1 To 4
Sheets(i).Range("a1") = #6/30/2008# + i
Sheets(i).Range("a1").NumberFormat = "yyyy/mm/dd(aaa)"
Next i
End Sub
ただし日付を入れるシートは31枚がシート名のタブ位置的に固まっていること、他のシートが混じってないこと。が条件です。
私はシートが4枚しかないので、4でテストしたが
For i = 1 To 31
で、シートを31枚用意してやってください。
(2)今年の日付で置き換え
ただし去年のシートは平日枚数分がシート名のタブ位置的に固まっていること、他のデータ性格のシートが混じってないこと。という前提で
(1)上記のプログラムの中で、WEEKDAY関数で土日を判別し
(海の日が規則を乱すが特別に判別して飛ばす)土日は飛ばして次のシート(.Nextシート)に順順に日付をセットしていけば簡単。
Sub test03()
Sheets(1).Select
For i = #7/1/2008# To #7/4/2008#
If Weekday(i) = 1 Or Weekday(i) = 7 Or i = #7/21/2008# Then
Else
MsgBox Format(i, "yyyy/mm/dd(aaa)")
ActiveSheet.Range("A1") = Format(i, "yyyy/mm/dd(aaa)")
ActiveSheet.Next.Activate
End If
Next i
End Sub
ただし今年平日数より、1シートだけ最後の次に余分にシートを作っておいて実行してください。
祝日・会社休業日等を年間で一般化するのはコードが複雑になる。
No.2
- 回答日時:
#1のレスは、
(2)
に対するものです。
(1)
に関しては、VBAで行行うことになると思います。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Excel(エクセル) 前の(左隣の)シートを連続参照するように、あとから変更したい 1 2023/02/22 00:51
- Excel(エクセル) 再質問です。エクセルでシートが1から31まであり、日付けが入力されているセルがあります。シート1から 4 2022/08/02 23:08
- Excel(エクセル) エクセルの祝日に色が反映しない 4 2022/05/18 09:58
- Excel(エクセル) エクセル関数について 2 2022/04/13 18:25
- Excel(エクセル) Excel セルに入っている日付を参照して、別シートのリストを表示させたい 1 2022/04/12 17:02
- Excel(エクセル) エクセルのフッタやヘッダーについて 3 2023/02/04 09:45
- Excel(エクセル) ユーザー定義について質問です。 2 2023/06/28 13:21
- Excel(エクセル) エクセルでカレンダーを作りたい 5 2023/05/16 07:32
- その他(Microsoft Office) エクセルの休日について教えてください。 1 2023/01/06 15:45
- Visual Basic(VBA) 顧客ごとに違う点検案内を作成するマクロ 4 2022/09/16 05:34
このQ&Aを見た人はこんなQ&Aも見ています
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
EXCELで複数のシートを一度に「...
-
エクセルでブック内の倍率がバ...
-
エクセルで複数のシートに画像...
-
【Excel VBA】データ貼り付け先...
-
エクセルの2つのシートを並び...
-
特定の複数のシートに同じ処理...
-
エクセルのシー名を二段表示に...
-
【ExcelVBA】マクロの入ったシ...
-
Wordで差し込み印刷時に表示す...
-
特定のシートのみ再計算させな...
-
ハイパーリンクでジャンプした...
-
アクセスからエクセルのシート...
-
ワークシートそのものの色を変...
-
Excel 全シート上のボタンを削...
-
accessへエクセルの複数のシー...
-
Accessのテーブルを既存のExcel...
-
EXCELの図形(テキストボックス)...
-
エクセルのシート連番の振り直し
-
エクセルを開くとメニューバー...
-
Excel VBAで、複数のシートの...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
EXCELで複数のシートを一度に「...
-
エクセルで複数のシートに画像...
-
特定のシートのみ再計算させな...
-
エクセルでブック内の倍率がバ...
-
ワークシートそのものの色を変...
-
【ExcelVBA】マクロの入ったシ...
-
エクセルの2つのシートを並び...
-
EXCELの図形(テキストボックス)...
-
ハイパーリンクでジャンプした...
-
エクセルのシート連番の振り直し
-
特定の複数のシートに同じ処理...
-
エクセルのシー名を二段表示に...
-
Wordで差し込み印刷時に表示す...
-
エクセルで、シートの名前を変...
-
エクセルでリンク貼り付けした...
-
エクセル、特定のシートにパス...
-
accessへエクセルの複数のシー...
-
Accessのテーブルを既存のExcel...
-
【Excel VBA】データ貼り付け先...
-
EXCELの「シートの見出し」のフ...
おすすめ情報