| 
    
     |  | ▼ichinose さん: >▼kz さん:
 >こんにちは。
 >
 >>   すみません。リストボックス(ColumnCount=4)にデータを表示させる際、2列目だけを左揃えにし、それ以外は右揃えにしたいと思ってます。後者はプロパティで設定可能ですが、前者はプロパティで設定ができなかったので、構文で処理させなくてはいけないかと思います。「マニュアル分リスト.Column(1, i - 始発行).textalign=fmtextalignleft」を入力し、実行するとオブジェクトが必要です、というエラーが出るのですが、この構文ではまずいのでしょうか?
 >>どなたか、教えてください。宜しくお願い致します。
 >>
 >>
 >>マニュアル分リスト.Column(0, i - 始発行) = .Cells(i, 1).Value
 >>マニュアル分リスト.Column(1, i - 始発行) = .Cells(i, 2).Value
 >>マニュアル分リスト.Column(2, i - 始発行) = Format(.Cells
 >>                          (i,3).Value, "#,##0")
 >>マニュアル分リスト.Column(3, i - 始発行) = Format(.Cells                                  (i,4).Value, "#,##0")
 >
 >textalignプロパティは、リストボックスのプロパティです。
 >右寄せ、左寄せの設定は、リストボックス全体にしか設定できないですね。
 >
 >私は、上記のような列によって右寄せ、左寄せに分ける場合には、
 >設定(textalign)は、左寄せに設定しておいて、
 >右寄せしたい列のメンバには、計算で頭空白を追加しています。
 >
 >よって、ColumnWidthsプロパティによって、各列の幅を設定したりすることも必要です。
 >
 >だいたいの目安で列幅72ポイント(1インチ)で文字サイズの値の文字数が格納可能です(若干の微調整は必要、尚、フォントがMSゴシック、MS明朝の場合です)。
 >
 >何回か試行錯誤すれば、規則がわかると思いますが・・・。
 >
 >空白を先頭に埋めるのは、データが半角文字ならRsetステートメントでも
 >OKだと思いますが、漢字が入っていたりするとStrconv関数を用いての
 >計算が必要になります。
 >
 >もっとも、私が上記のような事をするなら、リストボックスではなく、
 >Spreadsheetコントロールを使ってしまいますが・・・。
 >
 >それからこのリストボックスって、シートに貼り付けたものですか?
 >それともユーザーフォームですか?
 
 ▼ichinose さん,こんにちは。
 
 質問に対する回答ですが、ユーザーフォームに張り付けて使用します。
 ichinose さんからのご指摘を考えると、私が考えて作ったものは、
 非効率なんでしょうか?Spreadsheetコントロールを使えば
 複数列の表示も右寄せ左寄せも、簡単にできるのでしょうか?
 
 |  |