VBでテキストボックスに入力した内容を印刷したいのですが、
みなさんはどのように処理されているのでしょうか?
フォームを印刷する方法でしたら見つかったのですが、
テキストボックス単体となると(必要性がないのかもしれませんが)
見つかりませんでした。
先輩方にご教示いただけますと幸いです。
Printerオブジェクトを使えば出来ます。
Printer.Print Text1.Text
Printer.EndDoc
説明不足でした。
印刷プレビューやAccessVBAのような印刷時のイベントを指定できないのでしょうか?
お分かりになる方ご教示お願いいたします。
イベントを指定する、という意味が良く分かりませんでしたが、
プレビュー機能に関しては、Printerオブジェクトに Print する代わりに、
FormやPictureBoxに Print すれば、プレビュー機能の代用となるでしょう。
(実際、「秀丸」のプレビュー機能では、PictureBoxに描画していますしね)
あるいは、帳票作成ツールが欲しいという意味ならば、
標準のDataReportや、CD-ROM内に収録されている
Crystal Report Control 4.6 などを利用する事ができます。
Private Sub cmdENTRY_Click()
Dim NO As String
Dim NAME As String
Dim ADRESS As String
Dim Phonenumber As String
Dim sex As String
Dim LTD As String
Dim flg1 As Integer
Dim filenum As Integer
filenum = FreeFile
Dim temp As String
NO = txtNO
NAME = txtNAME
ADRESS = txtADRESS
Phonenumber = txtPHONENUMBER
sex = txtSEX
LTD = txtLTD
If NO = "" Then
flg1 = 1
End If
If NAME = "" Then
flg1 = 1
End If
If ADRESS = "" Then
flg1 = 1
End If
If Phonenumber = "" Then
flg1 = 1
End If
If sex = "" Then
flg1 = 1
End If
If LTD = "" Then
flg1 = 1
End If
If flg1 = 1 Then
MsgBox "入力されていない項目があるぞ"
Exit Sub
End If
If 4 <> Len(NO) Then
MsgBox "社員番号を正しく入力してくれ"
Exit Sub
End If
If False = IsNumeric(NO) Then
MsgBox "入力形式に誤りがある"
Exit Sub
End If
If 1 <> Len(sex) Then
MsgBox "性別を正しく入力する"
Exit Sub
End If
' If "1" Or "2" <> sex Then
' MsgBox "性別を正しく入力する"
' End If
Open "C:\Documents and Settings\Administrator\デスクトップ\kobayashi\社員登録.csv" For Input As #filenum
Do Until EOF(filenum)
'データを一件ずつ読み込む
Input #filenum, temp
If temp = NO Then
flag2 = 1
End If
Loop
Close #filenum
If flag2 = 1 Then
MsgBox "同じ社員番号あり"
Exit Sub
End If
Open "C:\Documents and Settings\Administrator\デスクトップ\kobayashi\社員登録.csv" For Append As #filenum
Write #filenum, NO, NAME, ADRESS, Phonenumber, sex, LTD
Close #filenum
MsgBox "登録しました"
txtNO.SetFocus
txtNO.Text = ""
txtNAME.Text = ""
txtADRESS.Text = ""
txtPHONENUMBER.Text = ""
txtSEX.Text = ""
txtLTD.Text = ""
End Sub
Private Sub cmdcopy_Click()
With Printer.PaperSize = vbPRPSA4
Orientation = vbPRORLandscape
End With
Open "C:\Documents and Settings\Administrator\デスクトップ\kobayashi\社員登録.csv" For Append As #filenum
Write #filenum, NO, NAME, ADRESS, Phonenumber, sex, LTD
Close #filenum
End Sub
社員登録を作成しそれをエクセルファイルに飛ばし、エクセルファイルに飛ばしたものを印刷したいのですが、かなり行き詰ってしまいました。申し訳ありませんが、どなたか知識を教えて頂きませんか??
TKさんへ
このスレッドは はてちさんの質問と関係ない内容ならば、
便乗質問はやめて、新規投稿しましょう。
>かなり行き詰ってしまいました。
となぜか、自分の質問内容を他人に説明できないレベルの理解力で
あるならば、まずは下記の箇所で学習しましょう。
http://www.bcap.co.jp/hanafusa/VBHLP/printflm.htm
他で質問させていただいてる者が答えるのはおこがましいかも知れませんが、以下の様なステートメントで柔軟に印刷できます。
Printer.ScaleMode = 6
Printer.Font.Size = fsz
Printer.CurrentX = px
Printer.CurrentY = py
Printer.Print dtlet
他で質問させていただいてる者が答えるのはおこがましいかも知れませんが、以下の様なステートメントで柔軟に印刷できます。
Printer.ScaleMode = 6
Printer.Font.Size = fsz
Printer.CurrentX = px
Printer.CurrentY = py
Printer.Print dtlet
すいません、書いている途中で送信してしまいました。
Printer.ScaleMode = 6 (紙に対する寸法位置単位をmm単位とします。)
Printer.Font.Size = 10 (フォントサイズです)
Printer.CurrentX = 50
Printer.CurrentY = 50
Printer.Print dtlet
たびたび、非常に申し訳ございません。
書いている途中で送信してしまいました。
Printer.ScaleMode = 6 (紙に対する寸法位置単位をmm単位とします。)
Printer.Font.Size = 10 (フォントサイズです)
Printer.CurrentX = 50(紙左上から右方向に50mm、実際は55mmぐらい)
Printer.CurrentY = 50(紙左上から下方向に50mm、実際は55mmぐらい)
Printer.Print TextBox.Text
Printer.EndDoc
出力する位置と、フォントサイズ、(フォント名)、等を設定して印刷すればよいということです。
紙のサイズや、紙の向きを設定するプロパティもPrinterオブジェクトにありますのでHELPで確認してみて下さい。