Sample Macro  コントロール・テキストボックス Previous Next

2-2-1) テキストボックスでDBシートへ直接入力 このページのトップへ もくじへ 使用可能なExcelのバージョン
'=================================================================================
 ◆標準モジュールのコード◆
'---------------------------------------------------------------------------------
Sub テキストボックスでDBへ入力する()
    Worksheets("DB").Activate                   '※1 住所録データベース用のシート
        下 = Range("A1").End(xlDown).Row        '※2 下端検出
        Cells(下 + 1, 1).Select                 '下端の下の行を選択
        UserForm1.Show                    'ユーザーフォーム(テキストボックス)を表示する
End Sub
'=================================================================================
 ◆ユーザーフォームのコード◆
'---------------------------------------------------------------------------------
「OK」ボタンが押されたときに動作するイベントマクロ
'---------------------------------------------------------------------------------
Private Sub CommandButton1_Click()
    行 = ActiveCell.Row                          'アクティブセルの行番号を取得する
    列 = ActiveCell.Column                       '    〃   列   〃
    Cells(行, 列) = UserForm1.TextBox1.Value     '氏名をA列のセルへ
    Cells(行, 列 + 1) = UserForm1.TextBox2.Value '郵便番号をB列のセルへ
    Cells(行, 列 + 2) = UserForm1.TextBox3.Value '住所をC列のセルへ
    UserForm1.TextBox1.SetFocus                  'フォーカスを定位置へ
    Cells(行 + 1, 列).Select                     '次のセルを選択する
End Sub
'---------------------------------------------------------------------------------
「終了」ボタンが押されたときに動作するイベントマクロ
'---------------------------------------------------------------------------------
Private Sub CommandButton2_Click()
    Unload Me                           	'ユーザーフォームを閉じる
End Sub
'=================================================================================
<コメント>
※1 "DB"にはシート名を記入
※2 "A1"にはデータを入力するセル範囲の左上角のセル番号を記入する
※3 テキストボックスは、ユーザーフォームに作成する (Excel95ではエディットボックスとして
   ダイアログシートに)

【ユーザーフォームのテキストボックス】            【DBシート】
テキストボックス    DBシート 
氏名のテキストボックス…TextBox1、郵便番号…TextBox2、住所…TextBox3

サンプルブックのダウンロードは ここをクリック (YNxv232_textbox.xls 40KB)
※ 一旦、ブックをハードディスクに保存し、開き直してから実行してください。


2-2-2) テキストボックスへ初期表示する このページのトップへ もくじへ 使用可能なExcelのバージョン
'=================================================================================
 ◆ユーザーフォームのコード◆
'---------------------------------------------------------------------------------
Private Sub UserForm_Initialize()  'ユーザーフォームが表示されたとき動作するイベントマクロ
    TextBox1.Text = "テキストボックスに初期表示しました"
End Sub
'=================================================================================
サンプルブックは次の 2-2-3のマクロからダウンロードできます。


2-2-3) テキストボックスのサイズを自動調整する このページのトップへ もくじへ 使用可能なExcelのバージョン
'=================================================================================
 ◆ユーザーフォームのコード◆
'---------------------------------------------------------------------------------
Private Sub UserForm_Initialize() 'ユーザーフォームが表示されたとき動作するイベントマクロ
    TextBox1.AutoSize = True                    'サイズを自動的に調整する
End Sub
'=================================================================================
サンプルブックのダウンロードは ここをクリック (YNxv2322_TextBox.xls 34KB)
※ 一旦、ブックをハードディスクに保存し、開き直してから実行してください。


2-2-4) テキストボックスの値を通貨表示する このページのトップへ もくじへ 使用可能なExcelのバージョン
'=================================================================================
 ◆ユーザーフォームのコード◆
'---------------------------------------------------------------------------------
Private Sub TextBox1_Change() 'ユーザーフォームの値が変わったときに動作するイベントマクロ
    If IsNumeric(TextBox1.Value) Then           'テキストボックスの値が数値なら
        TextBox1.Text = Format(TextBox1.Value, "\\#,##0") '通貨表示にする
    Else
        Beep
        TextBox1.Text = ""                      'クリアする
    End If
