公民館使用日誌は、2007年頃から
- エクセルで予定表をし、
- ワードの差し込み印刷で印刷,
- 裏面は空の使用日誌を印刷している。
- 公民館の書庫に置いてある。
- 綴じるための穴もあけてある。
作るのを忘れると‥‥ 「ありません!」 と言われるのがつらい
差し込み印刷文書は一度作ればよいが、予定表はそうはいかない。
オートフィルが使えず面倒なのである。
(午前と午後の予定を作る必要がある)
そこで、5月分の予定表で VBA に挑戦した。
■ 前提
- 予め1週間分の予定(上図の使用年月日とクラスで、セルA2:B5 の範囲)を作っておく。
- 2〜5行目のC列より右は、(関数なので)残しておくこと。
- 前回のデータ(上図の6行目以下)は削除しておく。
- 例えば1ヶ月分を指定すると、その月の月末までの予定を作成する。4週間分ではない。
■ VBA
Sub 公民館使用予定作成() Dim SDate As Date, EDate As Date, newDate As Date Dim ii As Long, j As Long Dim MMCtr As Long, rowCtr As Long MMCtr = InputBox("何ヶ月分作成しますか?", , 3) SDate = Cells(2, 1) EDate = DateSerial(Year(SDate), Month(SDate) + MMCtr, 0) For ii = 2 To 5 SDate = Cells(ii, 1) newDate = DateAdd("d", 7, SDate) rowCtr = ii + 4 Do While newDate <= EDate Cells(rowCtr, 1) = newDate For j = 2 To 10 'Cells(rowCtr, j) = Cells(ii, j)では、値がコピーされるのでダメ Cells(ii, j).Select Selection.Copy Cells(rowCtr, j).Select ActiveSheet.Paste Next newDate = DateAdd("d", 7, newDate) rowCtr = rowCtr + 4 Loop Next End Sub