top of page

​タグ一覧

配列処理(76)

シート・セル操作(34)

階層化フォーム(33)

ファイル操作(31)

開発事例(26)

図形操作(24)

設計思想(14)

講座実施報告(12)

開発効率化(10)

ユーザーフォーム(10)

コード自動生成(10)

ココナラ(9)

数学(9)

文字列操作(8)

イベントプロシージャ(7)

GAS(7)

Webアプリ(6)

副業(5)

アニメーション(5)

技術解説(4)

その他(5)

イミディエイトウィンドウ(4)

OneDrive(4)

Googleスプレッドシート(4)

クリップボード(4)

条件付き書式(4)

介護・福祉(4)

小説(3)

HTML(3)

JavaScript(3)

公開ツール(3)

Enum(2)

PDF(2)

フリーランス(2)

リスキリング(2)

Outlook(2)

Discord(2)

シフト表(2)

LookerStudio(2)

日報(2)

カレンダー(2)

パズル(2)

小ネタ(2)

コード解説(2)

クラスモジュール(2)

Antigravity(2)

デスクトップアプリ(2)

スクレイピング(1)

スプレッドシート(1)

QRコード(1)

実行予約(1)

給与計算(1)

VBA不使用(1)

超勉強会(1)

溶接ロボット(1)

楽天市場(1)

経理(1)

医療(1)

文書作成(1)

発注書(1)

WebAPI(1)

学校(1)

CAD(1)

PowerShell(1)

python(1)

1~Num の整数を、重複なしでランダムに並べ替えた一次元配列を返す汎用プロシージャ Excel VBA

2025年12月19日
読了時間: 2分
1~Num の整数を、重複なしでランダムに並べ替えた一次元配列を返す汎用プロシージャ Excel VBA


<概要 (ランダム順生成)>

MakeRand123Array1D(Num) は、1~Num の整数を、重複なしでランダムに並べ替えた一次元配列を返す関数です。「抽選番号の作成」「ランダムな処理順の決定」「テストデータのシャッフル」などで、そのまま使えます。


  • 入力:要素数 Num

  • 出力:(1 To Num) の一次元配列(中身は 1~Num の並び替え)

  • 例:Num=10 → [4,6,2,7,8,1,3,5,10,9]



仕組み(何をしているか)

処理は大きく2段階です。

  1. Rnd() で 0~1 の乱数を Num 個作り、一次元配列に格納

  2. その乱数配列を GetRankArray1D に渡し、「小さい順(または大きい順)に並べたときの順位」= 1~Num の並び順に変換する

つまり、乱数そのものを返すのではなく、「乱数の大小関係」から 重複しない順位(=1~Num)を作って返す、という設計です。


<実行例>

 実行例のサンプルコードは次の通りです

 

 実行結果のイミディエイトウィンドウは次のようになります。


イミディエイトウィンドウの実行結果


 上記は実行サンプルを5回実行していますが、指定の10個分の重複のない数字をランダムな順番で出力されているのが確認できます。


<関連コード>

 今回の汎用プロシージャは、下記の別で紹介している汎用プロシージャを使用しています。


<関連記事>

 今回紹介しているような汎用プロシージャを部品として一元管理する方法は別記事で紹介していますので、是非このノウハウも参考にしてみてください。

 コーディングを効率化する上でどんどん増やしていった汎用プロシージャ(部品)をいくら増やしても簡単に流用ができるような仕組みの構築が可能になります。


<コード>


Excel VBAによる業務自動化・ツール開発をご検討の方へ

​"脱Excel"の前に、現状のExcelの潜在能力を120%発揮してみませんか?

softex-celwareロゴ 透過 横長.png

​インボイス登録番号:T5810983887134

  • Facebook
  • Twitter
  • YouTube

©2023 softex-celware。Wix.com で作成されました。

bottom of page