Sub Macro1()
Range("画面番号") = Range("印刷開始")
Do While Range("画面番号")<= Range("印刷終了")
Sheets(ActiveSheet.Name).PrintOut
Range("画面番号") = Range("画面番号") + 1
Loop
End Sub
intAnswer = MsgBox(Format(Range("A1").Value, "yyyy年mm月") & _
"の印刷を開始しますか?", vbCrLf & vbYesNo + vbQuestion, "印刷確認")
If intAnswer = vbYes Then
Range("画面番号") = Range("印刷開始")
Do While Range("画面番号") <= Range("印刷終了")
Sheets(ActiveSheet.Name).PrintOut
Range("画面番号") = Range("画面番号") + 1
Loop
Else
Exit Sub
End If
End Sub
If Range("IV1").Value >= Range("A1").Value Or _
Range("IV1").Value = Range("A1").Value Then Exit Sub
intAnswer = MsgBox(Format(Range("A1").Value, "yyyy年mm月") & _
"の印刷を開始しますか?", vbCrLf & vbYesNo + vbQuestion, "印刷確認")
If intAnswer = vbYes Then
Range("画面番号") = Range("印刷開始")
Do While Range("画面番号") <= Range("印刷終了")
Sheets(ActiveSheet.Name).PrintOut
Range("画面番号") = Range("画面番号") + 1
Loop
Range("IV1").Value = Range("A1").Value
Else
Exit Sub
End If
End Sub
For i = 1 To 3
If objWSN.UserName = strUserName(i) Then BooFlag = True
Next i
If BooFlag = False Then
MsgBox "ユーザー名:" & objWSN.UserName & " は印刷できません"
Exit Sub
End If
If Range("IV1").Value >= Range("A1").Value Or _
Range("IV1").Value = Range("A1").Value Then
MsgBox "印刷無効"
Exit Sub
End If
・
・
・
Set objWSN = Nothing
End Sub
Sub Macro1()
Dim objWSN As Object
Dim strUserName(3) As String
Dim i As Integer
Dim BooFlag As Boolean
Dim intAnswer As Integer
' ----------------------------------------------------------------------
Set objWSN = CreateObject("WScript.Network")
strUserName(1) = "Golden"
strUserName(2) = "Hoge"
strUserName(3) = "HogeHoge"
For i = 1 To UBound(strUserName)
If objWSN.UserName = strUserName(i) Then BooFlag = True
Next i
If BooFlag = False Then
MsgBox "ユーザー名:" & objWSN.UserName & "は無効です"
Exit Sub
End If
Set objWSN = Nothing
' ----------------------------------------------------------------------
If Range("A1").Value < DateAdd("d", -30, Date) Or _
DateAdd("m", 2, Date) < Range("A1").Value Then
MsgBox "印刷無効です"
Exit Sub
End If
' ----------------------------------------------------------------------
intAnswer = MsgBox(Format(Range("A1").Value, "yyyy年mm月") & _
"の印刷を開始しますか?", vbCrLf & vbYesNo + vbQuestion, "印刷確認")
If intAnswer = vbYes Then
Range("画面番号") = Range("印刷開始")
Do While Range("画面番号") <= Range("印刷終了")
Sheets(ActiveSheet.Name).PrintOut
Range("画面番号") = Range("画面番号") + 1
Loop
Else
Exit Sub
End If
End Sub
49を修正しました。
このままでは手動で印刷できてしまうので、ユーザー制限のコードは
Private Sub Workbook_Open()
End Sub
の間に書いて、ファイルを開いたときに実行し、対象外のユーザーのときはシートは非表示のままにした方がいいですね。
まあ、今回はこのままにしておきます。
Sub Macro1()
Dim objWSN As Object
Dim strUserName(3) As String
Dim i As Integer
Dim BooFlag As Boolean
Dim strDate As String
Dim strPast As String
Dim strFuture As String
Dim intAnswer As Integer
' ----------------------------------------------------------------------
Set objWSN = CreateObject("WScript.Network")
strUserName(1) = "Golden"
strUserName(2) = "Hoge"
strUserName(3) = "HogeHoge"
For i = 1 To UBound(strUserName)
If objWSN.UserName = strUserName(i) Then BooFlag = True
Next i
If BooFlag = False Then
MsgBox "ユーザー: " & objWSN.UserName & " は印刷できません", _
vbCritical, "ユーザー名 確認"
Exit Sub
End If
Set objWSN = Nothing
' ----------------------------------------------------------------------
strDate = Range("A1").Value
strPast = Date - Day(Date)
strFuture = Year(Date) & "/" & Month(Date) + 2 & "/1"
If CDate(strDate) < CDate(strPast) Or _
CDate(strFuture) < CDate(strDate) Then
MsgBox "印刷無効です ", vbExclamation, "印刷月数 確認"
Exit Sub
End If
' ----------------------------------------------------------------------
intAnswer = MsgBox(Format(strDate, "yyyy年mm月") & _
"の印刷を開始しますか?", vbYesNo + vbQuestion, "印刷確認")
If intAnswer = vbYes Then
Range("画面番号") = Range("印刷開始")
Do While Range("画面番号") <= Range("印刷終了")
Sheets(ActiveSheet.Name).PrintOut
Range("画面番号") = Range("画面番号") + 1
Loop
Else
Exit Sub
End If
End Sub