|
Sample Macro コントロール・テキストボックス |
 |
|
|
|
2-2-1) テキストボックスでDBシートへ直接入力 |
 |
 |
'=========================================================================================
' ◆標準モジュールのコード◆
'-----------------------------------------------------------------------------------------
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シート】
氏名のテキストボックス…TextBox1、郵便番号…TextBox2、住所…TextBox3
サンプルブックのダウンロードは ここをクリック (YNxv232_textbox.xls 40KB) ※ 一旦、ブックをハードディスクに保存し、開き直してから実行してください。
|
|
2-2-2) テキストボックスへ初期表示する |
 |
 |
'=========================================================================================
' ◆ユーザーフォームのコード◆
'-----------------------------------------------------------------------------------------
Private Sub UserForm_Initialize() 'ユーザーフォームが表示されたとき動作するイベントマクロ
TextBox1.Text = "テキストボックスに初期表示しました"
End Sub
'=========================================================================================
サンプルブックは次の 2-2-3のマクロからダウンロードできます。
|
2-2-3) テキストボックスのサイズを自動調整する |
 |
 |
'=========================================================================================
' ◆ユーザーフォームのコード◆
'-----------------------------------------------------------------------------------------
Private Sub UserForm_Initialize() 'ユーザーフォームが表示されたとき動作するイベントマクロ
TextBox1.AutoSize = True 'サイズを自動的に調整する
End Sub
'=========================================================================================
サンプルブックのダウンロードは ここをクリック (YNxv2322_TextBox.xls 34KB) ※ 一旦、ブックをハードディスクに保存し、開き直してから実行してください。
|
|
2-2-4) テキストボックスの値を通貨表示する |
 |
 |
'=========================================================================================
' ◆ユーザーフォームのコード◆
'-----------------------------------------------------------------------------------------
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) テキストボックスの値をプレースホルダ文字で表示する |
 |
 |
'=========================================================================================
' ◆ユーザーフォームのコード◆
'-----------------------------------------------------------------------------------------
Private Sub UserForm_Initialize()
TextBox1.PasswordChar = "*" '※1
End Sub
'=========================================================================================
<コメント>
※1 "*"には入力された文字の代わりに表示する文字を記入
(パスワードやセキュリティコードなどの機密にかかわる情報を保護するときに使う)
|
2-2-6) テキストボックスの入力値が数字か調べる |
 |
 |
'=========================================================================================
' ◆ユーザーフォームのコード◆
'-----------------------------------------------------------------------------------------
Private Sub TextBox1_KeyPress(ByVal KeyAscii As MSForms.ReturnInteger)
If KeyAscii >= Asc("0") And KeyAscii <= Asc("9") Then '押されたキーの文字コードが
MsgBox "数字が入力されました。"
End If
End Sub
'=========================================================================================
|