質問するログイン新規登録

回答編集履歴

1

コード追記

2020/10/11 00:20

投稿

hatena19
hatena19

スコア34367

answer CHANGED
@@ -46,6 +46,37 @@
46
46
  End With
47
47
 
48
48
  End Sub
49
+ ```
49
50
 
51
+ 別案
52
+ ---
50
53
 
54
+ エクセルの機能を活用しましょう。
55
+ まずシート上に見出しとデータを入力します。
56
+ 入力したセル範囲を選択して「テーブルとして書式設定」でテーブル化します。
57
+ ![イメージ説明](6e9a4cd39a6570cb74c77493ad81cf13.png)
58
+
59
+ リボンの「数式」→「名前の管理」をクリックすると表の範囲が「テーブル1」という名前が自動でついているのが確認できます。ここでテーブル名は内容を表す分かり安いものにしておいてもいいでしょう。
60
+ シート名は「TableSheet」としておきます。
61
+
62
+ リストボックスのRowSourceプロパティにこのテーブル名を設定しておくとテーブルと関連付けられてテーブルのデータが表示されてます。
63
+ テーブルを並べ替えたり、フィルターをかけるとリストボックスにも反映されます。
64
+
65
+ ```vba
66
+ Private Sub UserForm_Initialize()
67
+ With Me.ListBox1
68
+ .ColumnCount = 2
69
+ .ColumnHeads = True
70
+ .RowSource = "TableSheet!テーブル1"
71
+ End With
72
+ End Sub
73
+
74
+ Private Sub CommandButton1_Click()
75
+ With Worksheets("TableSheet")
76
+ .Range("TableSheet").Sort _
77
+ Key1:=.Range("テーブル1[時刻]"), _
78
+ Order1:=xlAscending, _
79
+ Header:=xlYes
80
+ End With
81
+ End Sub
51
82
  ```