【Excel】VBAでワードリストからデータ作成

こんにちは!Excelで事前に用意したワードリストをランダムに選択し新たにデータリストを作成するためのVBAコードを紹介します。

使用するワードリスト

まず使用するワードリストについて解説します。
ワードリストの構成
ワードリストは「候補」のワークシート上に、「№」「品番」「型番」「産地」「価格」という構成となっており、今回はデータを10行分作成しました。

作成するデータ数

ワードリストから作成するデータの数は下図の赤枠で指定しています。

VBAの実行結果

VBAを実行した結果下図のような結果を得る事が出来ます。この組合せは実行の都度ランダムで違う結果を得ることが出来ます。

コード解説★★★(コピーはここ)★★★

解説

今回のコードは大きく分けて下記の7つに分かれています。

  • ユーザー設定項目
  • 変数の宣言
  • ワークシートオブジェクトの設定
  • 実行条件の取得
  • 配列のサイズ調整
  • データリストの作成

データリストの格納ではそれぞれ順番に説明していきます。

ユーザー設定項目

ここではこのVBAで使用するワークシートの名称や表の開始位置を指定しています。コードをコピーして使用する場合にはこの部分を自身のExcelに合わせて変更する事で利用できます。

変数の宣言

ここではVBA内で使用する変数や配列、オブジェクトを宣言します。

ワークシートオブジェクトの設定

ここでは変数に事前に設定したワークシートの名称を入力しています。

実行条件の取得

ここでは「wsWord」に指定したワークシートからワードリスト表の行列数や作成するデータ数、ワードリストのワードデータを配列に格納しています。

配列のサイズ調整

ここでは抽選結果を格納する配列 RESULT のサイズを先ほど取得した作成するデータ数に合わせて動的に調整しています。

データリストの作成

ここでは繰り返し処理を使用してワードリストの中からランダムに言葉を抽選してデータのレコードを作成していきます。

データリストの格納

ここではランダム抽出にて作成したデータレコードを事前に設定したワークシートに出力しています。

使用している技術

基本:FOR-NEXT、二次元配列、RND、Row、Column

まとめ

この記事では、Excelのワードリストからランダムにデータリストを生成するVBAコードを紹介しました。このコードは、WORD 配列からランダムに言葉を選び、RESULT 配列に格納して、新しいデータリストを作成するものです。処理の流れとしては、まず必要な変数と配列を宣言し、次にワークシートからデータを取得。続いて、配列のサイズを設定し、ランダムに言葉を選びながらデータリストを作成します。最後に、そのデータを指定したシートに出力します。基本的なVBA技術を用いたこのコードを使えば、効率よくデータリストを作成できます。

コメント

タイトルとURLをコピーしました