回答編集履歴

1

コード例の追記

2019/08/12 14:59

投稿

hatena19
hatena19

スコア33768

test CHANGED
@@ -13,3 +13,37 @@
13
13
  `Cells(1, 変数)` はRangeオブジェクトなので、それを Range()の中に入れる必要はない。いれたらエラーになる。
14
14
 
15
15
  また、`Cells(1, 変数)` というように Worksheet指定を省略するとActiveSheetが対象になるので、きちんと `リスト.Cells(1, 変数)` というように Worksheet指定を省略しないように。
16
+
17
+
18
+
19
+ 追記
20
+
21
+ ---
22
+
23
+ Findメソッドは Rangeオプジェクトを返します。
24
+
25
+ Sortメソッドの Key1 には、Rangeオプジェクトを指定します。
26
+
27
+ これが理解できれば、下記のようにシンプルに記述できます。
28
+
29
+
30
+
31
+ ```vba
32
+
33
+ Dim リスト As Worksheet
34
+
35
+ Set リスト = ThisWorkbook.Worksheets("Sheet2")
36
+
37
+
38
+
39
+ Dim キー As Range
40
+
41
+ Set キー = リスト.Range("1:1").Find("任意の行頭名")
42
+
43
+
44
+
45
+ リスト.Range("A1").CurrentRegion.Sort _
46
+
47
+ Key1:=キー, Order1:=xlDescending
48
+
49
+ ```