kt暦作成 : Box(大)型暦のサンプルコード

サンプルのように、ユーザー側での追加加工を考慮して、『kt暦作成』内では、
【ScreenUpdating = False/True 】を行なっていません。ユーザー側で必ず行って下さい。

また、『kt暦作成』 内では シート の プロテクトチェック を行ない、プロテクト時には作成
しないようになっていますが、ユーザーサイド でも事前に チェック する事をお薦めします。

下記のサンプルコードでは、出力先シートのクリア[ Cells.Clear ]を行なっています。
休日表示に『休日マップ』を使用する場合で、その『休日マップ』が出力先シート上に
用意されていると、シートクリアによって消えてしまいます。クリア前に文字列変数に
保存して「kt暦作成」にはその文字列変数を渡すようにして下さい。


Sub BOX大サンプル標準()
Dim i As Integer
Dim strADDR As String
Dim dtm基準日 As Date
Dim str基点セル As String

  dtm基準日 = DateValue("2001/1/1")
  str基点セル = "B2"

  If (ActiveSheet.ProtectContents = True) Then
    MsgBox "出力先シートがプロテクトされています"
    Exit Sub
  End If

  Application.ScreenUpdating = False
  ActiveSheet.Cells.Clear
  For i = 1 To 12
    strADDR = ActiveSheet.Range(str基点セル) _
                  .Offset(15 * (i - 1), 0).Address(FalseFalse)
    Call kt暦作成(3, dtm基準日, kt_土日祝, ActiveSheet, strADDR)
    dtm基準日 = DateAdd("m", 1, dtm基準日)
  Next i
  Application.ScreenUpdating = True
End Sub

'------------------------------『2列表示』------------------------------
Sub BOX大サンプル2列()
Dim i As Integer
Dim j As Integer
Dim strADDR As String
Dim dtm基準日 As Date
Dim str基点セル As String
  dtm基準日 = DateValue("2001/1/1")
  str基点セル = "B2"

  If (ActiveSheet.ProtectContents = True) Then
    MsgBox "出力先シートがプロテクトされています"
    Exit Sub
  End If

  Application.ScreenUpdating = False
  ActiveSheet.Cells.Clear

' 1月目の暦作成後に[基点セル]の位置が[3列の結合セル]になる為、
' 2ヶ月目以降の[列方向Offset計算]が2列分ズレてしまう。
' これを避ける為、結合セルにならない位置を基点セルとして定義し直す。
  str基点セル = ActiveSheet.Range(str基点セル).Offset(0, 3).Address(False, False)
  For i = 1 To 6
    For j = 1 To 2
      strADDR = ActiveSheet.Range(str基点セル) _
                    .Offset(15 * (i - 1), 8 * (j - 1) - 3).Address(FalseFalse)
      Call kt暦作成(3, dtm基準日, kt_土日祝, ActiveSheet, strADDR)
      dtm基準日 = DateAdd("m", 1, dtm基準日)
    Next j
  Next i
  Application.ScreenUpdating = True
End Sub

'-----------------------------『3列表示』-------------------------------
Sub BOX大サンプル3列()
Dim i As Integer
Dim j As Integer
Dim k As Integer
Dim strADDR As String
Dim dtm基準日 As Date
Dim str基点セル As String
  dtm基準日 = DateValue("2001/1/1")
  str基点セル = "B2"

  If (ActiveSheet.ProtectContents = True) Then
    MsgBox "出力先シートがプロテクトされています"
    Exit Sub
  End If

  Application.ScreenUpdating = False
  ActiveSheet.Cells.Clear

' 1月目の暦作成後に[基点セル]の位置が[3列の結合セル]になる為、
' 2ヶ月目以降の[列方向Offset計算]が2列分ズレてしまう。
' これを避ける為、結合セルにならない位置を基点セルとして定義し直す。
  str基点セル = ActiveSheet.Range(str基点セル).Offset(0, 3).Address(False, False)
  For i = 1 To 4
    For j = 1 To 3
      strADDR = ActiveSheet.Range(str基点セル) _
                    .Offset(15 * (i - 1), 8 * (j - 1) - 3).Address(FalseFalse)
      Call kt暦作成(3, dtm基準日, kt_土日祝, ActiveSheet, strADDR)
      dtm基準日 = DateAdd("m", 1, dtm基準日)
    Next j
  Next i
  Application.ScreenUpdating = True
End Sub




角田 桂一 Mail:addinbox@h4.dion.ne.jp CopyRight(C) 2001 Allrights Reserved.