テキストボックスの日本語文字ずれ


soso  2007-10-29 22:45:03  No: 137981

この問題に悩んでいます。
windows2000&VB6.0

テキストボックスに日本語文字を表示する時に、テキストボックスのフォントはMSゴシックに設定済み。英数字記号は下記問題ないみたいです。
Text6.Text = Text6.Text & fStrCut(strArry(0), 18) & "|" & vbNewLine

実行した時、Text6.Textの表示:

奥田  喜美枝      |
浜川  智子        |
テスト  016ノ2|

文字がそれてますね。何でぞれぞれの行の長さは違う感じですか。フォントの問題ですか?私はMSゴシックに設定しますね。上記の表示されているテキストをメモ帳にコピーして、メモ帳のフォントもMSゴシックに設定して、正しく現れます。
皆様、教えていただけませんか?

fStrCutについて
文字列を指定の幅にカットの役割で、半角・全角の混在する文字列を同じ半角換算文字長で取り出します。
最後の文字が漢字で、漢字分断がおきたら、半角スペースを付加し、対象文字数が少ない場合は、スペースを補います。
ソースコード:
Private Function fStrCut(ByRef CutTxt As String, _
                         ByVal CutLen As Long) As String
'半角・全角の混在する文字列を半角換算文字長で取り出し
    Dim myLen As Long, SysCodeTxt As String
    SysCodeTxt = StrConv(CutTxt, vbFromUnicode)     '文字列を変換
    myLen = LenB(SysCodeTxt)    '半角換算のバイト数を取得
    If myLen <= CutLen Then     '指定の長さより短い場合
        fStrCut = CutTxt & Space$(CutLen - myLen)   '足りない分はスペースで
    Else    '該当の文字列の方が長い場合、指定のバイトでカットする
        fStrCut = StrConv(LeftB$(SysCodeTxt, CutLen), vbUnicode)
        If InStr(fStrCut, vbNullChar) > 0 Then
            '漢字1バイト目で分断された場合の処理
            fStrCut = Left$(fStrCut, InStr(fStrCut, vbNullChar) - 1) & " "
        End If
    End If
End Function


(報告)  2007-10-29 23:04:37  No: 137982

マルチポスト先
http://bbs.wankuma.com/index.cgi?mode=al2&namber=9506

マルチポストについて
http://www.ippo.ne.jp/g/53.html


※返信する前に利用規約をご確認ください。

※Google reCAPTCHA認証からCloudflare Turnstile認証へ変更しました。






  このエントリーをはてなブックマークに追加