VB6.0用掲示板の過去のログ(No.1)−VBレスキュー(花ちゃん)
[記事リスト] [新規投稿] [新着記事] [ワード検索] [過去ログ] [管理用]

投稿日: 2003/01/23(Thu) 17:41
投稿者kazu
Eメール
URL
タイトルRe^2: TextBox 内の文字列の印刷…改行したら……

早速、有り難うございます。おっしゃるとおりですね。

> 指定位置はどのように指定されているのですか?
> どの辺に印刷されるのですか?

外部ファイル(仮に"File.txt"とします)に次のように印字位置を指定しています。
単位はmmです。(文章の部分だけです)

#Locate  30,69,   "!L1"      '1行目
#Locate  30,73,   "!L2"      '2行目
#Locate  30,77,   "!L3"      '3行目
#Locate  30,81,   "!L4"      '4行目
#Locate  30,85,   "!L5"      '5行目
#Locate  30,89,   "!L6"      '6行目

これを次のように行っています。(かなり省略していますが……)

Private Sub Command1()Click
  L1=Left(Text1.Text,15)
    L2=Mid(Text1.Text,16,15)
    ・
  ・
  ・
  L6=Mid(Text1.Text,76,15)

F1=FreeFile
Open "C:\My Documents\File.txt" For Input As #F1

Do
               Line Input #F1, tmp
                   If InStr(tmp, "#Locate") Then
                            set_Print
                   End If

  Loop Until EOF(F1)
        
Close F1

Set myObj = Printer

On Error GoTo err:
CDprt.CancelError = True
CDprt.ShowPrinter
GoTo prt:
err:    Exit Sub
prt:


Printer.EndDoc

End Sub

Private Sub set_Print()
    
          dat = Split(tmp, ",")                                                            
          xx = CLng(Replace(dat(0), "#Locate ", ""))                                
          yy = CLng(dat(1))                                                                
          tmp1 = Trim(dat(2))                                                        
          fp1 = InStr(tmp1, Chr(34))                                                        
          fp2 = InStrRev(tmp1, Chr(34))                                                  
          tmp2 = Replace(Mid(tmp1, fp1 + 1, fp2 - fp1 - 1), Chr(34), "")              
        
        
        If InStr(tmp2, "!") = 0 Then
          pStr = tmp2
          
        Else
              Select Case tmp2
                     Case "!L1"
                       pStr = L1
                    Case "!L2"
                       pStr = L2
                    Case "!L3"
                       pStr = L3
                    Case "!L4"
                       pStr = L4
                    Case "!L5"
                       pStr = L5
                    Case "!L6"
                       pStr = L6
                End Select
        End If
    
End Sub

他の項目は印刷できますが、文章のところが、改行をせずに15文字まで詰めると
指示通りに印字位置に印刷しますが、それ以下で改行すると次の行が用紙の左端に
印字位置が跳んでしまいます。取得文字数に満たないからだと思うのですが……。


- 関連一覧ツリー (★ をクリックするとツリー全体を一括表示します)

- 返信フォーム (この記事に返信する場合は下記フォームから投稿して下さい)

- Web Forum -