回答編集履歴
1
コード追記
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
|
```
|