実現したいこと
Excel VBAにて、複数行のリストボックスを作成しています。
まず、以下のような関数を作成し、fmTextAlignLeftとfmTextAlignRightそれぞれの設定におけるリストボックスで、特定の行のみを逆向きの文字寄せにできることを目指しました。
Space(n)で空白を追加することで、文字寄せできるという仕組みです。
Public Function FormatAddSpace(ByVal strName As String, _
ByVal intMojiCount As Integer, _
Optional ByVal isTop As Boolean = True) As String
'行頭もしくは末尾にスペースを挿入する関数
'引数strName:対象となる文字列
'引数intMojiCount:スペース挿入後の全体の文字数
'引数isTop:先頭から処理する(True)か、末尾から(False)か(省略したら、先頭から)
Dim n As Integer
n = intMojiCount - Len(strName) 'スペースの挿入数
If isTop = True Then '省略しているので先頭から(True)
strName = Space(n) & strName
Else
strName = strName & Space(n) & "|"
End If
FormatAddSpace = strName
End Function
関数はたとえば以下の4行目のように呼び出します。
〇〇.Textは当然ですが文字列です。
With LstBox1 .AddItem 0 .List(.ListCount - 1, 1) = cboGoodsID.Text .List(.ListCount - 1, 2) = FormatAddSpace(txtGoodsName.Text, 30, False) .List(.ListCount - 1, 3) = Format(txtGoodsPrice.Text, "#,##0") .List(.ListCount - 1, 4) = Format(txtQuantity.Text, "#,##0") .List(.ListCount - 1, 5) = txtGoodsUnit.Text .List(.ListCount - 1, 6) = txtAmount.Text .List(.ListCount - 1, 7) = txtTax.Text .List(.ListCount - 1, 8) = txtSumWithTax.Text End With
しかしどうにも右寄せ、左寄せがリストボックスに反映されません。
ローカルウィンドウで値を確認してみても、思いどおりの値にはなっています。
なぜか、リストボックス上でのみ、空白がなくなってしまうようです。
エラーは発生しておりません。
原因、対処法等あれば教えていただきたいです。
回答1件
あなたの回答
tips
プレビュー