【マクロVBA練習問題14】数値を昇順・降順に並び替える!Sortで並び替えを実行

セル操作




練習問題と内容について

・練習問題の狙い

このシリーズでは課題を元にマクロVBAを実践することでスキルを身につけることが出来ます。

正直、ソースコード作成については実践あるのみです!

答えのコードについては数例挙げますが、「もっといい答えがある」などの意見があれば

問い合わせから連絡ください!  

こんな問題を作ってほしいなどの意見もお待ちしております!

・練習問題14について

こちらはマクロVBAの知識で少し発展した課題になります。

指定されたセルの数値を元に、数値を昇順に並び替える練習問題となります。

それでは頑張っていきましょう!

練習問題の内容と動作説明

問題内容

セル番地A1からA10までの数値を昇順に並び替える

動作説明

VBAを使用して、セル番地A1からA10までの数値を昇順に並び替えます。

この問題では、セルA1からA10までの数値を取得し、その値を昇順に並び替えて元のセルに格納する必要があります。

ヒント


以下のヒントを参考にして解答コードを作成してみてください。

・ヒントその1

数値の並び替えには、セル範囲の取得とソートが必要です。

セル範囲を取得するには、Rangeオブジェクトを使用します。
例えば、セルA1からA10までの範囲を取得するには、Range(“A1:A10“)というように範囲を指定します。

・ヒントその2

セル範囲を並び替え・ソートするためには、Sortメソッドを使用します。

Sortメソッドは、Rangeオブジェクトに対して呼び出すことができます。
例えば、Range(“A1:A10”).Sortというように呼び出します。

・ヒントその3

ソートする際の基準を指定する必要があります。

昇順に並び替える場合は、Sortメソッドの引数でOrder1パラメータにxlAscendingを指定します。
例えば、Range(“A1:A10”).Sort Order1:=xlAscendingというように指定します。

 

以上のヒントを参考に課題に取り組んでみてください!

 

最新・便利な機能を搭載したExcel・officeを試しませんか?
Excel 2013以下を使用している方はサポートが終了しているので注意が必要です!
【最新2023年】Excel・Officeの価格比較!あなたに合ったオススメの製品の選定方法から購入 ► 独学エクセル塾 (dokugakuexcel.com)
 

 

解答コード

では回答を見ていきましょう!

・回答その①

Sub Exercise14to1()
Range(“A1:A10”).Sort Key1:=Range(“A1”), Order1:=xlAscending
End Sub

 

上記のコードは、セル範囲A1からA10までの数値を昇順に並び替えるVBAのマクロです。

それでは実行してみましょう。
結果はこのようになります。

昇順に並び替えることができていますね。

Range(“A1:A10”)でセル範囲を指定し、.Sortメソッドを呼び出してソートを行っています。

Key1パラメータにはソートの基準となるセルを指定しており、ここではA1を指定しています。
Order1パラメータにはソートの順序を指定し、xlAscendingを指定することで昇順に並び替えています。

・回答その②

Sub Exercise14to2()
Dim rng As Range
Set rng = Range(“A1:A10”)
rng.Sort Key1:=rng , Order1:=xlAscending
End Sub

 

上記のコードでは、Rangeオブジェクトを変数として使用し、ソート操作を行っています。

まず、Setキーワードを使用して変数rng にセル範囲A1からA10を設定しています。
そして、rng .Sortメソッドを呼び出してセル範囲を昇順に並び替えています。
Key1パラメータにはソートの基準となるセル範囲自体を指定しています。

この回答例でも、セル範囲の取得やソートの方法が確認できます。どちらの回答例を選択しても問題を解くことができます。

 

 

必要な知識

この問題を解くためには、以下の基本的な知識が必要です。

ソートの方法

セル範囲のソートには、Sortメソッドを使用します。

Sortメソッドは、Rangeオブジェクトに対して呼び出すことができます。
ソートの基準となるセル範囲やソートの順序を指定することができます。

まとめ

この練習問題では、VBAを使用してセル範囲の数値を昇順に並び替える方法について学びました。

具体的には、セル番地A1からA10までの数値を昇順に並び替える問題を解きました。

この問題を解くためには、Rangeオブジェクトとそのメソッドを使ってセル範囲を取得し、Sortメソッドを使用して数値をソートしました。

VBAを使うことで、Excelの操作を自動化したり、複雑な処理を行ったりすることができます。
練習問題を通じて、VBAのスキルを向上させ、より高度な操作や処理を行えるようになることを目指しましょう。

 

以上で練習問題14となります。お疲れ様でした!