dポイントプレゼントキャンペーン実施中!

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

A 回答 (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
    • good
    • 0
この回答へのお礼

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

お礼日時:2010/01/16 12:11

#1の補足


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

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!