単体テストでテキストボックスやラベルなどに入力できる最大文字数を確認する時、いちいち文字を入力し、その結果をスクリーンショットでエビデンスとして保存するという手法でテストを行うことがあります。そのため、テストで使用する入力用テキストを作成する作業の負担を軽減させるマクロを作ってみました。
ボタンをクリックするだけでテキストを作成できます!
機能説明
①文字数入力欄
E2セルに作成したいテストデータの桁数を入力します。1以上10000以下の間で好きな桁数を指定できます。
- バリデーション 0以下又は、10001以上入力すると、「1から10000までの値を入力してください。」というエラーメッセージが出ます。
数字以外を入力すると、「数字のみ入力してください。」というエラーメッセージが出ます。
②実行ボタン
実行ボタンを押下すると、各種類のテストデータがE2セールに入力した桁数で作成されます。
例:
③クリアボタン
クリアボタンを押下すると、入力した桁数と結果のデータが削除されます。
VBA開発
クリアボタン
Sub クリア()
' 値をクリアする
Range("E2").Value = ""
Range("E5").Value = ""
Range("E6").Value = ""
Range("E7").Value = ""
Range("E8").Value = ""
Range("E9").Value = ""
Range("E10").Value = ""
End Sub
実行ボタン
Sub 実行()
' 変数宣言
Dim num1 As Double
Dim result1 As String
Dim result2 As String
Dim result3 As String
' エラーハンドル
On Error GoTo ErrorHandler
' 文字数の値
num1 = Range("E2").Value
' セールの初期化
Range("E5").Value = ""
Range("E6").Value = ""
Range("E7").Value = ""
Range("E8").Value = ""
Range("E9").Value = ""
Range("E10").Value = ""
If num1 > 10000 Or num1 < 1 Then
MsgBox "1から10000までの値を入力してください。"
Else
' 数字
For i = 1 To num1
If i / 10 = 0 Then
result1 = result1 & "0"
Else
result1 = result1 & CStr(i Mod 10)
End If
Next i
' 英字
For i = 1 To num1
result2 = result2 & "N"
Next i
' カナ
For i = 1 To num1
result3 = result3 & "ア"
Next i
End If
Range("E5").Value = StrConv(result1, vbWide)
Range("E6").Value = StrConv(result1, vbNarrow)
Range("E7").Value = StrConv(result2, vbWide)
Range("E8").Value = StrConv(result2, vbNarrow)
Range("E9").Value = StrConv(result3, vbWide)
Range("E10").Value = StrConv(result3, vbNarrow)
Exit Sub
ErrorHandler:
MsgBox "数字のみ入力してください。"
End Sub
構文
Sub:サブルーチンの始まり。
End Sub:サブルーチンの終わり。
Dim:変数を宣言するためのキーワード。
Range("セル"):セルオブジェクト。
最後に
テストで入力文字数のチェックをする時、今回作ったマクロを利用することで、少しでも作業の負担を軽減できればと思います。
Excelマクロ(VBA)については下記を参考に:
Excelマクロ(VBA)の基本的な作り方・使い方を解説