Excel VBAを活用すると、指定した名前リストからランダムに抽出し、セルに自動で配置する処理が簡単に実現できます。
本記事では、重複のないランダムな名前の抽出とセル配置の手順について、VBAコードとあわせてご紹介いたします。
実現したいこと
- 名前リストから ランダムに6人を選抜
- 選ばれた名前を セルに2列ずつ3行で配置
- 重複を避けて選択(同じ名前が複数回選ばれないように)
使用するVBAコード
以下のコードを標準モジュールに貼り付けて実行すれば、アクティブセルの右隣からランダムに選ばれた名前が配置されます。
Sub FillNamesNextToTargetCell()
Dim TargetCell As Range
Dim NameList As Variant
Dim SelectedNames() As String
Dim i As Integer, j As Integer
Dim TempName As String, RandomIndex As Integer
' 対象のセルをアクティブなセルとして設定
Set TargetCell = ActiveCell
' 名前のリスト
NameList = Array("森", "小森", "中森", "大森", "林", "小林", "中林", "大林", "小木", "中木", "大木")
' リストからランダムに6人選抜
ReDim SelectedNames(1 To 6)
For i = 1 To 6
Do
RandomIndex = Int(Rnd() * UBound(NameList) + 1)
TempName = NameList(RandomIndex - 1)
Loop Until Not IsInArray(TempName, SelectedNames)
SelectedNames(i) = TempName
Next i
' 選ばれた名前を3行×2列に配置
j = 1
For i = 1 To 6 Step 2
TargetCell.Offset(j - 1, 1).Value = SelectedNames(i)
TargetCell.Offset(j - 1, 2).Value = SelectedNames(i + 1)
j = j + 1
Next i
End Sub
判定用関数(重複確認)
Function IsInArray(valToBeFound As Variant, arr As Variant) As Boolean
Dim element As Variant
On Error GoTo ErrorHandler
For Each element In arr
If element = valToBeFound Then
IsInArray = True
Exit Function
End If
Next element
ExitFunction:
Exit Function
ErrorHandler:
IsInArray = False
Resume ExitFunction
End Function
コードの説明
メイン処理:FillNamesNextToTargetCell
TargetCell = ActiveCell
配置の起点を、実行時に選択されているセルに設定します。NameList
ランダム選出対象となる名前の一覧です。任意の人数・名前に変更可能です。SelectedNames
ランダムで6名選抜し、重複を避けて選択するよう制御されています。Offset(j - 1, 1)
アクティブセルの右側に、2列分の名前を3行で配置します。
判定関数:IsInArray
この関数は、すでに選ばれた名前の中に同じ名前が含まれていないかを判定します。
重複を排除するための重要な補助関数です。
注意点と補足
Rnd()
はExcelを起動するたびに同じ乱数系列を返す可能性があります。必要に応じてRandomize
を使って乱数の初期化を行うとより自然なランダム性が得られます。
Randomize
- 名前のリストが6名未満の場合、このコードは無限ループに陥る可能性があります。最低でも6名以上のリストが必要です。
まとめ
Excel VBAを使えば、ランダムなグループ分けや抽選処理を自動化することが可能です。
今回のようなサンプルコードを活用することで、重複なしの選出・整ったセル配置が簡単に実装できます。
- 名前リストからランダム抽出
- 重複回避のためのチェック関数付き
- 配置レイアウトも柔軟にカスタマイズ可能
日常の業務効率化やイベントでの抽選処理など、さまざまな用途にご活用ください。
最後までお読みいただき、ありがとうございました。
スクールの紹介
【アイデミー】AIを学んで一発逆転のキャリアチェンジ!
最後に宣伝をさせてください。
夢見るAIエンジニアへ、今こそ一歩を踏み出せ!
最近、AI技術やデータサイエンスに興味を持ち始めたあなた。将来、AIエンジニアやデータサイエンティストとして活躍したいと考えているかもしれません。また、AIを使って業務課題や研究課題を解決したい、あるいは教養としてAIの知識を深めたいと思っている方もいるでしょう。
しかし、学び始めるとなると「どこから手をつけて良いのか分からない」「専門的すぎて理解できない」といった悩みが生じることも。そんなあなたのために、この3ヶ月間集中してAIプログラミングを習得するオンラインコーチングサービスがオススメです!
なぜこのサービスが選ばれるのか?その理由はこちら
- 初心者から上級者まで
完全なプログラミング初心者から研究者まで、幅広い方々に優良なコンテンツが提供されます。 - 徹底的な進捗管理
受講者の進捗をしっかりとチェックし、つまずきやすいポイントでのフォローが万全です。 - 専属メンターによる徹底サポート
AIの学び方から、実際の適用まで、専属のメンターが手厚くサポートします。 - 場所を選ばず学べるオンライン完結
東京以外の地域からも、気軽に学び始めることができます。
信頼の実績多数!
・日本最大級のプログラミングスクール実績
・受講者総数700名以上
・SaaS型学習サービス会員65,000名以上
・企業導入実績120社以上
・グッドデザイン賞受賞
・著名な賞受賞歴や経団連加盟も実現
夢を叶えるための第一歩を、一緒に踏み出しませんか?今なら、あなたもその一員として学び始めることができます!