Excel VBA質問箱 IV

当質問箱は、有志のボランティア精神のおかげで成り立っています。
問題が解決したら、必ずお礼をしましょうね。
本サイトの基本方針をまとめました。こちら をご一読ください。

投稿種別の選択が必要です。ご注意ください。
迷惑投稿防止のため、URLの入力を制限しています。ご了承ください。


55652 / 76738 ←次へ | 前へ→

【25857】規則性をプログラムに反映するには
質問  にしもり  - 05/6/16(木) 17:48 -

引用なし
パスワード
    こんにちは。
以前、みなさまのおかげで以下のシフト表作成のプログラムを組みました。
いま新たな2要件がでてきました。
パターンIの人をr=12,13,24,25,36,37,48,49,60,61,72,73,84,85の場合はm=6から表出させたい、という要件です。
パターンIIの人をr=12,13,24,25,36,37,48,49,60,61,72,73,84,85の場合は表出させない、という要件です。
規則性はあると思うのですが私の実力不足でプログラムに反映できません。
どこを修正すればよいか、どなたかご教示ください。

Sub test2()

  Dim v As Variant
  Dim lc As Long
  Dim r As Long
  Dim m As Long
  Dim i As Long
  Const lr As Long = 90
  Dim rag As Range, FRw As Long
  
'パターンI

  v = Worksheets("人員").Range("A2:A30").Value
  With ActiveSheet
    If .Name = "人員" Then
      MsgBox "シフト表をアクティブにして実行する事。", 64
      Exit Sub
    End If
    Application.ScreenUpdating = False
    r = 3
    i = 1
    Do While r <= lr
      Select Case True
        Case r Mod 4 = 3
          lc = 20
          m = 6
        Case r Mod 4 = 0
          lc = 14
          m = 8
        Case r Mod 4 = 1
          lc = 14
          m = 8
        Case Else
          lc = 14
          m = 6
      End Select
      Do While m <= lc
        .Cells(r, m).Value = v(i, 1)
        i = i + 1
        If i > 29 Then i = 1
        m = m + 2
      Loop
      r = r + 1
    Loop
    Application.ScreenUpdating = True
  End With

'パターンII

  v = Worksheets("人員").Range("B2:B4").Value
  With ActiveSheet

    Application.ScreenUpdating = False
    r = 4
    i = 1

    Do While r <= lr
      Select Case True
      Case r Mod 4 = 0
        .Cells(r, 6).Value = v(i, 1)
        i = i + 1
        If i > 3 Then i = 1
        r = r + 1
      Case r Mod 4 = 1
        .Cells(r, 6).Value = v(i, 1)
        i = i + 1
        If i > 3 Then i = 1
        r = r + 3
        End Select
    Loop

    Application.ScreenUpdating = True
  End With
  
End Sub

0 hits

【25857】規則性をプログラムに反映するには にしもり 05/6/16(木) 17:48 質問
【25860】Re:規則性をプログラムに反映するには ichinose 05/6/16(木) 21:02 発言
【25863】Re:規則性をプログラムに反映するには [名前なし] 05/6/16(木) 23:53 回答
【25958】Re:規則性をプログラムに反映するには にしもり 05/6/20(月) 7:51 お礼
【25998】Re:規則性をプログラムに反映するには にしもり 05/6/21(火) 12:01 質問
【26011】Re:規則性をプログラムに反映するには ponpon 05/6/21(火) 19:51 発言
【26054】Re:規則性をプログラムに反映するには にしもり 05/6/22(水) 16:37 お礼
【26078】Re:規則性をプログラムに反映するには [名前なし] 05/6/22(水) 23:32 発言

55652 / 76738 ←次へ | 前へ→
ページ:  ┃  記事番号:
2610219
(SS)C-BOARD v3.8 is Free