エクセル VBAについての質問です。

並べ替えの指定をしたいのですが、マクロの記録で生成された下記のようなスクリプトにどうかけば
変数名としてわたるのでしょうか? 昇順降順の部分がそれです。

Selection.Sort Key1:=Range(位置 & "13"), Order1:=昇順降順, Header:=xlGuess, _
OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom, SortMethod _
:=xlPinYin, DataOption1:=xlSortNormal

回答の条件
  • URL必須
  • 1人2回まで
  • 登録:
  • 終了:2009/08/27 10:58:38
※ 有料アンケート・ポイント付き質問機能は2023年2月28日に終了しました。

回答2件)

id:HALSPECIAL No.1

回答回数407ベストアンサー獲得回数86

ポイント35pt

昇順の場合は、xlAscending

降順の場合は、xlDescending

です。


Dim sortOrder As Integer

If True Then

sortOrder = xlAscending '昇順

Else

sortOrder = xlDescending '降順

End If

Selection.Sort Key1:=Range(位置 & "13"), Order1:=sortOrder, Header:=xlGuess, _ ・・・

id:kaiketsu

integer で指定しないと駄目のようでした。

2009/08/27 10:58:08
id:jccrh1 No.2

回答回数111ベストアンサー獲得回数19

ポイント35pt

昇順降順は次の定数を受け渡せば良いです。

昇順:xlAscending 
降順:xlDescending

値で直接指定するなら
昇順:1 
降順:2

Sub 関数の例(昇順降順を省略した時は昇順になります)

call ソート("A",xlDescending)

Sub ソート(位置 As String, Optional 昇順降順 As Integer = xlAscending)
 Selection.Sort Key1:=Range(位置 & "13"), Order1:=昇順降順, Header:=xlGuess, _
 OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom, SortMethod _
 :=xlPinYin, DataOption1:=xlSortNormal
End Sub

ダミーURL:http://q.hatena.ne.jp/1251263294

  • id:HALSPECIAL
    HALSPECIAL 2009/08/26 14:39:56
    補足
    xlAscending や xlDescending は定数としてタイプライブラリ宣言されているのですが、実体はIntegerです。なのでIntegerの変数を使います。

この質問への反応(ブックマークコメント)

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

回答リクエストを送信したユーザーはいません