|
よろしくお願いいたします
下記の記述を簡略化することはできますでしょうか
よろしくお願いいたします
Private Sub CommandButton1_Click()
Sheet2.Range("A1:AG60").Value = Sheet15.Range("A1:AG60").Value
Sheet2.Range("W5:AG5").Value = Format$(Now(), "ggge年mm月dd日(aaa)")
Dim i As Long
Dim lngRow As Long
Dim lngColumn As Long
Dim 行 As Long
行 = ActiveCell.Row
For i = 1 To 37 'チェックボックスの番号
If Me.Controls("CheckBox" & i) Then
lngColumn = (j Mod 4) * 8
lngRow = (j \ 4) * 2
ActiveSheet.Cells(行, 6 + i - 1).Copy _
Sheet2.Cells(6 + lngRow, _
3 + lngColumn).Resize(2, 7)
j = j + 1
End If
Next i
Sheet2.Range("Y25:AG26") = ComboBox1.Text '送信者
Sheet2.Range("L32:AG36") = "仮設トイレ、水道、電気" '用件
Cells(行, "B").Copy Sheet2.Range("L39:R41") '工事名
Cells(行, "D").Copy Sheet2.Range("AA39:AG41") '監督名
Cells(行, "C").Copy Sheet2.Range("L44:AG46") '工事場所
Sheet2.Range("A48:K56") = "希望設置日" '希望設置日
Sheet2.Range("L51:AG53").Value = Format(Calendar1.Value, "ggge年mm月dd日(aaa)") 'カレンダーから摘出
Sheet2.Range("L57:AG60") = TextBox1.Text '備考
Dim myMSG As String
Dim myFlg As Boolean
Dim x As Long
myFlg = False
For x = 1 To 37 'チェックボックスの番号
If Me.Controls("CheckBox" & x).Value = True Then
myMSG = myMSG & Me.Controls("CheckBox" & x).Caption & vbCrLf
myFlg = True
End If
Next x
If myFlg = True Then
myMSG = myMSG & "宛てで宜しいですか?"
If MsgBox(myMSG, vbInformation + vbYesNo) = vbYes Then
Sheet2.Activate
Me.Hide
ActiveWindow.ActiveSheet.PrintPreview
Me.Show vbModeless
End If
Else
myMSG = "いずれにもチェックが入っていません"
MsgBox myMSG
End If
End Sub
|
|