読者です 読者をやめる 読者になる 読者になる

Muni Bus

パソコンの操作方法や設定方法を忘れないようにメモしています。ブログを一回引っ越ししているので、所々表示がかなり乱れています・・・

【Visual Basic】全角半角文字混在の文字列に空白を足して指定の長さ(バイト長)で出力する

Visual Basic
文字列を出力する際に、Format関数を用いて表示する文字列長を調整することができるが、全角文字と半角文字が混在している文字列を扱う時には、うまくいなかい。現在のVisual Basicは文字を統合的に扱うことから、半角文字(1バイト文字、「A」など)と全角文字(2バイト文字、「あ」など)もそれぞれ1文字と認識するためである。 これではテキストファイルに表示桁を揃えて出力する際には都合が悪いので、文字列を指定したバイト長で出力する関数を作成する。以下に例を示すが、以下の例では文字列に長さを与えて使用すると、指定の長さで文字列を返してくる。その際、元の文字列は左寄せになり、余った部分には半角空白が追加される。
Function padRight(ByVal st As String, ByVal len As Integer) As String
    Dim len0 As Integer
    len0 = lengthB(st)
    Return LTrim(st) & Space(len - len0)
End Function
なお、文字列の長さをバイト長で得るための自作関数が別途必要であり、lengthBという自作関数を使用している。それについてはここで説明をしている。