[[20190315174111]] 『表示にナンバーを付加するには』(jk) ページの最後に飛ぶ

[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]

 

『表示にナンバーを付加するには』(jk)

いつも参考にさせていただいています。
今日は、ListBoxについて質問いたしま。

Private Sub UserForm_Initialize()

    ListBox1.RowSource = "リスト!AW3:AW30"
    Me.ListBox1.ListIndex = 0
End Sub
上記は、単純にListBoxに表示するマクロですが
この表示に、ナンバーを(1ピリオド・・)付加することは可能でしょうか?
よろしくお願いします。

表示例
○○
△△
□□

1.○○
2.△△
3.□□
続く

< 使用 Excel:Excel2016、使用 OS:Windows10 >


 こんな感じで

 Private Sub UserForm_Initialize()
     Me.ListBox1.RowSource = ""
     Me.ListBox1.List = [row(1:28)&"."&リスト!aw3:aw30]
 End Sub
(seiya) 2019/03/15(金) 18:13

(seiya)さん
速攻ありがとうございました。
ただ、以下で転記したときには ナンバーは不要なのですが
以下を修正するか、見た目だけナンバーを表示するのかわかりませんが
対応できますか? よろしくお願いします。
Private Sub ListBox1_MouseUp(ByVal Button As Integer, _
        ByVal Shift As Integer, ByVal x As Single, ByVal Y As Single)
 ActiveCell.Value = ListBox1.Value
  Unload Me
End Sub
(jk) 2019/03/15(金) 18:35

 こんな感じでどうですか?

 Private Sub ListBox1_MouseUp(ByVal Button As Integer, ByVal Shift As Integer, ByVal X As Single, ByVal Y As Single)
    ActiveCell.Value = Split(Me.ListBox1.Value, ".", 2)(1)
 End Sub
(seiya) 2019/03/15(金) 18:41

(seiya)さん
ありがとうございました。
これがSplit(Me.ListBox1.Value, ".", 2)(1)
なんだか?ググってみます
無事転記できました。
(jk) 2019/03/15(金) 19:06

 ググってみて、わからなかったらまた質問してください。
(seiya) 2019/03/15(金) 19:13

 (seiya)さん 何度もすみません。(お言葉に甘えて)
以下のようなマクロの場合は、どのように書けばいいですか?
Private Sub UserForm_Initialize() 
   With Sheets("リスト") 
    ListBox1.ColumnCount = 1
        ListBox1.RowSource = .Range(.Range("AA2"), _
            .Range("AA2").End(xlDown)).Address(External:=True)
        Me.ListBox1.ListIndex = 1  'デフォルト行
    End With

以下に相当するには?

     Me.ListBox1.RowSource = ""
     Me.ListBox1.List = [row(1:28)&"."&リスト!aw3:aw30]
(jk) 2019/03/15(金) 19:18

.RowSourceで色々ググってみましたが
参考になるようなマクロは見つかりませんでした。残念!
[row(1:28)&"."&リスト!aw3:aw30] ココを改良するのでしょうか?

(jk) 2019/03/16(土) 12:19


 範囲指定を動的にする、ということですね?
 Evaluate method の Short Cut Notation であるカギ括弧は、変数を受け付けませんので
 下記のように変更してください。

 Private Sub UserForm_Initialize()
     Me.ListBox1.RowSource = ""
     With Sheets("リスト")
         With .Range("aa2", .Range("aa" & Rows.Count).End(xlUp))
             Me.ListBox1.List = .Worksheet.Evaluate("row(1:" & .Rows.Count & ")&"".""&" & .Address)
         End With
     End With
 End Sub

(seiya) 2019/03/16(土) 13:06


 AddItemの方が解りやすければ、範囲をループして

 Private Sub UserForm_Initialize()
     Dim i As Long
     Me.ListBox1.RowSource = ""
     With Sheets("リスト")
         With .Range("aa2", .Range("aa" & Rows.Count).End(xlUp))
             For i = 1 To .Rows.Count
                 Me.ListBox1.AddItem i & "." & .Item(i).Value
             Next
         End With
     End With
 End Sub
(seiya) 2019/03/16(土) 13:16

(seiya)さん
ありがとうございました。
昨日からWeb上に同じようなケースがあればと思い
検索したのですが、このようなマクロは、一つもありませんでした。
中身は、まだよく理解していませんがコピペして動作確認しましたが
どちらもOKでした。
これから、少しでも理解したいと思います。
解決いたしました!
(jk) 2019/03/16(土) 16:05

コメント返信:

[ 一覧(最新更新順) ]


YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki. Modified by kazu.