回答編集履歴

1

コード追記

2020/10/11 00:20

投稿

hatena19
hatena19

スコア34064

test CHANGED
@@ -94,8 +94,70 @@
94
94
 
95
95
  End Sub
96
96
 
97
+ ```
97
98
 
98
99
 
99
100
 
101
+ 別案
102
+
103
+ ---
104
+
105
+
106
+
107
+ エクセルの機能を活用しましょう。
108
+
109
+ まずシート上に見出しとデータを入力します。
110
+
111
+ 入力したセル範囲を選択して「テーブルとして書式設定」でテーブル化します。
112
+
113
+ ![イメージ説明](6e9a4cd39a6570cb74c77493ad81cf13.png)
114
+
115
+
116
+
117
+ リボンの「数式」→「名前の管理」をクリックすると表の範囲が「テーブル1」という名前が自動でついているのが確認できます。ここでテーブル名は内容を表す分かり安いものにしておいてもいいでしょう。
118
+
119
+ シート名は「TableSheet」としておきます。
120
+
121
+
122
+
123
+ リストボックスのRowSourceプロパティにこのテーブル名を設定しておくとテーブルと関連付けられてテーブルのデータが表示されてます。
124
+
125
+ テーブルを並べ替えたり、フィルターをかけるとリストボックスにも反映されます。
126
+
127
+
128
+
129
+ ```vba
130
+
131
+ Private Sub UserForm_Initialize()
132
+
133
+ With Me.ListBox1
134
+
135
+ .ColumnCount = 2
136
+
137
+ .ColumnHeads = True
138
+
139
+ .RowSource = "TableSheet!テーブル1"
140
+
141
+ End With
142
+
143
+ End Sub
144
+
145
+
146
+
147
+ Private Sub CommandButton1_Click()
148
+
149
+ With Worksheets("TableSheet")
150
+
151
+ .Range("TableSheet").Sort _
152
+
153
+ Key1:=.Range("テーブル1[時刻]"), _
154
+
155
+ Order1:=xlAscending, _
156
+
157
+ Header:=xlYes
158
+
159
+ End With
160
+
161
+ End Sub
100
162
 
101
163
  ```