
エクセルのユーザーフォーム内に張り付けてある、リストボックスがあります。
その項目が文字や数字など、複数の項目が存在しています。
ちょうど下のような感じです。(うまく表示されませんが、、、)
イチロー 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)
-
エクセルのラベルの値(文字列)を垂直方向で中央揃えにするには?
Excel(エクセル)
-
-
4
ExcelVBAのユーザーフォームの中に線を引きたい
Visual Basic(VBA)
-
5
エクセルVBA テキストボックスに3桁ごとにコンマ
Visual Basic(VBA)
-
6
エクセルVBAでフォームのListboxをスクロールするには?
その他(Microsoft Office)
-
7
VBAのリストボックスをマウスでスクロール
PowerPoint(パワーポイント)
-
8
EXCEL2013 VBA ListBox 未選択
Excel(エクセル)
-
9
【VBA】ユーザーフォーム リストボックスのヘッダー設定方法
Visual Basic(VBA)
-
10
ユーザーフォームを表示中にシートの操作をさせるには
Excel(エクセル)
-
11
VBAでユーザーフォームを再表示させたい。
Excel(エクセル)
-
12
ExcelVBAでテキストボックスの表示形式を小数点第二位まで表示する方法
Visual Basic(VBA)
-
13
VBA(エクセル)で自動的にボタンをクリックさせるには
その他(プログラミング・Web制作)
-
14
VBA テキストボックスに3桁カンマ表示させたい
その他(Microsoft Office)
-
15
エクセルVBAで、MsgBox やInputBox は、画面の中央以外に表示させたい。
Excel(エクセル)
-
16
VBAで保存しないで閉じると空のBookが残る
Excel(エクセル)
-
17
vba listviewにおけるtextのAlingmentを中央にしたい
Excel(エクセル)
-
18
【VBA】【ユーザーフォーム_ListBox】オートフィルタで絞りこんだ値だけを取り出したい
Visual Basic(VBA)
-
19
リストボックスの特定行の背景色
Visual Basic(VBA)
-
20
ListBoxで改行したい
Visual Basic(VBA)
関連するカテゴリからQ&Aを探す
おすすめ情報
- ・漫画をレンタルでお得に読める!
- ・昔のあなたへのアドバイス
- ・字面がカッコいい英単語
- ・許せない心理テスト
- ・歩いた自慢大会
- ・「I love you」 をかっこよく翻訳してみてください
- ・ゆるやかでぃべーと タイムマシンを破壊すべきか。
- ・はじめての旅行はどこに行きましたか?
- ・準・究極の選択
- ・この人頭いいなと思ったエピソード
- ・「それ、メッセージ花火でわざわざ伝えること?」
- ・ゆるやかでぃべーと すべての高校生はアルバイトをするべきだ。
- ・【お題】甲子園での思い出の残し方
- ・【お題】動物のキャッチフレーズ
- ・人生で一番思い出に残ってる靴
- ・これ何て呼びますか Part2
- ・スタッフと宿泊客が全員斜め上を行くホテルのレビュー
- ・あなたが好きな本屋さんを教えてください
- ・かっこよく答えてください!!
- ・一回も披露したことのない豆知識
- ・ショボ短歌会
- ・いちばん失敗した人決定戦
- ・性格悪い人が優勝
- ・最速怪談選手権
- ・限定しりとり
- ・性格いい人が優勝
- ・これ何て呼びますか
- ・チョコミントアイス
- ・単二電池
- ・初めて自分の家と他人の家が違う、と意識した時
- ・「これはヤバかったな」という遅刻エピソード
- ・ゴリラ向け動画サイト「ウホウホ動画」にありがちなこと
- ・泣きながら食べたご飯の思い出
- ・一番好きなみそ汁の具材は?
- ・人生で一番お金がなかったとき
- ・カラオケの鉄板ソング
- ・自分用のお土産
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
エクセルで文字が白くなる
-
エクセルで文字を含む式に、カ...
-
エクセル条件付書式で指定の時...
-
Excelで、空白を表示したい
-
アクセスで#エラーを表示させ...
-
強調の・
-
EXCELの散布図で日付が1900年に...
-
エクセルで、時間 0:00を表示...
-
Excelのテーブルでセルの書式設...
-
INDESIGNで空改行などのマーク...
-
小数点以下の数字だけ小さいフ...
-
アルファベットにフリガナ
-
Excelのセルでの配置です。
-
TO_CHARでのゼロ非表示について
-
Wordの差込印刷で、24時間を超...
-
today関数で日付を全角文字で表...
-
エクセルでプルダウンから項目...
-
Access ¥マークを表示しない
-
Excelで勝手に小数点以下が増える
-
エクセル マイナスは黒文字で、...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
エクセルで文字を含む式に、カ...
-
エクセルで文字が白くなる
-
Excelで、空白を表示したい
-
エクセル条件付書式で指定の時...
-
エクセルで、時間 0:00を表示...
-
EXCELの散布図で日付が1900年に...
-
アクセスで#エラーを表示させ...
-
Excelのテーブルでセルの書式設...
-
エクセルで上付き,下付き文字...
-
小数点以下の数字だけ小さいフ...
-
today関数で日付を全角文字で表...
-
excelの軸
-
Excel 書式の一致を調べる関数...
-
Excelで勝手に小数点以下が増える
-
INDESIGNで空改行などのマーク...
-
Excelのセルでの配置です。
-
エクセル マイナスは黒文字で、...
-
「countif」関数の結果の後に文字
-
Access ¥マークを表示しない
-
エクセル書式設定。数値桁の先...
おすすめ情報