ExcelワークシートでVBAを介して並べ替えられた範囲を自動更新する方法

今すぐ共有:

Excelのカスタムソートは非常に便利な機能です。 この記事では、ExcelVBAを使用して範囲内のカスタム並べ替えを自動的に更新する方法について説明します。

カスタムソートを使用すると、これがExcelのすばらしい機能であることがわかります。 ただし、この機能を頻繁に使用すると、問題が発生する場合もあります。 特定のデータと情報を使用して範囲で並べ替えます。 範囲にデータと情報を追加しても、範囲内の順序は自動的に変更されません。 下の画像は、そのような状態の例を示しています。例:

範囲に新しいデータセットを追加しても、ランクは自動的に変更されません。 同じ基準で新しいデータセットを使用してこのより広い範囲を並べ替える場合は、カスタム並べ替えのプロセスを再度実行する必要があります。 特にワークシートのデータと情報を絶えず更新する必要がある場合、これは非常に面倒であることがわかります。 範囲に新しい情報を追加するたびに、再度並べ替える必要があります。 この問題を解決してタスクをすばやく完了するために、この記事を読み続けることができます。

レコードマクロ

カスタムソートの基準が非常に複雑な場合、VBAコードを直接記述するのは難しいでしょう。 したがって、最初にマクロを記録できます。 また、このマクロのコードは他のマクロでも使用できます。 コードを記録するプロセスは非常に簡単です。

  1. マクロを記録する前に、リボンにVBAのタブを追加する必要があります。 ここで、リボンのいずれかのタブを右クリックします。
  2. 次に、メニューで[リボンのカスタマイズ]を選択します。リボンをカスタマイズする
  3. 次に、「Excelオプション」ウィンドウで、「メインタブ」のリストにある「開発者」オプションをチェックします。Developer
  4. その後、ウィンドウで「OK」をクリックします。 したがって、リボンにタブを追加しました。
  5. これで、ワークシートに戻ります。 追加した「開発者」タブをクリックします。
  6. 次に、ツールバーの「マクロの記録」ボタンをクリックします。 したがって、「マクロの記録」ウィンドウがポップアップ表示されます。レコードマクロ

一方、ワークシートの下部にある小さなボタンをクリックして、上記の6つの手順を置き換えることもできます。レコードマクロ

  1. 「マクロの記録」ウィンドウで、最初のテキストボックスに名前を入力します。 必要に応じてショートカットキーを割り当てます。 そして、必要に応じて説明を追加します。マクロの設定
  2. 次に「OK」をクリックします。 したがって、マクロは、実行したすべての操作の記録を開始します。
  3. ワークシートで並べ替える必要のある範囲を選択します。
  4. 「ホーム」タブをクリックします。
  5. 次に、リボンの[並べ替えとフィルター]ボタンをクリックします。
  6. ドロップダウンリストで、[カスタムソート]オプションを選択します。カスタムソート
  7. 「並べ替え」ウィンドウで、必要に応じて基準を設定します。 すべてのアクションはマクロに記録されます。並び替え

マクロを記録するときは、追加の手順を実行しないでください。 それ以外の場合、これらのステップも記録されます。 そして、これは次の部分で問題を引き起こします。

  1. 「並べ替え」ウィンドウで設定が完了したら、「OK」をクリックして設定を保存します。
  2. 次に、リボンの「開発者」タブをもう一度クリックします。
  3. 次に、「記録の停止」ボタンをクリックします。 ワークシートがマクロを記録する状態になると、ボタンが「記録の停止」に変わります。録音を停止

ワークシートの下部にあるボタンをクリックして、マクロの記録を停止することもできます。 これで録音は終了です。 すべての並べ替え基準がマクロ1に保存されました。

ExcelVBAマクロを使用する

このパートでは、VBAマクロを使用してワークシートのカスタム並べ替えを更新する方法を示します。 また、この部分では、記録されたマクロも使用します。

  1. リボンの「開発者」タブをクリックします。
  2. 次に、ツールバーの「VisualBasic」ボタンをクリックします。 代わりに、キーボードの「Alt + F11」ボタンを押して、2つのステップを置き換えることもできます。ビジュアルベーシック
  3. Visual Basicエディターで、「VBAProject」領域のシートをダブルクリックします。 このシートでは、カスタムソートを更新する必要があります。 実際のファイルでは、対応するシートをダブルクリックする必要があります。
  4. 次に、次のコードを領域に入力します。
