• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:5×5セルの中の数字を左端から右端に昇順に並べる)

エクセルで5×5セルの数字を昇順に並べる方法

このQ&Aのポイント
  • エクセル2010を使用して、5×5セルの中にランダムに入っている数字を昇順に並べる方法を教えてください。
  • 質問者は、5×5セルの中に数字が1~99までランダムに重複して入っている状態から、それをA1~E5の順に昇順に並べたいとのことです。
  • 回答をお待ちしています。

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

  • ベストアンサー
  • SI299792
  • ベストアンサー率47% (772/1616)
回答No.1

G列をワークエリアに使います。 ' Option Explicit ' Sub Macro1() '   Dim Cell As Range   Dim Row As Integer '   For Each Cell In [A1:E5]     Row = Row + 1     Cells(Row, "G") = Cell   Next Cell   Range("G1:G" & Row).Sort [G1]   Row = 0 '   For Each Cell In [A1:E5]     Row = Row + 1     Cell = Cells(Row, "G")   Next Cell   [G:G].ClearContents End Sub

moguo4649
質問者

お礼

早速の回答頂きありがとうございます。 やってみたところ、うまくできました。 またよろしくお願いします。

その他の回答 (1)

  • imogasi
  • ベストアンサー率27% (4737/17069)
回答No.2

#1のご回答で、問題ないのですが、少し違ったもので、 (1)エクセルVBAやVBscriptに配列をソートするコマンドがないので残念。(言語Pythonにはあるようだ)。原始的な、バブルソートを使ってみます。 Pythonの場合 https://qiita.com/shizuma/items/40f1fe4702608db40ac3 バブルソート例 https://excel-ubara.com/excelvba5/EXCELVBA228.html #1のご回答では、エクセルのシートの列に1次元的にデータを並べて、RangeのSortメソッドを使っています。 (2)範囲がいろいろな場合がある場合を考えて、実行前に、四角な、セル範囲をユーザーがマウスで指定し、コマンドボタンを押して本プログラムを実行する仕組みにしてみます。 ーー Sheet1にコマンドボタンを1つ貼り付ける。 ボタンのCaptionなど設定する。 デザインモードを終了する。 ーーー Sheet1のエベントを描く画面で、 Private Sub CommandButton1_Click() Dim d(26) '---配列にデータをおさめる For Each cl In Selection d(i) = cl i = i + 1 Next '----確認 'For i = 0 To UBound(d) - 1 'MsgBox d(i) 'Next i '---バブルソート Call BubbleSort1(d) '---シートでソート後確認 For i = 0 To UBound(d) - 1 Cells(i + 20, "A") = d(i) Next i End Sub Sub BubbleSort1(ByRef argAry() As Variant) Dim vSwap As Variant Dim i As Integer Dim j As Integer For i = LBound(argAry) To UBound(argAry) For j = UBound(argAry) To i Step -1 If argAry(i) > argAry(j) Then vSwap = argAry(i) argAry(i) = argAry(j) argAry(j) = vSwap End If Next j Next i End Sub Sheet1のデータ範囲を指定して、コマンドボタンをクリック。 確認 A列20以下に 2 4 5 7 8 8 9 10 10 11 12 12 17 19 20 22 24 26 27 29 30 31 34 80

関連するQ&A