質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
VBA

VBAはオブジェクト指向プログラミング言語のひとつで、マクロを作成によりExcelなどのOffice業務を自動化することができます。

Q&A

解決済

2回答

10849閲覧

vbaのsortの「key1:=Range(”A1”)」の列を変数を使って設定したい

KM46

総合スコア17

VBA

VBAはオブジェクト指向プログラミング言語のひとつで、マクロを作成によりExcelなどのOffice業務を自動化することができます。

0グッド

0クリップ

投稿2019/08/12 10:51

前提・実現したいこと

Excel vbaにて、並び替えを自動で行うようにしたいのです。
通常key1:=RANGE("A1")のように記述すると思うのですが、
Aにあたる部分を変数を利用して自由に設定できるようにしたいです。

発生している問題・エラーメッセージ

実行時エラー'1004': 'Range'メソッドは失敗しました:'_Globalオブジェクト'

該当のソースコード

vba

1Dim リスト As Worksheet 2 Set リスト = ThisWorkbook.Worksheets("シート名") 3 4Dim 変数 as Variant 5変数 = リスト.Range("1:1").Find("任意の行頭名").Column 6 7リスト.Range("A1").CurrentRegion.Sort _ 8 Key1:=Range(Cells(1, 変数)), _ 9 Order1:=xlDescending

試したこと

Range(Cells(1, 変数).Address)でもダメでした。
具体的などのように記述をすればいいのかわかりません...。

補足情報(FW/ツールのバージョンなど)

Excel2013

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答2

0

「Cells(rowIndex, columnIndex)」 で出来るかと思います。
※rowIndex、columnIndexは任意の行番号、列番号

投稿2019/08/12 14:48

編集2019/08/12 14:49
meg_

総合スコア10580

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

ベストアンサー

vba

1リスト.Range("A1").CurrentRegion.Sort _ 2 Key1:=リスト.Cells(1, 変数), _ 3 Order1:=xlDescending

Cells(1, 変数) はRangeオブジェクトなので、それを Range()の中に入れる必要はない。いれたらエラーになる。
また、Cells(1, 変数) というように Worksheet指定を省略するとActiveSheetが対象になるので、きちんと リスト.Cells(1, 変数) というように Worksheet指定を省略しないように。

追記

Findメソッドは Rangeオプジェクトを返します。
Sortメソッドの Key1 には、Rangeオプジェクトを指定します。
これが理解できれば、下記のようにシンプルに記述できます。

vba

1 Dim リスト As Worksheet 2 Set リスト = ThisWorkbook.Worksheets("Sheet2") 3 4 Dim キー As Range 5 Set キー = リスト.Range("1:1").Find("任意の行頭名") 6 7 リスト.Range("A1").CurrentRegion.Sort _ 8 Key1:=キー, Order1:=xlDescending

投稿2019/08/12 14:45

編集2019/08/12 14:59
hatena19

総合スコア33715

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問