HOME技術ExcelExcel VBAでシートを並び替える

Excel VBAでシートを並び替える

ExcelVBAでシート内のデータを並び替える方法です。

VBAのコード

Endrow  = Worksheets(SheetName).Range(“A1”).End(xlDown).Row
OrderRange = “A1:I” & Endrow
Worksheets(SheetName).Select
Worksheets(SheetName).Range(OrderRange).Select
Selection.Sort Key1:=Worksheets(SheetName).Range(B1), Order1:=xlAscending, Header:=xlGuess

解説

Endrow…そのシートの最終行を格納。
OrderRange…並び替える範囲を格納。
SheetName…そのシートの名前

まず、Endrowにそのシートの最終行を獲得させます。そのために、最初から最後まで必ず入力されている列を指定します。ここではA1としています。
途中で入力が途切れていたりすると、そこまでを最終行として認識してしまいます。

Selection.Sortを使うと、指定した範囲内を並び替えることができます。
Key1…範囲を指定します。Rangeオブジェクトで指定。Key2、Key3まで指定可能。
Order1…xlAscendingだと昇順、xlDescendingだと降順。Order2、Order3まで指定可能。
Header…xlGuessで先頭行をタイトル行であるか否かを自動で判別します。xlNoで先頭行をタイトルとみなさず並び替えの対象とします。xlYesで先頭行をタイトル行とみなし、並び替えの対象から外します。

関連記事

Excel VBAでコマンドプロンプトを起動しコマンドを実行する

Excel VBAでコマンドプロンプトを起動し、かつコマンドを実行する方法です。 コマンドプロンプトの実行 コマンドプロンプトを実行するには以下のように書きます。 CreateObject (&#82…続きを読む

Excel:改行を含むテキストを置換する

Microsoft Excelで、セルの中で改行しているテキストを置換する方法です。 以下のように、 あああ いいい という改行を含むテキストを「おおお」というテキストに置換します。 改行を含めたテキ…続きを読む

Excelで計算式を入れたセルに計算結果が反映されない

Excelで計算式を予め設定していたにもかかわらず、数値を入力してもそのセルに計算結果が反映されない時があります。 通常、自動計算する設定になっていますが、これが手動計算に変わっていることが原因です。…続きを読む

Excelで起動時にフォームのみ表示する

Excelで起動時にフォームを表示し、Excelそのものの表画面は非表示にする方法です。 起動時にフォームを表示する 「開発」→「コードの表示」から「Microsoft Visual Basic fo…続きを読む

Excel VBA:最終行番号を取得する

Excelでデータ管理をしていて、VBAでその全データに対して何らかの処理を行う場合、1行目から最終行までループさせて処理を1行ずつ行う場合には、最終行を取得する必要があります。 今回は、最終行を取得…続きを読む

Excel:「このファイルのソースが信頼できないため、Microsoftによりマクロの実行がブロックされました」と表示される

メールに添付されたマクロ付きExcelファイルを開いたところ、 「このファイルのソースが信頼できないため、Microsoftによりマクロの実行がブロックされました」と表示され、マクロが実行できなくなっ…続きを読む

Excel:起動時に「MICROSOFT365を試す」と表示される

MicrosoftExcel2016を使っていて、あるときから起動時に「MICROSOFT365を試す 1TBのクラウドストレージで、ファイルを安全に保護し、ファイルにいつでもアクセスできるようになり…続きを読む

Excel:保存先の場所を常にデスクトップにする

Microsoft Excel2019で新規に保存をしようとするとOne Driveなどが最初に候補にあがってきてしまい、コンピュータ上に保存したいときに、いちいちデスクトップを指定するのに手間取りま…続きを読む

Excelで数式のみをコピーする

Excelで数式だけをコピーして貼り付ける方法です。 以下のように、セルC6に入力されている数式を、セルD6にコピーしたい場合、セルの右下をドラッグしてD6に持っていくと枠線やセルの背景色などの余計な…続きを読む

Excel VBA:フォルダを開く

Excelでボタンをクリックしたらフォルダを開くようにするVBAです。 Shell EXPLORERPATH & OPENFOLDER , vbNormalFocus EXPLORERPATH…続きを読む