プロが教える店舗&オフィスのセキュリティ対策術

ユーザーフォームでテキストだけ印刷させる方法はありますか?
ユーザーフォームに何箇所か入力するリストボックス、テキストボックスなどがあり、すべてを入力した後、最後にエクセルに登録するようなフォームなのですが、登録する前にそれらを印刷できればと思います。
登録したエクセルを印刷してもいいんですが、他の情報とかがあるのでユーザーフォームだけを印刷したいです。また、ユーザーフォームをそのまま印刷するとよけいな装飾なども印刷されトナーがもったいないのでそれもしたくはありません。
宜しくお願いします。

A 回答 (1件)

こんなのではどうでしょうか?


作業シートを作ってフォーム上のコントロールの値を書き込み印刷します。
ユーザーフォームのvba部にコピーして、登録の所から呼び出してください。
Private Sub sample()
Dim ws As Worksheet
Dim ctrl As Control
Dim r As Long
Set ws = Worksheets.Add'作業シート追加
r = 1'作業シートでの行番号
For Each ctrl In Me.Controls
ws.Range("A" & r) = ctrl.Name
ws.Range("B" & r) = ctrl.Value
r = r + 1
Next
ws.PrintOut'作業シート印刷
Application.DisplayAlerts = False'次の行で作業シートを削除する時に警告が出るので、警告中止
ws.Delete'作業シート削除
Application.DisplayAlerts = True'警告再開
End Sub

このままでは余計なコントロールも印刷するので、必要なら
ws.Range("A" & r) = ctrl.Name
ws.Range("B" & r) = ctrl.Value
r = r + 1
の部分を
If TypeName(ctrl) = "TextBox" Or TypeName(ctrl) = "ListBox" Then
ws.Range("A" & r) = ctrl.Name
ws.Range("B" & r) = ctrl.Value
r = r + 1
End If
や、
Select Case TypeName(ctrl)
Case "TextBox", "ListBox", "ComboBox"
ws.Range("A" & r) = ctrl.Name
ws.Range("B" & r) = ctrl.Value
r = r + 1
End Select
に変更してください。

この回答への補足

むずかしそうですがやってみます。

補足日時:2009/03/26 16:51
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!