要点
・ListBoxのTextAlign属性は、3-fmTextAlignRightにする(右寄せをデフォルトに考える)
・左寄せにしたい列のデータ末尾に、列幅から十分溢れるだけのスペースを追加する(補足3参照)
サンプル
補足
-
左寄せをデフォルトにした場合、右寄せしたい列では、列幅ぴったりとなるように左スペースを埋めないといけない。フォントやフォントサイズのバリエーションを考えると、やりたくない。
Format(foo, "@@@")
で右にシフトさせる方法も、結果は同様(フォントによってはうまく並ばない)。 -
右寄せをデフォルトにして右スペースを埋める場合、「元のデータの幅+埋めたスペースの幅 > ColumnWidth属性で設定した列幅」であればOK。埋める個数は、適当に大きな数をひとつ決めればいい。溢れたスペースで元のデータが左欄外に押し出されてしまうことはなく、左に寄って止まる。
-
スペースだけでOKなときもあれば、スペースだけだと無視されて右寄せになってしまうときもある(理由は未判明)。「スペース+何かの文字」で埋めれば、無視されることはない("何かの文字" が列内に表示されないよう、スペース数を調整する)。
-
スペースの追加は、ベタに
& " "
(スペースは必要数だけ)とか、& Space(50)
や& String(50, " ")
(50は一例) 等々で。スペースの付加は、地道にFor-In``For-Each``Do-Loop
で反復処理する以外はないんじゃないでしょうか。 -
表示されるデータを加工してしまうので、レコードを選択して次の作業に使うような場合は、忘れず
Trim
するとか、ListBoxのBoundColumn属性に指定する列は加工しないとか、そもそもBoundColumnは列幅0にして表示しないとか、しましょう。 -
Microsoft Office Professional 2016のExcelとOutlook(いずれもバージョン2003)で動作確認済。