none
マクロコードの作り方 RRS feed

  • 質問

  • sheet4にカレンダーと入力表を作り、休暇日入力欄に1を入力し休暇日入力完了(実行ボタン)を

    クリックすると、カレンダーの日付のところにセルB16のマークを表示するというマクロですが、

    これを入力表と実行ボタンを別のシート(sheet5)に移動させたいのですがどなたかご伝授下さい。

    上記のマクロコードは

    Private Sub 休暇日入力_Click()
        Const HolTopR = 19 
        Const HolTopC = 2                            
        Const HolEndR = 22                       
        Const HolEndC = 5                    
        Const MarkR = 16  
        Const MarkC = 2                                 
        Const calenTopR = 5     
        Const calenTopC = 2                       
        Const calenEndR = 8                         
        Const calenEndC = 32                        
      Dim wkRange As Range
      Dim HolRange As Range
      Dim CalenRange As Range
      Dim MarkRange As Range
     
      With ThisWorkbook.Sheets(4)
     
        Set HolRange = Range(.Cells(HolTopR, HolTopC), .Cells(HolEndR, HolEndC))
        Set CalenRange = Range(.Cells(calenTopR, calenTopC), .Cells(calenEndR, calenEndC))
        Set MarkRange = Range(.Cells(MarkR, MarkC), .Cells(MarkR, MarkC))
      
        For Each wkRange In HolRange
          If wkRange.Value <> "" Then
            MarkRange.Copy _
                Destination:=CalenRange(wkRange.Row - HolTopR + 1, wkRange.Value)
          
           End If
        Next wkRange
     
      End With
    End Sub

    です

    2018年10月17日 14:48

回答

  • CalenRnageがSheets(4)になりますから、以下で良いのではないでしょうか?

      With ThisWorkbook.Sheets(4)
        Set CalenRange = Range(.Cells(calenTopR, calenTopC), .Cells(calenEndR, calenEndC))
      End With
    
      With ThisWorkbook.Sheets(5)
      
        Set HolRange = Range(.Cells(HolTopR, HolTopC), .Cells(HolEndR, HolEndC))
        Set MarkRange = Range(.Cells(MarkR, MarkC), .Cells(MarkR, MarkC))
       
        For Each wkRange In HolRange
          If wkRange.Value <> "" Then
            MarkRange.Copy _
                Destination:=CalenRange(wkRange.Row - HolTopR + 1, wkRange.Value)
           
           End If
        Next wkRange
      
      End With
    #質問の題名は、できるだけ質問の内容を簡潔に表すものがわかりやすいです。


    ★良い回答には質問者は回答済みマークを、閲覧者は投票を!


    2018年10月18日 1:10
    モデレータ