- ベストアンサー
EXCELVBAでリストボックス複数項目の数字と文字の表示
EXCELVBAでリストボックスに複数項目を表示するようにしますが、 文字の列と数字の列が有ります。文字の列はスペースで文字位置の 調整を行っています。数字の列は1桁~6桁の数字を使用しています TextAlignでLeftにすると数字部が見難くRightにすると文字部が見難く なります。文字の列は左寄せ数字部は右寄せと個別に設定が出来ない のでしょうか。
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
こんばんは。 この質問は久々なので、思い出すのに時間がかかってしまいました。 コードを見れば分かるとは思いますが、一旦、マクロで文字列を加工してから代入します。 '文字列の最大文字長(半角) 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
その他の回答 (1)
- Wendy02
- ベストアンサー率57% (3570/6232)
#1の補足 新規のシートでしてみると、文字列がずれていることがあります。 その場合は、ColumnWidths で、二つの列の幅を設定してください。
お礼
早速の回答有難うございました。 やはり文字列の後方にスペースを入れて文字数を揃えてTextAlignRightにしてリスト表示するしかないのですね、お教え頂いた方法で作成したいと思います。