End Sub
'=================================================================================


2-2-5) テキストボックスの値をプレースホルダ文字で表示する このページのトップへ もくじへ 使用可能なExcelのバージョン
'=================================================================================
 ◆ユーザーフォームのコード◆
'---------------------------------------------------------------------------------
Private Sub UserForm_Initialize()
    TextBox1.PasswordChar = "*"                 '※1
End Sub
'=================================================================================
<コメント>
※1 "*"には入力された文字の代わりに表示する文字を記入
   (パスワードやセキュリティコードなどの機密にかかわる情報を保護するときに使う)


2-2-6) テキストボックスの入力値が数字か調べる このページのトップへ もくじへ 使用可能なExcelのバージョン
'=================================================================================
 ◆ユーザーフォームのコード◆
'---------------------------------------------------------------------------------
Private Sub TextBox1_KeyPress(ByVal KeyAscii As MSForms.ReturnInteger)
    If KeyAscii >= Asc("0") And KeyAscii <= Asc("9") Then '押されたキーの文字コードが
        MsgBox "数字が入力されました。"
    End If
End Sub
'=================================================================================
または
'=================================================================================
 ◆ユーザーフォームのコード◆
'---------------------------------------------------------------------------------
Private Sub TextBox1_KeyUp(ByVal KeyCode As MSForms.ReturnInteger, _
                                                    ByVal Shift As Integer)
    If KeyCode = vbKeyBack Then Exit Sub
    If KeyCode >= vbKey0 And KeyCode <= vbKey9 Or _
        KeyCode >= vbKeyNumpad0 And KeyCode <= vbKeyNumpad9 Then
        Exit Sub
    Else
        MsgBox "数字以外が入力されました。", , "すぐマク"
    End If
End Sub
'=================================================================================


2-2-7) テキストボックスの入力値を選択状態に このページのトップへ もくじへ 使用可能なExcelのバージョン
'=================================================================================
 ◆ユーザーフォームのコード◆
'---------------------------------------------------------------------------------
Private Sub CommandButton1_Click() 
    With TextBox1
        If .Text <> "1234" Then                 '※1
            MsgBox "一致しません。"
            .SetFocus
            .SelStart = 0
            .SelLength = Len(.Text)
        End If
    End With
End Sub
'=================================================================================
<コメント>
※1 "1234"には入力するべき値を記入


2-2-8) テキストボックスの文字列の改行を許可 このページのトップへ もくじへ 使用可能なExcelのバージョン
'=================================================================================
 ◆ユーザーフォームのコード◆
'---------------------------------------------------------------------------------
Private Sub UserForm_Initialize()
    With TextBox1
        .MultiLine = True                       '複数行のテキストの取得と表示を許可
        .EnterKeyBehavior = True                '※1 [Enter]キーを押すと新しい行を作成
    End With
End Sub
'=================================================================================
<コメント>
※1 [Enter]キーだけでよい ([Shift]キーを押しながらでなく)


2-2-9) テキストボックスにスクロールバーを表示 このページのトップへ もくじへ 使用可能なExcelのバージョン
'=================================================================================
 ◆ユーザーフォームのコード◆
'---------------------------------------------------------------------------------
Private Sub UserForm_Initialize()
    With TextBox1
        .MultiLine = True                       '複数行のテキストの取得と表示を許可
        .EnterKeyBehavior = True                '[Enter]キーを押すと新しい行を作成
        .ScrollBars = fmScrollBarsVertical      '※1 垂直スクロールバーを必要なときに表示
    End With
End Sub
'=================================================================================
<コメント>
※1 垂直スクロールバー:fmScrollBarsVertical、水平:fmScrollBarsHorizontal、
  垂直・水平:fmScrollBarsBoth、なし:fmScrollBarsNone

Excel VBA Macro