いつもの手順でプロジェクトにUserForm4を追加する。UserForm4の[プロパティ]の[Caption]に「印刷とPDF実行フォーム」と指定する。
ツールボックスから表2のコントロールを配置する。「部数テキストボックス」のプロパティ[IMEMode]に「fmIMEModeOff」を指定して、英数文字の入力を可能にしておく。
1つ目の「ボタン」の[プロパティ]の[Caption]には「メニュー」と指定する。「ボタン」の表面の文字が「メニュー」に変わる。2つ目の「ボタン」の[プロパティ]の[Caption]には「印刷実行」と指定する。「ボタン」の表面の文字が「印刷実行」に変わる。3つ目の「ボタン」の[プロパティ]の[Caption]には「PDFに書き出す」と指定する。「ボタン」の表面の文字が「PDFに書き出す」に変わる。
| コントロール | オブジェクト名 |
|---|---|
| オプションボタン | 印刷オプションボタン |
| オプションボタン | PDFオプションボタン |
| ラベル(印刷部数) | デフォルト |
| テキストボックス | 部数テキストボックス |
| ボタン | メニューボタン |
| ボタン | 印刷ボタン |
| ボタン | PDFボタン |
各コントロールの書式を設定してレイアウトすると図3のようになる。
プロジェクト内のUserForm4を選択して、マウスの右クリックで表示されるメニューから、「コードの表示」を選択する。
ここからは、「印刷とPDF実行」フォームのマクロを記述していく。
まず、UserForm4(「印刷とPDF実行」フォーム)がアクティブになったときの処理だ(リスト4)。
Private Sub UserForm_Activate()
Worksheets("個人情報データ").Select
End Sub
「個人情報データ」シートを選択して表示させる。必ず、印刷またはPDF化するシートをアクティブ化しておく必要があるので、注意してほしい。
次は、「メニュー」ボタンがクリックされたときの処理だ(リスト5)。
Private Sub メニューボタン_Click()
Worksheets("メニュー").Select
UserForm4.Hide
End Sub
「メニュー」シートを選択して表示し、「印刷実行フォーム」であるUserForm4を隠す。
今回作成したVBAを、前回作成したメニューの「印刷設定」「印刷またはPDF化」の「角丸四角形」に登録する。これで、全てのメニューの項目をクリックすると、各フォームが表示されるようになる。
次は、「印刷オプション」ボタンがクリックされたときの処理だ(リスト6)。
Private Sub 印刷オプションボタン_Click() 部数テキストボックス.Enabled = True 印刷ボタン.Enabled = True PDFボタン.Enabled = False End Sub
使用不可となっていた、「部数テキストボックス」への値の入力を可能にし、「印刷実行」ボタンを使用可能にする。代わりに「PDFに書き出す」ボタンの使用は不可とする。
次は、「PDFオプション」ボタンがクリックされたときの処理だ(リスト7)。
Private Sub PDFオブションボタン_Click() PDFボタン.Enabled = True 部数テキストボックス.Enabled = False 印刷ボタン.Enabled = False End Sub
「PDFに書き出す」ボタンの使用を可能にする。その代わりに、「部数テキストボックス」と「印刷実行」ボタンの使用を不可とする。
次は、「印刷実行」ボタンがクリックされたときの処理だ(リスト8)。
Private Sub 印刷ボタン_Click()
If 部数テキストボックス.Text = "" Or IsNumeric(部数テキストボックス.Text) = False Then
MsgBox "印刷部数が入力されていないか、入力された値が不正です。"
Exit Sub
Else
ActiveSheet.PrintOut copies:=部数テキストボックス.Text
End If
End Sub
「部数テキストボックス」に値が入力されていなかったり、入力された値がなかったりする場合は、警告メッセージを表示して処理を抜ける。
入力された値が数値かどうかの判定にはIsNumeric関数を使用する。数値の場合はTrue、それ以外はFalseを返す関数だ。
正常に部数が入力された場合は、PrintOutメソッドで、「部数テキストボックス」に入力された部数分の印刷を開始する。
ピボットテーブルとは何か──「そもそも、何をする機能か」を理解する
どんなビジネスにも欠かせないリレーショナルデータベースの基礎知識と作り方――テーブル、レコード、フィールド、主キーとはCopyright © ITmedia, Inc. All Rights Reserved.