ExcelのVBAを使えば、データベースとして設定したセル範囲からランダムに値を抽出して、自動で指定セルの隣に入力する処理が簡単に実現できます。
今回は、A1:A100の範囲をデータベースと見立て、そこからランダムに1件を取得し、アクティブセルの右隣に出力するマクロを作成しました。
実現したい内容
- データベースとなるセル範囲(例:
Sheet1!A1:A100
)からランダムに1件取得 - 任意のセル(指定セル)の右隣(隣接セル)に出力
ActiveCell
を起点とし、選択されたセルを自動処理対象とする
使用したVBAコード
以下が今回作成したVBAコードです。任意のセルを選択し、マクロを実行するだけで、隣のセルにランダムなデータが入力されます。
Sub FillAdjacentCell()
Dim TargetCell As Range
Dim DatabaseRange As Range
Dim RandomIndex As Long
Dim MaxRow As Long
' 対象のセルをアクティブなセルとして設定
Set TargetCell = ActiveCell
' データベースの範囲を設定 (例: A1:A100)
Set DatabaseRange = ThisWorkbook.Sheets("Sheet1").Range("A1:A100")
' ランダムにインデックスを取得
MaxRow = DatabaseRange.Rows.Count
RandomIndex = Int((MaxRow - 1 + 1) * Rnd + 1)
' 隣のセルにランダムに取得したデータを設定
TargetCell.Offset(0, 1).Value = DatabaseRange.Cells(RandomIndex, 1).Value
End Sub
コードの補足
Set TargetCell = ActiveCell
対象とするセルは、ユーザーが事前に選択しておくセルです。どの行・列でも対応可能です。DatabaseRange = Range("A1:A100")
ここがデータベースとなるセル範囲です。必要に応じて範囲を変更してください。RandomIndex = Int((MaxRow - 1 + 1) * Rnd + 1)
Rnd
関数を使用して、1〜100までの整数をランダムに生成しています。TargetCell.Offset(0, 1)
指定セルの右隣のセルを表します。左に入れたい場合はOffset(0, -1)
、下に入れたい場合はOffset(1, 0)
に変更可能です。
応用と注意点
応用例
- 名前・キーワード・タグのランダム表示
- 抽選、くじ引きの補助ツールとして
- ランダムな組み合わせやテストデータの作成
注意点
Rnd
関数は、連続実行時に同じ結果を返す場合があります。より自然なランダム性を求める場合は、Randomize
を先頭に追加してください。
Randomize
- データベースのセルに空白があると、その空白が出力される可能性があります。データが詰まっている範囲を正確に設定することが推奨されます。
まとめ
VBAを使えば、Excelシート上でランダムにデータを抽出し、特定セルの隣に自動で貼り付ける処理が簡単に構築できます。
ActiveCell
を基準にして処理を柔軟に対応可能- データベースの範囲を変えるだけでさまざまなシーンに応用可能
Rnd
関数でランダム性を担保し、選ばれた値をそのまま活用できる
日々の業務での簡易抽選やデータ自動補完などにもご活用いただけます。
最後までお読みいただき、ありがとうございました。
スクールの紹介
【アイデミー】AIを学んで一発逆転のキャリアチェンジ!
最後に宣伝をさせてください。
夢見るAIエンジニアへ、今こそ一歩を踏み出せ!
最近、AI技術やデータサイエンスに興味を持ち始めたあなた。将来、AIエンジニアやデータサイエンティストとして活躍したいと考えているかもしれません。また、AIを使って業務課題や研究課題を解決したい、あるいは教養としてAIの知識を深めたいと思っている方もいるでしょう。
しかし、学び始めるとなると「どこから手をつけて良いのか分からない」「専門的すぎて理解できない」といった悩みが生じることも。そんなあなたのために、この3ヶ月間集中してAIプログラミングを習得するオンラインコーチングサービスがオススメです!
なぜこのサービスが選ばれるのか?その理由はこちら
- 初心者から上級者まで
完全なプログラミング初心者から研究者まで、幅広い方々に優良なコンテンツが提供されます。 - 徹底的な進捗管理
受講者の進捗をしっかりとチェックし、つまずきやすいポイントでのフォローが万全です。 - 専属メンターによる徹底サポート
AIの学び方から、実際の適用まで、専属のメンターが手厚くサポートします。 - 場所を選ばず学べるオンライン完結
東京以外の地域からも、気軽に学び始めることができます。
信頼の実績多数!
・日本最大級のプログラミングスクール実績
・受講者総数700名以上
・SaaS型学習サービス会員65,000名以上
・企業導入実績120社以上
・グッドデザイン賞受賞
・著名な賞受賞歴や経団連加盟も実現
夢を叶えるための第一歩を、一緒に踏み出しませんか?今なら、あなたもその一員として学び始めることができます!