No.2ベストアンサー
- 回答日時:
以下のマクロを標準モジュールに登録してください。
D4~D23のセルが並べ替えの対象になります。
----------------------------------------
Option Explicit
Public Sub ランダム並べ替え()
Dim ary() As String
Dim ary2() As String
Dim flag As Boolean
Dim i, j, row As Long
i = 0
For row = 4 To 23
If Cells(row, "D").Value <> "" Then
ReDim Preserve ary(i)
ary(i) = Cells(row, "D").Value
i = i + 1
End If
Next
If i = 0 Then
MsgBox ("処理対象データなし")
Exit Sub
End If
ReDim ary2(i - 1)
For i = 0 To UBound(ary2)
ary2(i) = ""
Next
Randomize
For i = 0 To UBound(ary)
flag = False
Do
j = Int(Rnd * (UBound(ary) + 1))
If ary2(j) = "" Then
ary2(j) = ary(i)
flag = True
End If
Loop While flag = False
Next
i = 0
For row = 4 To 23
If i <= UBound(ary2) Then
Cells(row, "D").Value = ary2(i)
Else
Cells(row, "D").Value = ""
End If
i = i + 1
Next
MsgBox ("完了")
End Sub
--------------------------------------------
No.1
- 回答日時:
EXCELで手作業で出来ることですから
マクロ記録して再現すればいいです。
E4:E23に=RAND()を入力
その範囲をコピー、そのまま値で貼り付け
D4:E23をE列で並び替え、その後E列を消去。
あ、23までと限らないんですね。
じゃ、そこだけ
Range(Range("e4"),Range("d30").end(xlup).offset(0,1))
に変更するといいでしょう。
手作業だとE4を選択して入力
それをオートフィルみたいになりますが
マクロは選択要らないので
上記のRangeに一気に入力でOKです。
並び替えの方は
Range(Range("e4"),Range("d30").end(xlup))
ですね。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Excel(エクセル) Excel 郵便番号順に並び変えたい 同じ番号が複数あるとき 4 2022/04/28 18:35
- Excel(エクセル) Googleスプレッドシートの割合の関数と円グラフの並べ替えについて 1 2022/07/22 17:31
- 数学 既存の数列のランダム性について(初歩的質問) 2 2022/06/07 20:04
- Excel(エクセル) 結合セルのソートについて 5 2022/04/22 11:57
- Excel(エクセル) Excelで漢字人名が勝手に並び変わる 2 2023/01/14 22:14
- その他(Microsoft Office) Excel 2列分のDATAの並べ替え 1 2023/01/01 17:12
- Excel(エクセル) ExcelのIF関数について 4 2023/05/24 12:54
- その他(Microsoft Office) エクセル 日付を数値に変換する方法 4 2023/03/24 12:05
- Excel(エクセル) ランダムに並んだ人の名前から、全種類の人を抜き出す関数 7 2022/07/08 08:06
- Excel(エクセル) エクセルのマクロ作成について教えてください 5 2023/02/20 00:39
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
整数行を残し小数点の行を削除...
-
Excelでセル内の数式は残し値だ...
-
Excel2007で、太字にした行のみ...
-
Excelで連続印刷をするマクロ
-
条件に応じて特定の行を非表示...
-
エクセルで全ての数字間にカン...
-
「マクロ」の足し算の式を教え...
-
エクセルで指定セル範囲内の画...
-
Excelで周期的に列を削除する方法
-
excel ある部分だけをコピペし...
-
Excel にて非表示行を探すワー...
-
エクセルで、行ごとの並び替え...
-
エクセルの複数シートの保護を...
-
Excelで同じシートのコピーを一...
-
EXCELで1ヶ月分の連続した日付...
-
Excelで金銭出納帳。繰越残高を...
-
別シート参照のセルをシート毎...
-
エクセルVBAでパスの¥マークに...
-
VBAでシートコピー後、シート名...
-
スプレッドシートの関数VLOOKUP...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
条件に応じて特定の行を非表示...
-
Excel2007で、太字にした行のみ...
-
「マクロ」の足し算の式を教え...
-
Excelで連続印刷をするマクロ
-
Excelでセル内の数式は残し値だ...
-
エクセル VBA 小数点を含む数字...
-
エクセルで、行ごとの並び替え...
-
エクセルで全ての数字間にカン...
-
Excel(VBA)データ入力に応じて...
-
Excel にて非表示行を探すワー...
-
Excel2007 セルを右方向に削除...
-
VBA コピーを有効行までループ...
-
Excelで周期的に列を削除する方法
-
excel ある部分だけをコピペし...
-
wordのvbaでハイパーリンク設定...
-
エクセルで連番をマクロで
-
値貼り付けをしても書式も貼り...
-
エクセル マクロ オートシェ...
-
Excel 2013 文字列内の文字重複...
-
並べ替えのマクロで対象行の範...
おすすめ情報