すいません教えていただきたいことがあります。
EXCEL VBAのユーザーフォームについて、
コマンドボタンにタグを設定して、これにキーボードと同じ機能を持たせて
テキストボックス内に入力することは可能でしょうか。
例えばコマンドボタンを「あ」~「ん」まで作り、それぞれのボタンに「あ」~「ん」までのタグを設定する。
Private Sub UserForm_Initialize()
CommandButton1.Tag = "あ"
CommandButton2.Tag = "い"
・・・・「ん」までボタンを作成する。
次に、
Private Sub CommandButton1_Click()
TextBox1.Value = TextBox1.Value & CommandButton1.Tag
End Sub
Private Sub CommandButton2_Click()
TextBox1.Value = TextBox1.Value & CommandButton3.Tag
End Sub
・・・「ん」まで作成する。
この設定では、コマンドボタンのクリックで文字の追加はできますが、ボタンを押すと常に文字が一番後ろに追加されるため、
テキストボックスをクリックしても文章の途中に文字を挿入することが出来ません。
通常のキーボードの入力と同じようにテキストボックス内でクリックした箇所からコマンドボタンで入力を開始するような設定は可能でしょうか。
よろしくお願いします。
A 回答 (4件)
- 最新から表示
- 回答順に表示
No.4
- 回答日時:
あは、あっさりキブアップされちゃいましたね (笑
同じ機能のボタンはないので
別関数にせず、直接、イベントプロシージャに記述しました。
'BS ボタン
Private Sub CommandBS_Click()
Dim pos As Integer
With Me.TextBox1
pos = .SelStart
If pos > 0 Then
.Text = Left(.Text, pos - 1) & Mid(.Text, pos + 1)
.SelStart = pos - 1
End If
End With
End Sub
'←ボタン
Private Sub CommandLeft_Click()
With Me.TextBox1
If .SelStart > 0 Then
.SelStart = .SelStart - 1
End If
End With
End Sub
'→ボタン
Private Sub CommandRight_Click()
With Me.TextBox1
If .SelStart < Len(.Text) Then
.SelStart = .SelStart + 1
End If
End With
End Sub
前のよりは簡単かな。
がんばって解析してください。
今週は忙しいので、回答はこれきり。
お忙しい中誠にありがとうございました。
おかげさまでかなり使えるマクロが出来ました。
最初に教えていただいたのと併せた4つの関数を比較してやっと構造がわかりました。
自分でも一応色々と調べたのですがまったくイメージできませんでした(笑)
技術がないとどうにも限界があります。
まだまだわからないことが沢山ありますので、よろしければまたご教示ください。
No.3
- 回答日時:
>常に文字が一番後ろに追加されるため、
普通はそれが望まれるとは思うが、
TextBox1.Value = TextBox1.Value & CommandButton1.Tag
を
TextBox1.Value = CommandButton1.Tag
で良いのかな。
質問文に仕組みは書いているが、したいことは、テキストボックスに1文字入力だけか、複数文字(例あんしん)列を入力したいのか書いてないのでは。
No.2
- 回答日時:
こんなもんですかね?
BSキーやカーソル移動キーについては別途、関数を作ってください。
Private Sub AddText()
Dim pos As Integer
With Me.TextBox1
pos = .SelStart
.Text = Left(.Text, pos) & Me.ActiveControl.Tag & Mid(.Text, pos + 1)
.SelStart = pos + 1
End With
End Sub
Private Sub CommandButton1_Click()
AddText
End Sub
Private Sub CommandButton2_Click()
AddText
End Sub
ありがとうございます!!出来ました!
非常に助かりました。
.Text = Left(.Text, pos) & Me.ActiveControl.Tag & Mid(.Text, pos + 1)
この行が自分には高度過ぎていくら調べても解読できないので、
BSキーやカーソルキーの関数が皆目検討がつきません。
お暇なときで結構ですので、教えていただくことは可能でしょうか。
よろしくお願いします。
No.1
- 回答日時:
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) VBA 重複チェック後に値をワークシートに転記する方法を教えてください。 1 2023/03/19 12:43
- JavaScript javascriptのちょっとした動作不良(原因は突き止めたのですが) 1 2023/06/15 19:58
- Access(アクセス) Access IF文でテーブルに存在しない場合の処理について 2 2022/10/10 18:09
- Visual Basic(VBA) Accessフォームで全レコードを指定のExcelのセルへ転送し印刷する方法について 2 2022/09/08 18:23
- JavaScript 入力フォームの javascript で メールアドレスの正規チェックをを行い、ボタンをクリックして 2 2022/04/27 16:06
- Visual Basic(VBA) ユーザーフォーム「frm_基本❶」を立ち上げると新規で入力する行数を右下のNoとして表示しています。 1 2023/03/16 19:02
- JavaScript Javascriptが機能せず原因が分からないので教えて頂きたいです 3 2023/06/04 14:50
- Visual Basic(VBA) excel vba でユーザーフォーム入力ができない 2 2022/12/12 14:42
- Visual Basic(VBA) ユーザーフォームの書き出しで追加のご相談 ユーザーフォームの値をシートに書き出す際、コードが表示され 2 2022/08/05 10:58
- Visual Basic(VBA) VBA Userformで一部別シートに転記がしたいのですが 2 2023/05/24 13:08
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
コマンドボタンを押すたびに大...
-
押したボタンの位置取得(共通の...
-
スクロールしてもボタンを常に...
-
Excel:コマンドボタンの移動
-
エクセルVBA シート上にあるコ...
-
エクセルVBAでOptionButtonのオ...
-
ShowAllDataのエラーを回避したい
-
Excel VBA --- コマンドボタ...
-
エクセルVBA
-
エクセル:マクロのコマンドボ...
-
コマンドボタンがあるかどうか...
-
Accessのコマンドボタンの立体...
-
Excelシート上でボタン1つで交...
-
エクセルでコマンドボタンを押...
-
PPTのコマンドボタンがクリック...
-
EXCELのシート上に埋め込...
-
マクロボタンを別のファイルで...
-
ボタン同時押しの時間設定について
-
excelコマンドボタンと内容を別...
-
エクセルのマクロでスライドシ...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
Excel:コマンドボタンの移動
-
コマンドボタンを押すたびに大...
-
スクロールしてもボタンを常に...
-
押したボタンの位置取得(共通の...
-
エクセルVBAでOptionButtonのオ...
-
ShowAllDataのエラーを回避したい
-
エクセルVBA シート上にあるコ...
-
コマンドボタンがあるかどうか...
-
PPTのコマンドボタンがクリック...
-
Excel VBA --- コマンドボタ...
-
エクセルVBA
-
Accessのコマンドボタンの立体...
-
エクセルのコマンドボタンの位...
-
実行中の作業を中止させるコマンド
-
EXCELでNo.を変えて印刷したい
-
コマンドボタンで「終了ボタン...
-
マクロ登録ボタンに色をつける
-
Accessユーザーフォームでコマ...
-
[ExcelVBA] コマンドボタンを押...
-
コマンドボタンがきかなくなる
おすすめ情報