• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:エクセル Rank関数をマクロで)

エクセルRank関数をマクロで作成する方法

このQ&Aのポイント
  • エクセルのRank関数を使用する際に便利なマクロを作成する方法について紹介します。選択されたセルの右側に新しい列を挿入し、その列にRank関数を適用します。
  • マクロを使用することで、繰り返し行うRank関数の作成作業を効率化することができます。具体的な手順としては、選択されたセルの右側に新しい列を挿入し、その列にRank関数を使って順位を計算します。
  • マクロを作成するための基本的な手順を紹介します。まず、選択されたセルの右側に新しい列を挿入します。次に、新しい列の最初のセルにRank関数を入力して、そのセルから下に自動的にコピーします。最後に、選択されたセルと新しい列を選択します。

質問者が選んだベストアンサー

  • ベストアンサー
  • keithin
  • ベストアンサー率66% (5278/7941)
回答No.3

>c3-c23を選択した状態でマクロを動かしたい >選択セルの右側に新規の列を挿入したい sub macro1()  dim s as string  s = selection.address(,,xlr1c1)  selection.offset(0, 1).entirecolumn.insert shift:=xlshifttoright  selection.offset(0, 1).formular1c1 = "=RANK(RC[-1]," & s & ")" end sub ぐらいで。

5goma
質問者

お礼

keithin 様 ありがとうございました。お蔭様で解決しました。 汎用性が高くて助かります。 大切に使わせていただきます。 簡単で恐縮ですが、お礼申し上げます。

その他の回答 (2)

  • tom04
  • ベストアンサー率49% (2537/5117)
回答No.2

No.1です。 たびたびごめんなさい。 前回のコード内の数式での >=RANK(C3,C$3:C$23,1) の最後の「1」を削除してください。 質問文に「降順」とありましたので、勘違いしていました。 普通に数値の大きい順のRANKでよい訳ですよね? 結局 >=RANK(C3,C$3:C$23) と普通にワークシート関数で大丈夫だと思います。m(_ _)m

5goma
質問者

お礼

tom04 様 ありがとうございました。 訂正までしていただき助かりました。大変勉強になりました。 わかりにくくて済みません、選択セルはC列とは限らずに任意の場所という意味でした。 大切に使わせていただきます。 簡単で恐縮ですが、お礼申し上げます。

  • tom04
  • ベストアンサー率49% (2537/5117)
回答No.1

こんばんは! ごくごく単純に Sub Sample1() Range("D:D").Insert Range("D3:D23").Formula = "=RANK(C3,C$3:C$23,1)" End Sub ではダメですか?m(_ _)m