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

回答編集履歴

1

コード例の追記

2019/08/12 14:59

投稿

hatena19
hatena19

スコア34367

answer CHANGED
@@ -5,4 +5,21 @@
5
5
  ```
6
6
 
7
7
  `Cells(1, 変数)` はRangeオブジェクトなので、それを Range()の中に入れる必要はない。いれたらエラーになる。
8
- また、`Cells(1, 変数)` というように Worksheet指定を省略するとActiveSheetが対象になるので、きちんと `リスト.Cells(1, 変数)` というように Worksheet指定を省略しないように。
8
+ また、`Cells(1, 変数)` というように Worksheet指定を省略するとActiveSheetが対象になるので、きちんと `リスト.Cells(1, 変数)` というように Worksheet指定を省略しないように。
9
+
10
+ 追記
11
+ ---
12
+ Findメソッドは Rangeオプジェクトを返します。
13
+ Sortメソッドの Key1 には、Rangeオプジェクトを指定します。
14
+ これが理解できれば、下記のようにシンプルに記述できます。
15
+
16
+ ```vba
17
+ Dim リスト As Worksheet
18
+ Set リスト = ThisWorkbook.Worksheets("Sheet2")
19
+
20
+ Dim キー As Range
21
+ Set キー = リスト.Range("1:1").Find("任意の行頭名")
22
+
23
+ リスト.Range("A1").CurrentRegion.Sort _
24
+ Key1:=キー, Order1:=xlDescending
25
+ ```