タカヒロ@extanSORT関数でデータを自動で並び変える方法!ボタンから並び替えも可!Excelでデータを自動で並び変えたいときはないでしょうか。・Excelのデータを自動で並び変えたいが方法がよくわからない・ボタン押下でデータを並び変えたいが方法がよくわからないですよね。・ボタンからにマクロを起動しデータを並び変える方法についてまとめます!もくじExcelのデータを自動で並び変えるイメージデータを自動で並び変える対象の表を用意するSORT関数の書式/機能/引数についてSORT関数でデータを自動で並び変えるSORT関数で複数の並べ替え順序を指定するSORT関数の範囲で指定する最終行を自動的に取得するA列の最終行の位置番号を取得する範囲の文字列を生成する文字列を範囲として認識させるボタンクリックでデータを並び替えるボタンに登録するマクロのVBAVBAの設定VBAの実装手順ボタンをワークシート上へ配置するボタンからマクロを実行し、データを並び替える2つボタンで昇順/降順の切り替えをおこなうボタンに引数を設定しマクロへ渡す設定をするVBAの設定をするボタンの設定をするボタンから引数を受け渡しマクロを実行する2つ目のボタンを設定するボタンの設定をするボタンから引数を受け渡しマクロを実行するさいごにExcelのデータを自動で並び変えるイメージExcelのデータを自動で並び変えるイメージについて説明をします。はじめはSORT関数を手入力しデータを自動で並び変えていきます。サンプルでは番号項目を昇順、売上高を降順になるよう設定をしています。次にボタンを配置し、マクロを関連付けします。ボタンをクリックするとマクロが実行され、指定の並び順で表が作成されます。次にボタンをもうひとつ増やし、並び順が昇順、降順と切り替わるようにします。ボタンをクリックすれば一瞬で昇順、降順の切り替えができます。プレゼンの時にボタンクリックで並び替えられると便利ですね!それでは早速実装して試してみましょう!データを自動で並び変える対象の表を用意するデータを自動で並び変える対象となる表を用意しましょう。サンプル表は以下のようA列を番号、B列を商品名、C列を売上にしました。F列以降に指定した並び順になったデータが表示されるようしていきます。SORT関数の書式/機能/引数について今回データを自動で並び変える処理に使用するSORT関数について説明をします。SORT関数の書式と機能については以下の通りです。範囲または配列の内容を並べ替えます。範囲:並び替えの対象となる範囲を指定します。並べ替えインデックス:並べ替えの基準となる行または列番号を指定します。順序:目的の並べ替え順序を数値で指定します。方向:目的の並べ替え方向を示す論理値を指定します。場合は、列で並べ替えます。エラー値#VALUE!タカヒロSORT関数はMicrosoft365以降で実装された機能となりますので、それ以前のバージョンでは使用できないことご了承願います。SORT関数でデータを自動で並び変えるさっそくSORT関数でデータを自動で並び変えてみましょう。表を作成したシートのF2セルに以下の数式を入力します。=SORT(A2:C8,1,1,FALSE)はい、並び替えができましたね。SORT関数の第1引数「範囲」にA2:C8を指定し、その範囲の1列目つまりA列を指定し昇順に並び替えています。次はA列の「番号」以外の項目にも並べ替え順序を指定し、データを並び替えてみましょう。SORT関数で複数の並べ替え順序を指定するSORT関数で複数の並べ替え順序を指定する方法について説明します。}で囲み、対象となる列番号を指定します。}で囲み、対象となる列番号順に順序を指定します。1列目A列を昇順、3列目C列売上を降順にしたい場合は以下のようにします。=SORT(A2:C8,{1,3},{1,-1},FALSE)表を作成したシートのF2セルに数式を入力しましょう。はい、A列が昇順、C列が降順に並び替えができましたね。SORT関数の範囲で指定する最終行を自動的に取得するこれまでSORT関数の範囲は「A2:C8」のように固定値でした。この場合、9行目以降にデータが追加されたとしてもSORT関数の結果には反映されません。これを解消するために、最終行判定を自動的に行うようにし、データが追加されたとしてもSORT関数側でもきちんと反映されるようにしていきます。A列の最終行の位置番号を取得するCOUNTA(A:A)まずは、A列を対象に最終行の位置番号を取得していきます。COUNTA関数を使い、A列の要素数をカウントします。タカヒロCOUNTA関数はセルに値がある数を数えるので、対象列に空セルがないようお願いします。別の列で最終行判定したい場合は、A:Aの部分を対象列名に変更してください。範囲の文字列を生成する次に最終行数と範囲の内容の文字列を結合していきます。"A1:C"&COUNTA(A:A))文字列を範囲として認識させる仕上げに結合した文字列を範囲として認識するようINDIRECT関数で囲みましょう。INDIRECT("A1:C"&COUNTA(A:A))表の9行目以降にデータを加え、F2セルに数式を入力しましょう。=SORT(INDIRECT("A1:C"&COUNTA(A:A)),{1,3},{1,-1},FALSE)はい、9行目の追加データが表に反映されていますね。ボタンクリックでデータを並び替える次はボタンをクリックするだけでデータを並び替えるようにしてみましょう。これまでと同様にSORT関数を使用しますが、ボタンから実行できるマクロに組み入れる必要があります。タカヒロマクロというと難しく感じますが、たったの3行のコードで実現できますのでご安心ください。ボタンに登録するマクロのVBAボタンに登録するマクロのVBAを用意しましょう。VBAの設定サンプルコードは以下の通りです。'SORT関数の数式を指定セルに代入します。A列を対象に最終行を取得しています。Sub関数を挿入するセルはF2にしています。違うセルを指定したい場合はRange(“**“)の**を変更してください。最終行を取得し、文字列結合させSORT関数へ範囲を指定しています。最終行判定は1列目のA列を指定していますが、別の列である場合は数値を変更してください。<strong>1</strong>)表の範囲を変更する場合は”A2:C”の列名を変更してください。実装手順は以下の通りです。Excel側にVBAを実装していきます。1Excelを新規に開き、「開発」タブをクリックし、「VisualBasic」をクリックします。ショートカットキー「Alt」+「F11」でもOKです。2標準モジュールを追加します。モジュール」を選択します。3右ペインのウインドウに上記のVBAを入力します。ボタンをワークシート上へ配置するボタンをワークシートへ配置していきます。開発タブの挿入アイコンをクリックし、フォームコントロールの「ボタン」を選択します。ボタンが挿入されたらボタンの中の表示名を適当な内容に変更します。続いて、ボタンを右クリックし、マクロの登録を選択します。上記VBAを選択し、「OK」を押下します。ボタンからマクロを実行し、データを並び替えるボタンからマクロを実行してみましょう。2つボタンで昇順/降順の切り替えをおこなう次に2つボタンで昇順/降順の切り替えをおこないましょう。ボタンに引数を設定しマクロへ渡す設定をするボタンに昇順/降順を指定する引数を設定しマクロへ渡す設定をしてみましょう。VBAの設定をするサンプルコードは以下の通りです。VBEに追加をしましょう。'SORT関数の数式を指定セルに代入します。A列を対象に最終行を取得しています。Subメッセージ部分に変数を加え、引数で受け渡された値を代入するようにしています。ボタンの設定をする次にボタンに登録されているマクロに引数を持たせるように設定変更をします。ボタンを右クリックし、マクロの登録を選択します。"-1"'引数は-1で順序に割り当たりますので降順が指定される形となります。ボタンの名前を降順を示す内容に変更しましょう。タカヒロVBAに引数を追加した場合はマクロの登録ウインドウからは表示がされなくなります。ボタンから引数を受け渡しマクロを実行するボタンから引数を受け渡しマクロを実行してみます。ボタンをクリックします。はい、引数の値が割り当てられ昇順に並びましたね。2つ目のボタンを設定する次は2つ目のボタンを追加し、昇順になるよう設定を変更しましょう。タカヒロVBAは触らず、引数のみの設定で昇順へ切り替えができます。ボタンの設定をする次にボタンに登録されているマクロに引数を持たせるように設定変更をします。ボタンを右クリックし、マクロの登録を選択します。"1"'引数は1で順序に割り当たりますので昇順が指定される形となります。ボタンの名前を昇順を示す内容に変更しましょう。ボタンから引数を受け渡しマクロを実行するボタンから引数を受け渡しマクロを実行してみます。ボタンをクリックします。はい、降順に並び替えられましたね。さいごにいかがでしょうか。・ボタンからにマクロを起動しデータを並び変える方法についてまとめました。他にも便利な方法がありますので、よろしければご参照頂ければと思います。この記事の関連キーワードこちらの記事の関連キーワード一覧です。クリックするとキーワードに関連する記事一覧が閲覧できます。ボタン「ボタン」の関連記事こちらの記事の内容「ボタン」に関連する記事一覧です。コメントをキャンセルメールアドレスが公開されることはありません。*サイト次回のコメントで使用するためブラウザーに自分の名前、メールアドレス、サイトを保存する。VBA】ボタンにマクロを登録する方法!引数の設定も!1行でExcel別シートのデータを自動反映する方法4選!最終行も自動取得!RECOMMENDこちらの記事も人気です。