59
3

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

Systemi(株式会社システムアイ)Advent Calendar 2024

Day 9

入力文字数チェックで使用するテキストを作成できるマクロを作ってみた

Posted at

 単体テストでテキストボックスやラベルなどに入力できる最大文字数を確認する時、いちいち文字を入力し、その結果をスクリーンショットでエビデンスとして保存するという手法でテストを行うことがあります。そのため、テストで使用する入力用テキストを作成する作業の負担を軽減させるマクロを作ってみました。
     ボタンをクリックするだけでテキストを作成できます!

機能説明

macro.png
レイアウト↑

①文字数入力欄

E2セルに作成したいテストデータの桁数を入力します。1以上10000以下の間で好きな桁数を指定できます。

バリデーション
0以下又は、10001以上入力すると、「1から10000までの値を入力してください。」というエラーメッセージが出ます。

数字以外を入力すると、「数字のみ入力してください。」というエラーメッセージが出ます。

②実行ボタン

実行ボタンを押下すると、各種類のテストデータがE2セールに入力した桁数で作成されます。
例:eg.png

③クリアボタン

クリアボタンを押下すると、入力した桁数と結果のデータが削除されます。

VBA開発

クリアボタン

qiita.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

実行ボタン

qiita.vba
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)の基本的な作り方・使い方を解説

59
3
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
59
3

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?