エクセルVBA・セルを選択して並べ替えたい
以下の質問では、たいへんお世話になりありがとうございました。
http://oshiete.goo.ne.jp/qa/6203452.html
少し関連した質問をいたします。
具体的に言いますと、マウスでセル範囲を選択して、その選択した範囲を並べ替える、というようなイメージです。(マウスでセル範囲を選択してから、マクロを実行します)
以下のコードで言うと Range("○●:○●").の部分が、マウスで選択した範囲というような具合です。
Sub sort1()
Range("○●:○●").Sort _
Key1:=Range("d1"), _
Order1:=xlDescending, _
Header:=xlYes, _
Orientation:=xlTopToBottom
End Sub
以上、よろしくご教示お願いします。
No.2ベストアンサー
- 回答日時:
試してみてください。
マウスの場合は、位置・範囲が特定できないという意味だと思います。Selection は、必ずしも、セルを選択しているとは限りませんし、また、Range("D1")は、必ずしも、D1 とは限りません。4列目の1行目という意味だと解釈しました。タイトル行は、それが本当にタイトル行としてあるのか分かりません。
いくつかのエラーを考慮すると以下のようになります。
'なるべく標準モジュールに書き込んでください。
Sub Test2()
If TypeName(Selection) <> "Range" Then Exit Sub
With Selection
If .Columns.Count > 3 Then
.Sort _
Key1:=.Cells(1, 4), _
Order1:=xlDescending, _
Header:=xlGeuss, _
Orientation:=xlTopToBottom
Else
MsgBox "4列目がありません。", vbExclamation
End If
End With
End Sub
ところで、今回は、Selection ですから、範囲は明示的に決められますが、左端セルだけを選択して、Sortメソッドを掛けると、時々、1行全体を選択したり、うまく範囲が特定出来ないというバグ?が存在しているので、最初のRangeオブジェクトは、正しく範囲を設定したほうが良いようです。理由はよく分からないです。
前回に続いてのご回答ありがとうございます。
確かに自分以外の人も利用することがありますので、ご指摘いただいたことは大切だと痛感しました。
細かいご配慮に感謝いたします。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) データのある範囲を選択するVBAについて 2 2022/09/03 00:20
- その他(Microsoft Office) 選択行の列範囲に二重線を引く 3 2022/06/08 12:21
- Excel(エクセル) 【VBA】エクセルで選択した範囲の値のみをクリップボードにコピーするコードについて 3 2023/03/08 17:41
- Visual Basic(VBA) Excelのマクロコードについて教えてください。 1 2022/03/27 13:25
- Excel(エクセル) VBA 特定の列に入っているテキストをコピペ 2 2023/06/14 11:24
- Excel(エクセル) 余計なお世話的な「入力規則」?対策は? 2 2023/01/14 12:39
- Visual Basic(VBA) A列の最終行に合わせて範囲をコピー 2 2022/09/04 19:10
- Excel(エクセル) VBA オリジナル関数で選択セルの合計を作成したい 3 2023/03/19 19:45
- Excel(エクセル) エクセルのマクロが上手く動きません 4 2022/07/14 13:25
- Excel(エクセル) [並べ替えの前に]、[選択範囲を拡張する]のが煩わしいッ! 1 2023/02/28 22:40
関連するカテゴリからQ&Aを探す
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
excelで、スクロールをすると限...
-
EXCEL アルファベットと数字の...
-
エクセルの画面で十字マークが...
-
セルをクリックすると付箋のよ...
-
エクセルで連続データから、数...
-
excelで1行ごとに一気に削除す...
-
ピポットテーブルエラー解決方法
-
Excelで表のデータを並び替えた...
-
エクセルでハイパーリンクのU...
-
Excel選択を繰り返すとセルの色...
-
エクセル 画面上の行数を調節...
-
エクセルのVBAを使用し、工事写...
-
Shift押しながら、矢印ボタンで...
-
エクセルのセルを交互に選択す...
-
Excelで急に動かなくなる
-
Excelの複数セル選択は、なぜ一...
-
エクセル 数値を全て「1」にす...
-
複数のセルの入力内容を一度に...
-
エクセルの行数の制限
-
エクセルの名簿を50音順にしたい
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
excelで、スクロールをすると限...
-
エクセルの画面で十字マークが...
-
エクセルで連続データから、数...
-
EXCEL アルファベットと数字の...
-
セルをクリックすると付箋のよ...
-
エクセル 数値を全て「1」にす...
-
エクセルでハイパーリンクのU...
-
excelで1行ごとに一気に削除す...
-
Excel選択を繰り返すとセルの色...
-
エクセル 画面上の行数を調節...
-
Excelで表のデータを並び替えた...
-
複数のセルの入力内容を一度に...
-
エクセルVBAでセル範囲のデータ...
-
ピポットテーブルエラー解決方法
-
エクセルで「1~15」の乱数...
-
エクセルでカーソルが四方に矢...
-
Shift押しながら、矢印ボタンで...
-
エクセルで0を除いて昇順に並...
-
Excelで急に動かなくなる
-
エクセルで任意のセルをクリッ...
おすすめ情報