Private Sub Worksheet_Change(ByVal Target As Range)

End Sub
  1. 次に、上記のXNUMXつのVBA文の間に次のコードを入力します。
Application.ScreenUpdating = False
If Not Intersect(Target, Range("A1:C13")) Is Nothing Then

End If

ここで範囲が推定されます。 販売量は12か月で、ヘッダーの最初の行と一緒に範囲「A1:C13」を入力します。 実際のワークシートに従って、コードに範囲を入力することもできます。

  1. このステップでは、エディターでモジュール1を開きます。 このモジュールのコードは、以前に作成したカスタムソートのプロセスです。 マクロを記録する機能を使用すると、時間を大幅に節約できることがわかります。
  2. 次に、このモジュールの主要部分をコピーします。コピー
  3. そして、ダブルクリックします tar「VBAProject」の部分でシートを入手してください。
  4. その後、コードをIF-ENDIFコードに貼り付けます。
  5. 次に、必要に応じてコードの範囲を変更します。 記録されたマクロは少し複雑で冗長です。 必要に応じて変更することもできます。 したがって、完全なVBAコードは次のようになります。
Private Sub Worksheet_Change(ByVal Target As Range)
  Application.ScreenUpdating = False
  If Not Intersect(Target, Range("A1:C13")) Is Nothing Then
    With ActiveWorkbook.Worksheets("Sheet1").Sort
      .SortFields.Clear
      .SortFields.Add Key:=Range("B2:B13"), _
         SortOn:=xlSortOnValues, Order:=xlDescending, DataOption:=xlSortNormal
      .SortFields.Add Key:=Range("C2:C13"), _
         SortOn:=xlSortOnValues, Order:=xlDescending, DataOption:=xlSortNormal
    End With
 
    With ActiveWorkbook.Worksheets("Sheet1").Sort
      .SetRange Range("A1:C13")
      .Header = xlYes
      .MatchCase = False
      .Orientation = xlTopToBottom
      .SortMethod = xlPinYin
      .Apply
    End With
  End If
End Sub

別のWITH-ENDWITHをコードに追加します。 したがって、記録結果よりも明確になります。 他の要件がある場合は、実際のニーズに応じて変更することもできます。 コードを変更するときは注意が必要です。 そうしないと、ワークシートに間違った結果が表示されます。

  1. これで、エディターでVBAコードが完成しました。 ワークシートに戻って結果をテストできます。 翌月と対応する数値を範囲に追加すると、カスタムソートが自動的に更新されます。ホイール試乗

したがって、新しい要素を入力するたびにカスタムソートを手動で更新する必要はありません。 tar範囲を取得します。 一方、このブックはマクロ対応のExcelファイルとして保存する必要があります。 そうしないと、通常のファイルとして保存するとコードが失われます。

Excelの汚職被害者を支援します

Excelは非常に強力であり、作業をすばやく簡単に完了するのに役立つことは誰もが知っています。 しかし、Excelアプリケーションはまだ完璧にはほど遠いです。 さまざまな理由でExcelが破損することがあります。 Excelが破損すると、このアプリケーションでタスクを完了できなくなります。 うまく機能するためには、できるだけ早く修理する必要があります。

当社は長年にわたり復旧分野、特にExcelの復旧に取り組んできました。 したがって、私たちの技術スタッフに助けを求めることができます。 長年の経験により、ファイルに損傷を与える理由を簡単に特定できます。 そしてあなたをより良く助けるために Excelxlsxファイルの損傷を修復します、サードパーティのツールを開発しました。 このツールは操作が非常に簡単で、プライバシーの問題を心配する必要はありません。

著者紹介:

Anna Maは、のデータ復旧の専門家です。 DataNumen、Inc。は、以下を含むデータ復旧技術の世界的リーダーです。 Wordのdocxエラーを修復します と見通し修理ソフトウェア製品。 詳細については、次のWebサイトをご覧ください。 WWW。datanumen.com

今すぐ共有:

コメントは締め切りました。