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

回答編集履歴

1

テーブルとして書式設定するかを選択可能に変更

2015/11/12 13:45

投稿

Connect-a
Connect-a

スコア15

answer CHANGED
@@ -22,6 +22,8 @@
22
22
  Const sortOrder = "Z,WX,ST,UV,Y"
23
23
  'テーブル名
24
24
  Const tableName = "データテーブル"
25
+ 'テーブルとして書式設定するか
26
+ Const listFlag = False
25
27
 
26
28
  '左端列格納配列
27
29
  Dim iDArray() As Variant
@@ -109,33 +111,48 @@
109
111
 
110
112
  Next
111
113
 
112
- '(見出し,セル幅設定)(テーブル化)
114
+ 'リスト削除用
113
- If Range(outputListStartPosition).Row > 1 Then
114
- Range(Me.Range(outputListStartPosition).Offset(-1), Me.Range(outputListStartPosition).Offset(-1, pasteColumnShift + WEIGHTcolShift)) _
115
- = Split("ID,TYPE,NUMBER,DATA,WEIGHT", ",")
116
- End If
117
115
  Dim delList As Variant
116
+ 'リスト化
117
+ If listFlag Then
118
+ '(見出し,セル幅設定)(テーブル化)
119
+ If Range(outputListStartPosition).Row > 1 Then
120
+ Range(Me.Range(outputListStartPosition).Offset(-1), Me.Range(outputListStartPosition).Offset(-1, pasteColumnShift + WEIGHTcolShift)) _
121
+ = Split("ID,TYPE,NUMBER,DATA,WEIGHT", ",")
118
- For Each delList In Me.ListObjects
122
+ For Each delList In Me.ListObjects
119
- If delList.Name = tableName Then
123
+ If delList.Name = tableName Then
120
- delList.Unlist
124
+ delList.Unlist
125
+ End If
126
+ Next
127
+ 'テーブル化
128
+ Range(Me.Range(outputListStartPosition).Offset(-1), outputListLastPosition).ClearFormats
129
+ ListObjects.Add( _
130
+ xlSrcRange, _
131
+ Range(Me.Range(outputListStartPosition).Offset(-1), outputListLastPosition), , _
132
+ , xlYes, "TableStyleMedium1").Name = tableName
133
+
134
+ 'ソート
135
+ Range(tableName).Sort , _
136
+ key1:=Me.Range(outputListStartPosition).Offset(, pasteColumnShift + WEIGHTcolShift), order1:=xlAscending, _
137
+ key2:=Me.Range(outputListStartPosition).Offset(, NUMcol), order2:=xlAscending, _
138
+ Header:=xlYes
121
139
  End If
140
+
141
+ 'リスト化しない
122
- Next
142
+ Else
123
- 'ブル化
143
+ '
124
- Range(Me.Range(outputListStartPosition).Offset(-1), outputListLastPosition).ClearFormats
125
- ListObjects.Add( _
126
- xlSrcRange, _
127
- Range(Me.Range(outputListStartPosition).Offset(-1), outputListLastPosition), , _
144
+ Range(Me.Range(outputListStartPosition), outputListLastPosition).Sort , _
145
+ key1:=Me.Range(outputListStartPosition).Offset(, pasteColumnShift + WEIGHTcolShift), order1:=xlAscending, _
128
- , xlYes, "TableStyleMedium1").Name = tableName
146
+ key2:=Me.Range(outputListStartPosition).Offset(, NUMcol), order2:=xlAscending, _
147
+ Header:=xlNo
148
+ End If
129
149
 
130
- 'ソート
131
- Range(tableName).Sort , _
132
- key1:=Me.Range(outputListStartPosition).Offset(, pasteColumnShift + WEIGHTcolShift), order1:=xlAscending, _
133
- key2:=Me.Range(outputListStartPosition).Offset(, NUMcol), order2:=xlAscending, _
134
- Header:=xlYes
135
-
136
150
  End Sub
137
151
 
138
152
  ```
139
153
 
140
154
  実行後イメージは下記のとおりです。
155
+ ・listFlag = True
141
- ![イメージ説明](ccf1668341347f4abb12e0a695b1c520.jpeg)
156
+ ![イメージ説明](ccf1668341347f4abb12e0a695b1c520.jpeg)
157
+ ・listFlag = False
158
+ ![イメージ説明](0bd6965090a6b0c841be1183fb285c61.jpeg)