3
1

More than 1 year has passed since last update.

ダミーデータ生成【VBA】【初心者向け】

Last updated at Posted at 2021-09-04

はじめに

ExcelVBAを使って顧客のダミーデータを
指定した数だけ出力するマクロを作ります

今回作るもの

イメージ
氏名
佐藤 翔太
鈴木 拓也
高橋 健太
...
...
...

↑このようなものを再現するために

実行例
氏名
wbv liji
kdg ksgf
nik gshv
...
...
...

↑このような【a~z 3文字】【半角スペース】【a~z 4文字】を指定した数だけ出力するVBAを作ります

ステップ1

拡張子【xlsm】のファイルをデスクトップ上に作ります
ファイル名をダミーデータに変更します
無題.png

ステップ2

下記のように入力します
※開発タブ→挿入→ボタンをクリックでボタン生成
無題.png

ステップ3

開発タブ→Visual Basicを押しVBA画面を開きます
MicroSoftExcelObjects(右クリック)→挿入→標準モジュール→Module1を開き、VBAを記述します

Module1
Sub make_dummy_name()
    Dim num
    num = Cells(2, 4)
    Dim i
    For i = 2 To 1 + num
        Cells(i, 1) = 1
    Next 
End Sub

ステップ4

Excel画面に戻ります
マクロ実行ボタンを右クリック→マクロの登録→make_dummy_nameをOKを選択しマクロ実行ボタンを押します
↓のように人数があっていることを確認します
無題.png

ステップ5

VBA画面を開きます
VBAを追記します

Module1
Sub make_dummy_name()
    Dim num
    num = Cells(2, 4)
    Dim dummy_name As String 'ダミーネーム宣言
    Dim i
    Dim j 
    For i = 2 To 1 + num
        For j = 1 To 8
            If j <> 4 Then
                '4文字目以外はアルファベット小文字を結合
                dummy_name = dummy_name + CStr(chr(make_lowercase_ascii_number))
            Else
                '4文字目は半角スペースを結合
                dummy_name = dummy_name + " "
            End If
        Next   
    Cells(i, 1) = dummy_name
    dummy_name = "" 'ダミーネーム初期化  
    Next 
End Sub

Function make_lowercase_ascii_number()
    Randomize   '乱数系列初期化
    make_lowercase_ascii_number = Int(Rnd * 25 + 97) '97~122の範囲で乱数を生成
End Function

※Tips

ASCIIコード【10進数 97~122】はアルファベットa~z
chr(数値)でASCIIコード【10進数】に対応する文字をChar型として取得できる
CStr(【Char型】)でChar型→String型に型変換できる

ステップ6

Excel画面に戻りマクロ実行ボタンを押します
ダミーデータが取得できました
無題.png

おわりに

ASCIIコードの【10進数】→【文字】の変換を覚えると便利です

3
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
3
1