VB6で印刷するには?


ぽてち  2005-05-28 19:03:32  No: 90128  IP: [192.*.*.*]

VBでテキストボックスに入力した内容を印刷したいのですが、
みなさんはどのように処理されているのでしょうか?

フォームを印刷する方法でしたら見つかったのですが、
テキストボックス単体となると(必要性がないのかもしれませんが)
見つかりませんでした。

先輩方にご教示いただけますと幸いです。

編集 削除
LESIA  2005-05-28 21:17:14  No: 90129  IP: [192.*.*.*]

Printerオブジェクトを使えば出来ます。

Printer.Print Text1.Text
Printer.EndDoc

編集 削除
ぽてち  2005-05-31 01:06:16  No: 90130  IP: [192.*.*.*]

説明不足でした。
印刷プレビューやAccessVBAのような印刷時のイベントを指定できないのでしょうか?
お分かりになる方ご教示お願いいたします。

編集 削除
魔界の仮面弁士  2005-05-31 09:44:43  No: 90131  IP: [192.*.*.*]

イベントを指定する、という意味が良く分かりませんでしたが、
プレビュー機能に関しては、Printerオブジェクトに Print する代わりに、
FormやPictureBoxに Print すれば、プレビュー機能の代用となるでしょう。
(実際、「秀丸」のプレビュー機能では、PictureBoxに描画していますしね)

あるいは、帳票作成ツールが欲しいという意味ならば、
標準のDataReportや、CD-ROM内に収録されている
Crystal Report Control 4.6 などを利用する事ができます。

編集 削除
tk  2006-01-12 13:53:52  No: 90132  IP: [192.*.*.*]

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
社員登録を作成しそれをエクセルファイルに飛ばし、エクセルファイルに飛ばしたものを印刷したいのですが、かなり行き詰ってしまいました。申し訳ありませんが、どなたか知識を教えて頂きませんか??

編集 削除
なな  2006-01-12 14:14:18  No: 90133  IP: [192.*.*.*]

TKさんへ

このスレッドは はてちさんの質問と関係ない内容ならば、
便乗質問はやめて、新規投稿しましょう。

>かなり行き詰ってしまいました。
 となぜか、自分の質問内容を他人に説明できないレベルの理解力で
 あるならば、まずは下記の箇所で学習しましょう。

 http://www.bcap.co.jp/hanafusa/VBHLP/printflm.htm

編集 削除
安藤三四郎  2006-01-12 17:34:32  No: 90134  IP: [192.*.*.*]

他で質問させていただいてる者が答えるのはおこがましいかも知れませんが、以下の様なステートメントで柔軟に印刷できます。

Printer.ScaleMode = 6
    Printer.Font.Size = fsz
    Printer.CurrentX = px
    Printer.CurrentY = py
    Printer.Print dtlet

編集 削除
安藤三四郎  2006-01-12 17:34:32  No: 90135  IP: [192.*.*.*]

他で質問させていただいてる者が答えるのはおこがましいかも知れませんが、以下の様なステートメントで柔軟に印刷できます。

Printer.ScaleMode = 6
    Printer.Font.Size = fsz
    Printer.CurrentX = px
    Printer.CurrentY = py
    Printer.Print dtlet

編集 削除
安藤三四郎  2006-01-12 17:36:32  No: 90136  IP: [192.*.*.*]

すいません、書いている途中で送信してしまいました。

Printer.ScaleMode = 6    (紙に対する寸法位置単位をmm単位とします。)
    Printer.Font.Size = 10  (フォントサイズです)
    Printer.CurrentX = 50
    Printer.CurrentY = 50
    Printer.Print dtlet

編集 削除
安藤三四郎  2006-01-12 17:41:27  No: 90137  IP: [192.*.*.*]

たびたび、非常に申し訳ございません。
書いている途中で送信してしまいました。

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で確認してみて下さい。

編集 削除