• ベストアンサー

EXCELVBAでリストボックス複数項目の数字と文字の表示

EXCELVBAでリストボックスに複数項目を表示するようにしますが、 文字の列と数字の列が有ります。文字の列はスペースで文字位置の 調整を行っています。数字の列は1桁~6桁の数字を使用しています TextAlignでLeftにすると数字部が見難くRightにすると文字部が見難く なります。文字の列は左寄せ数字部は右寄せと個別に設定が出来ない のでしょうか。

質問者が選んだベストアンサー

  • ベストアンサー
  • Wendy02
  • ベストアンサー率57% (3570/6232)
回答No.1

こんばんは。 この質問は久々なので、思い出すのに時間がかかってしまいました。 コードを見れば分かるとは思いますが、一旦、マクロで文字列を加工してから代入します。  '文字列の最大文字長(半角)  Const MAXLEN As Integer = 20 *ここは、ご自身で設定してください。 文字列には、半角スペースが入っていますから、Trim や RTrim を使います。 以下のマクロでは、A列,B列を使用していますので、適当な場所に書き換えてください。 '------------------------------------------- Sub ListEntringTest1() '2列に文字と数字を、リストにいれるマクロ   Dim buf() As Variant   Dim i As Long, j As Long   Dim strBuf As String   '文字列の最大文字長(半角)   Const MAXLEN As Integer = 20   With ListBox1     .ListFillRange = ""     .Clear     .ColumnCount = 2     '右寄せ     .TextAlign = fmTextAlignRight     j = Cells(Rows.Count, 1).End(xlUp).Row 'A列     ReDim buf(j, 1)     For i = 1 To j       strBuf = Cells(i, 1).Value 'A列       '文字       buf(i - 1, 0) = strBuf & String(MAXLEN - LenB(StrConv(strBuf, vbFromUnicode)), Space(1))       '数字       buf(i - 1, 1) = Cells(i, 2).Value 'B列     Next i     'リストに代入     .List() = buf   End With End Sub

makoseiya
質問者

お礼

早速の回答有難うございました。 やはり文字列の後方にスペースを入れて文字数を揃えてTextAlignRightにしてリスト表示するしかないのですね、お教え頂いた方法で作成したいと思います。

その他の回答 (1)

  • Wendy02
  • ベストアンサー率57% (3570/6232)
回答No.2

#1の補足 新規のシートでしてみると、文字列がずれていることがあります。 その場合は、ColumnWidths で、二つの列の幅を設定してください。

関連するQ&A