Excelで年賀状印刷ソフトを作ってみよう

Step 5 宛先面のシェイプの枠線を消す

シェイプ内に、「郵便番号」「住所」「名前」を入力しますが、その前にシェイプの枠線を消します。
シェイプは総当りで調べていきますので、対処するシェイプには独自の名前を設定しておく必要があります。



Homeへ > Excelでアプリケーションソフト2 > 年賀状印刷ソフト

シート画面

■実行前の宛先
レイアウトし易いように枠線が表示されています。
年賀状の宛先印刷

■実行後の画面
枠線が全て消えています。
年賀状宛先印刷


下記のVBAコードを追加してください。

'シェイプの開始処理と終了処理
Private Sub ExPrintReady(sw As Boolean)
    Dim t As Object
    Dim s As String
    Dim i As Integer
    
    For Each t In Sheets("宛先面").Rectangles
        'シェイプの名前
        s = t.Name
        
        '不必要なシェイプを消す/戻す
        If Left(s, 3) = "ガイド" Then
            '表示
            t.Visible = Not sw
        Else    '枠線を消す/戻す
            t.ShapeRange.Line.Visible = Not sw
        End If
    Next

    If sw = False Then
        Sheets("宛先面").Shapes("宛先住所").TextFrame.Characters.Text = "宛先住所"
        Sheets("宛先面").Shapes("宛先名前").TextFrame.Characters.Text = "名前"
        For i = 1 To 7
            Sheets("宛先面").Shapes("〒" & i).TextFrame.Characters.Text = i
        Next
    End If
End Sub

'印刷開始
Private Sub MyPrintStart()
    Dim ln1 As Long
    Dim ln2 As Long
    Dim rowmax As Long
    
    '名前の最下行の取得
    ln1 = Sheets("住所録").Range("A65536").End(xlUp).Row
    '住所1の最下行の取得
    ln2 = Sheets("住所録").Range("D65536").End(xlUp).Row
    
    If ln2 > ln1 Then
        rowmax = ln2
    Else
        rowmax = ln1
    End If
    
    If rowmax = 11 Then
        MsgBox "宛先の名前、住所が入力されていません。処理を中止します。"
        Exit Sub
    End If
    
    ExPrintReady True
        MsgBox "ここに印刷するプログラムを入力します。"
    ExPrintReady False
End Sub


Homeへ > Excelでアプリケーションソフト2 > 年賀状印刷ソフト

■■■
このサイトの内容を利用して発生した、いかなる問題にも一切責任は負いませんのでご了承下さい
■■■
当ホームページに掲載されているあらゆる内容の無許可転載・転用を禁止します


Copyright (c) Excel-Excel ! All rights reserved