- ベストアンサー
VBA 列の並べ替えについて
- VBAを使用して、指定範囲のセルを並べ替える方法について説明します。
- 具体的には、セルA2からO10を選択し、D列をキーとして昇順に並べ替え、それを印刷します。
- また、並べ替える前の状態に戻す方法についても解説します。
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
>(2)で並べ替えする前の状態にする ためには、並べ替えしなおすキーが必要ですね。でも質問には「そのキーがあるかどうか」について触れられていませんので単純には回答できかねます。 もし「一旦シートを作業用シートにコピー」→「並べ替え」→「印刷」→「作業用シート削除」というロジックにして良いのなら以下のマクロで可能です。 Sub test() On Error GoTo end0 ActiveSheet.Copy before:=ActiveSheet 'シートをコピー Range("A2:O10").Select 'コピーしたシートがアクティブです Selection.Sort Key1:=Range("D2"), Order1:=xlAscending Selection.PrintOut Copies:=1, Collate:=True Application.DisplayAlerts = False '削除の警告メッセージ出力停止 ActiveSheet.Delete end0: Application.DisplayAlerts = True '警告メッセージ復活 End Sub
その他の回答 (1)
- zap35
- ベストアンサー率44% (1383/3079)
#01です プロアクティブディフェンス警告はウィルススキャンソフトが出しているのではありませんか? EXCELではないと思いますよ。 ウィルススキャンソフトの設定が分かりませんので、設定を確認してください。プロアクティブディフェンスのレベル設定が可能であれば、変更されるのが「警告メッセージを出さなくする」方策だと思います。
お礼
ご回答ありがとうございました。 現在、ウィルスソフトはカスペルスキーの試用版を使っています。 マクロウィルス対策としては、プロアクティブディフェンスは有効にしておいた方がよいのでしょうか?
お礼
早速のご回答ありがとうございます。 教えていただいたコードでうまくいきますが、マクロを実行すると「プロアクティブディフェンス警告」というメッセージが表示されます。 これを表示させない方法はありますか? よろしくお願いします。