シートのVBAコード
下記のVBAコードを追加してください。
'はがき印刷の開始処理と終了処理
Private Sub ExHagakiPrintStart()
Dim s1 As String
Dim i As Integer
Dim lrow As Long
Dim lmaxrow As Long
Dim n As Long
Dim dat As String
CommandButton1.Enabled = False
CommandButton2.Enabled = False
CommandButton3.Enabled = False
CommandButton4.Enabled = False
CommandButton5.Enabled = False
CommandButton6.Enabled = False
CommandButton7.Enabled = False
lrow = 5
lmaxrow = Sheets("顧客一覧").Range("O65536").End(xlUp).Row
Do
If Sheets("顧客一覧").Range("O" & lrow) <> "" Then
'宛先郵便番号
n = 1
dat = ActiveSheet.Cells(lrow, 6)
For i = 1 To 8
s1 = Mid(dat, i, 1)
If s1 <> "-" And s1 <> "-" Then
Sheets("はがき印刷").Shapes("〒" & n).TextFrame.Characters.Text = s1
n = n + 1
End If
If n >= 8 Then
Exit For
End If
Next
'住所1、住所2
dat = ActiveSheet.Cells(lrow, 7)
s1 = ActiveSheet.Cells(lrow, 8)
If s1 <> "" Then
dat = dat & vbCrLf & s1
End If
dat = Replace(dat, "-", "│")
dat = Replace(dat, "-", "│")
Sheets("はがき印刷").Shapes("宛先住所").TextFrame.Characters.Text = dat
'名前
dat = ActiveSheet.Cells(lrow, 2) & vbCrLf & ActiveSheet.Cells(lrow, 3) & vbCrLf
dat = dat & ActiveSheet.Cells(lrow, 4) & " " & ActiveSheet.Cells(lrow, 13)
Sheets("はがき印刷").Shapes("宛先名前").TextFrame.Characters.Text = dat
Sheets("はがき印刷").PrintPreview
End If
lrow = lrow + 1
If lrow > lmaxrow Then
Exit Do
End If
Loop
CommandButton1.Enabled = True
CommandButton2.Enabled = True
CommandButton3.Enabled = True
CommandButton4.Enabled = True
CommandButton5.Enabled = True
CommandButton6.Enabled = True
CommandButton6.Enabled = True
CommandButton7.Enabled = True
End Sub
下記のVBAコードに変更してください。
'はがき連続印刷
Private Sub CommandButton7_Click()
Dim llast As Long
llast = Sheets("顧客一覧").Range("o4").End(xlDown).Row
If llast >= 65536 Then
MsgBox "印刷したい顧客の「はがき連続印刷」列に何かマークを入力してください。"
Exit Sub
End If
'印刷の開始処理
ExPrintReady "はがき印刷", True
'印刷の開始処理
ExHagakiPrintStart
'印刷の開始処理
ExPrintReady "はがき印刷", False
End Sub
顧客一覧画面
1)「はがき連続印刷」列の印刷したい顧客に何かを入力します。
ここでは1を入力しています。
2)「はがき連続印刷」ボタンをクリックすると、印刷プレビューを開始します。
3)印刷する場合は、「印刷」ボタンをクリックします。印刷しない場合は、「閉じる」ボタンをクリックします。
すると次の顧客に移動します。
[一人目の顧客の印刷プレビュー]
次のマークされた[二人目の顧客の印刷プレビュー]