No.2ベストアンサー
- 回答日時:
こんにちは。
もう、すでに回答が出ているようですが、私も考えてみました。
欲を言えば、年/月で設定させたほうがよいのですが、今回は、月だけです。
これは、Personal.xls の標準モジュールが良いのではないかと思います。
'-----------------------------------------------------------------
Sub DaysMonthAddedSheets()
''シート生成マクロ
Dim myMonth As Variant
Dim myDate As Date
Dim i As Integer, j As Integer
Dim m As Integer
Dim AcBook As Workbook
Set AcBook = ActiveWorkbook
'月と日付の決定
myMonth = Application.InputBox("月を入力してください。" & vbCrLf & _
"注意: 出力は、" & Year(Date) & "年の月の日付です", "シート生成マクロ", Type:=2)
If myMonth = "" Or VarType(myMonth) = vbBoolean Then Exit Sub
If Not IsNumeric(myMonth) Then
MsgBox "数字を入れてください。"
Exit Sub
ElseIf 1 > CInt(myMonth) Or CInt(myMonth) > 12 Then
MsgBox "月数が正しくありません。"
Exit Sub
End If
myDate = DateSerial(Year(Date), myMonth + 1, 0)
m = Day(myDate)
'シート生成
Application.ScreenUpdating = False
With AcBook
i = .Worksheets.Count
.Worksheets.Add After:=.Worksheets(i), Count:=(m - i)
On Error GoTo ErrHandler
For j = 1 To m
.Worksheets(j).Name = Format$(myDate - m + j, "mmdd")
Next j
'終了後は、1日のシートへ
.Worksheets(Format$(myDate - m + 1, "mmdd")).Select
End With
Set AcBook = Nothing
Exit Sub
Application.ScreenUpdating = True
ErrHandler:
'再生成のエラー処理
AcBook.Worksheets(Format$(myDate - m + j, "mmdd")).Name = "Temp"
Resume
Err.Clear
End Sub
'-----------------------------------------------------------------
この回答へのお礼
お礼日時:2006/08/08 13:56
Wendy02さん、こんにちは。
お礼が前後して申し訳ないです。
実行してみました。
相変わらず、すごい!!正直な感想です。
どうもありがとうございました。
No.1
- 回答日時:
やろうとしていることがいまいちよくわからないのですが、
1.「月次処理」という名前のシートのA列にmmdd形式で1日から最終日までを自動で記入する。
2.A列に入力した数だけシートを追加しA列セルと同じ名前にする。
というサンプルです。ご参考まで。
Sub test01()
m = Application.InputBox("何月分ですか?2006/08のように入力してください。")
fd = m & "/01"
ld = Day(DateSerial(Year(fd), Month(fd) + 1, 0))
With Sheets("月次処理").Cells(1, 1)
.NumberFormatLocal = "mmdd"
.Value = fd
.AutoFill Destination:=Range("A1:A" & ld)
For i = 1 To ld
Set ns = Sheets.Add(After:=Sheets(Sheets.Count))
ns.Name = .Offset(i - 1).Text
Next
End With
End Sub
この回答へのお礼
お礼日時:2006/08/08 11:27
>やろうとしていることがいまいちよくわからないのですが
いえいえ、つたない説明でここまで完璧なマクロを教えていただきありがとうございました。
非常に助かりました。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) エクセルのマクロについて教えてください。 1 2022/10/11 12:55
- Excel(エクセル) 【困っています】VBA 追加処理の記述を教えてください。 1 2022/08/25 22:54
- Visual Basic(VBA) VBA 複数のブックに同じ列を表示させる方法 2 2022/07/20 23:49
- Visual Basic(VBA) 【ExcelVBA】動的にボタン、ボタン名を生成できますか? 7 2022/04/08 12:54
- Excel(エクセル) 【マクロ】マクロが保存されているエクセルとは、別のエクセルブックの全シートの非表示列を再表示したい 1 2022/12/24 20:48
- PowerPoint(パワーポイント) エクセルのマクロについて教えてください。 1 2022/03/25 17:03
- Excel(エクセル) Excelのマクロについて教えてください。 4 2022/05/31 14:07
- Visual Basic(VBA) エクセルのマクロについて教えてください。 5 2023/06/02 08:44
- Excel(エクセル) エクセルのマクロについて教えてください。 2 2023/01/25 11:42
- Visual Basic(VBA) エクセルのマクロについて教えてください。 1 2022/10/13 08:41
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
マクロを複数シートに実行する...
-
エクセルを開いたとき常に同じ...
-
エクセルで回数をカウントする...
-
複数シートの保護・解除
-
EXCELでワークシートを開いたら...
-
VBAで条件によってシート見出し...
-
Excel:複数シートから条件に合...
-
【 Excel】シートの見出しに自...
-
コマンドボタンがデザインモー...
-
エクセルの複数のワークシート...
-
EXCELのエラー
-
ExcelのSheetに作られたMacro1...
-
エクセルシート内での閲覧制限
-
マクロを特定の複数シートで実...
-
エクセルVBAでcmbBoxのプロパテ...
-
【Excel VBA】シート見出しの色...
-
シートを保護した時でも並べ替...
-
エクセルでシートの並び替えで...
-
EXCEL 複数シートを1つの...
-
マクロで複数シートに条件付き...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
コマンドボタンがデザインモー...
-
マクロを複数シートに実行する...
-
【 Excel】シートの見出しに自...
-
EXCELでワークシートを開いたら...
-
エクセルを開いたとき常に同じ...
-
VBAで条件によってシート見出し...
-
EXCELでマクロを使わずに図形の...
-
マクロを特定の複数シートで実...
-
エクセルでシートの並び替えで...
-
エクセルの複数のワークシート...
-
複数シートの保護・解除
-
エクセルで複数のSheetを一括フ...
-
エクセルで回数をカウントする...
-
EXCELのエラー
-
Excel:複数シートから条件に合...
-
VBA シート名を先月の名前に...
-
EXCELの起動時に常に同じ...
-
Excelで,特定のシートを開いた...
-
Excelのマクロの呼び出し元を知...
-
メッセージボックスでシート名...
おすすめ情報