
エクセルのユーザーフォーム内に張り付けてある、リストボックスがあります。
その項目が文字や数字など、複数の項目が存在しています。
ちょうど下のような感じです。(うまく表示されませんが、、、)
イチロー 1973/10/22 8:43 野球 18
岩崎恭子 1978/07/21 9:35 水泳 7
北杜夫 1927/05/01 10:39 作家 9
TextAlignはfmTextAlignLeftに設定されているので、文字も数字も全てが左に揃ってしまいます。
上のリストのなかで時間の項や一番右の数字の項のみ右揃えにするような設定は可能なのでしょうか?
色々探し回ったのですが、わからなかったもので、質問させていただきました。
No.2ベストアンサー
- 回答日時:
こんにちは。
AddItem の場合は、状況が違ってきます。
"??0"
というのは、あくまでも、ワークシートのセルに設定するものですから、VBAの場合は、「@」を1文字に当てます。
ただし、なるべく、ワークシートからデータを取る場合は、RowSourceで取ったほうが楽で、反応も速いです。
AddItem を使用する場合は、絶対的ではありませんが、マニュアルなどをみると、以下のように配列を使って入れるようなことが、書かれているのではないかと思います。
ご提示になったコードをみると、2行目からスタートしているようですから、コードを換えてみました。研究してみてください。
Private Sub UserForm_Initialize()
Dim myRng As Range
Dim myList As Variant
Dim c As Variant
Dim i As Integer
'RowSource は空にすること
'A列で、行数を取る,シート名を指定しても可
Set myRng = Range("A2", Range("A65536").End(xlUp))
'配列の再定義
ReDim myList(myRng.Rows.Count - 1, 5)
For Each c In myRng
'B2 のスタート(もしかしたら、A列が、IDだとしたら'ひとつずれるのかもしれません。
' myList(i,0) = c.Value ~myList(i,5) =Format$(c.Offset(,5).Value,"@@@@")
myList(i, 0) = c.Offset(, 1).Value
myList(i, 1) = Format$(c.Offset(, 2).Value, "yyyy/mm/dd")
myList(i, 2) = Format$(c.Offset(, 3).Value, "hh:mm")
myList(i, 3) = c.Offset(, 4).Value
'4桁ある場合
myList(i, 4) = Format$(c.Offset(, 5).Value, "@@@@")
i = i + 1
Next c
ListBox1.List() = myList
Set myRng = Nothing
End Sub
No.1
- 回答日時:
こんばんは。
ご質問には書かれていませんが、ListBox の ColumnCount をどうしているのとか、RowSource をどのようにしているか、ということが気になりますね。
例えば、ワークシートから、ListBox に取り出すなら、
ColumnCount を 5 にしておいて
日にちの書式は、yyyy/mm/dd
時間の書式は、 hh:mm
一番右の数字の書式は、 ?0 または、??0
とすればよいはずです。
TextAlign は、Left のままにしてください。
そうでことでないのでしたら、もう少し具体的な情報を出してください。
ただ、個々の列に書式設定等をしたいのでしたら、枠線は出ますが、SpredSheet オブジェクトにすれば出来ます。
早速のご回答ありがとうございました。
情報が足りなくてすみません。
ColumnCount=6で、各幅は0 pt;84 pt;75 pt;80 pt;80 pt;80 pt として、
一番左端には各データのIDを載せています(listbox.valueでそのIDが取得できるため)。
RowSourceは設定しておらず、additem等でexcelのシートよりリストのデータを取得しています。
For i=2 to Dmax
ListBox.AddItem Cells(i,1)
Listbox.List(i-1,1) = Cells(i,2)
・(省略)
Listbox.List(i-1,5) = Cells(i,5)
Next i
こんな感じです。
日にちと時間はWendy02さんの通りにして解決しました!
Listbox.List(i-1,2) = Fromat(Cells(i,2),"yyyy/mm/dd")
と記述して、期待通りの結果が得られました。
ありがとうございます。
Listbox.List(i-1,5) = Fromat(Cells(i,5),"??0")
としたところ、「?18」等と表示されてしまいます。
きっと?は違う文字なんじゃないかなあとおもうのですが、再度ご教授願えませんでしょうか?
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Excel(エクセル) 表示形式、文字列セル(列)に数式を入力するには マクロ 1 2022/09/18 10:53
- Excel(エクセル) エクセルの条件付き書式で*を使いたい 4 2022/05/13 16:49
- Excel(エクセル) エクセルについて教えてください。 2 2023/06/14 11:11
- Excel(エクセル) ExcelVBAでリストの項目に必要数と同じ手配数を分配していくマクロを作りたいです。 1 2022/07/29 18:36
- システム CSVファイルのマッピング処理の省力化 1 2022/11/24 00:01
- Windows 10 windowsの起動パスワードについて 1 2022/08/15 10:19
- Word(ワード) Wordの表中の文字を選択した時の白黒反転の違い 1 2023/04/25 12:13
- Excel(エクセル) エクセルにおいてセル内の文字を出来るだけ大きく表示する方法を教えてください。 4 2022/07/30 08:08
- Excel(エクセル) 【困っています】VBA 追加処理の記述を教えてください。 1 2022/08/25 22:54
- Excel(エクセル) capeofdragonと申します Excel2016を使っておりまして 半角又は全角の任意文字列が 2 2022/10/31 13:51
このQ&Aを見た人はこんなQ&Aも見ています
-
VBA: 2列のリストボックスの2列目だけを右寄りで表示したい。
Visual Basic(VBA)
-
Vba テキストボックス文字を右端から配置していく方法
Visual Basic(VBA)
-
ExcelVBAのユーザーフォームの中に線を引きたい
Visual Basic(VBA)
-
-
4
ユーザーフォームを表示中にシートの操作をさせるには
Excel(エクセル)
-
5
VBAのリストボックスをマウスでスクロール
PowerPoint(パワーポイント)
-
6
リストボックスの特定行の背景色
Visual Basic(VBA)
-
7
エクセルのラベルの値(文字列)を垂直方向で中央揃えにするには?
Excel(エクセル)
-
8
ExcelVBAでテキストボックスの表示形式を小数点第二位まで表示する方法
Visual Basic(VBA)
-
9
エクセルVBAでフォームのListboxをスクロールするには?
その他(Microsoft Office)
-
10
EXCEL2013 VBA ListBox 未選択
Excel(エクセル)
-
11
vba listviewにおけるtextのAlingmentを中央にしたい
Excel(エクセル)
-
12
【VBA】【ユーザーフォーム_ListBox】オートフィルタで絞りこんだ値だけを取り出したい
Visual Basic(VBA)
-
13
VBA リストボックスをダブルクリックしデータを修正したいのですが…。
Visual Basic(VBA)
-
14
【VBA】ユーザーフォーム リストボックスのヘッダー設定方法
Visual Basic(VBA)
-
15
VBAでユーザーフォームを再表示させたい。
Excel(エクセル)
-
16
エクセルVBA テキストボックスに3桁ごとにコンマ
Visual Basic(VBA)
-
17
ListBoxで改行したい
Visual Basic(VBA)
-
18
VBA テキストボックスに3桁カンマ表示させたい
その他(Microsoft Office)
-
19
ExcelVBAでListViewが使用できない
Visual Basic(VBA)
-
20
VBAで保存しないで閉じると空のBookが残る
Excel(エクセル)
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
エクセル条件付書式で指定の時...
-
エクセルで、時間 0:00を表示...
-
【EXCELエクセル】セルの書式設...
-
Excelのテーブルでセルの書式設...
-
小数点以下の数字だけ小さいフ...
-
エクセルで文字が白くなる
-
エクセルでマイナスを付けて入...
-
エクセルで文字を含む式に、カ...
-
EXCELの散布図で日付が1900年に...
-
置換方法について
-
excelの軸
-
記号の出し方
-
ACCESSのテーブルについて
-
Weekday関数を使って10...
-
エクセルのセルの網掛けで、、、
-
Excelでの二乗表示について
-
エクセルにて入力される文字で...
-
WordからExcelに貼り付けると数...
-
エクセルで特定文字列に色をつ...
-
エクセルでのマイナス表示・・・
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
エクセルで文字が白くなる
-
エクセルで文字を含む式に、カ...
-
エクセル条件付書式で指定の時...
-
Excelで、空白を表示したい
-
EXCELの散布図で日付が1900年に...
-
アクセスで#エラーを表示させ...
-
エクセルで、時間 0:00を表示...
-
Excelのテーブルでセルの書式設...
-
小数点以下の数字だけ小さいフ...
-
today関数で日付を全角文字で表...
-
エクセルで上付き,下付き文字...
-
Excelのセルでの配置です。
-
Access ¥マークを表示しない
-
Excel 書式の一致を調べる関数...
-
excelの軸
-
TO_CHARでのゼロ非表示について
-
INDESIGNで空改行などのマーク...
-
エクセル書式設定。数値桁の先...
-
「countif」関数の結果の後に文字
-
エクセルの書式設定が解除でき...
おすすめ情報