
すいません、EXCEL VBAで教えていただきたいことがあります。
EXCEL VBAでユーザーフォームを作る。
フォーム内にはTextBox1とCommandButton1を設置。
TextBox1に書き込んだ文字をドラッグ
→CommandButton1を押す
→ドラッグした文字を消去
という機能をコマンドボタンに持たせたいのですが
可能でしょうか。
下記のコードを作ってみたのですが、やはりこれだと一文字づつしか消せません。
よろしくお願いします。
Private Sub CommandButton1_Click()
Dim i As Integer
With Me.TextBox1
i = .SelStart
If i > 0 Then
.Text = Left(.Text, i - 1) & Mid(.Text, i + 1)
.SelStart = i - 1
End If
End With
TextBox1.SetFocus
End Sub
No.3
- 回答日時:
追記の追記。
SelStartプロパティやSelLengthプロパティを操作して、テキストボックス内の文字を操作する場合は、Textプロパティを操作せず、SelTextプロパティを使います。
何故なら、Textプロパティを操作すると、カーソル位置(SelStartプロパティやSelLengthプロパティ)の値が初期化されてしまう(カーソルが有無を言わさず先頭に飛んでしまう)からです。
Textプロパティを操作せず、SelTextプロパティを操作すれば、カーソル位置は変化しません。
なお、SelTextプロパティに空じゃない文字列(""じゃない文字列)を与えれば、範囲選択した部分を置換したり、カーソル位置に文字列を挿入出来ます。
できました!ありがとうございます。
SelTextを使うというやり方を知らなかったので、
非常に勉強になりました。
またよろしくお願いいたします。
No.2
- 回答日時:
追記。
If .SelStart = 0 Then 'カーソルが先頭にあるなら
Exit Sub '何もしない
この2行の間に、1行追加して、以下のように修正して下さい。
If .SelStart = 0 Then 'カーソルが先頭にあるなら
.SetFocus 'フォーカスだけ戻して ←この1行を追加
Exit Sub '何もしない
カーソルが先頭に居て範囲指定が無かった場合、フォーカスが戻ってませんでした。
No.1
- 回答日時:
BSキーの動作は、以下のようになります。
・範囲指定が行われていない場合、カーソルが先頭にある場合は何もしない。
・範囲指定が行われていない場合、カーソルが先頭にない場合は、カーソルの1文字手前が消える。
・範囲指定が行われている場合、範囲指定部分が消える。
これをVBで書くと以下のようになります。
Private Sub CommandButton1_Click()
With Me.TextBox1
If .SelLength = 0 Then '範囲指定がされてない場合
If .SelStart = 0 Then 'カーソルが先頭にあるなら
Exit Sub '何もしない
End If
.SelStart = .SelStart - 1 'カーソルを1文字分、左へ動かし
.SelLength = 1 '1文字分、範囲指定する
End If
.SelText = "" '範囲指定されている部分を消去する
.SetFocus 'フォーカスを戻す
End With
End Sub
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) VBA Userformで一部別シートに転記がしたいのですが 2 2023/05/24 13:08
- Excel(エクセル) エクセルのVBAについて とあるサイトのコードを参考に、CSVの文字化けを直すVBAを作成しているの 7 2022/11/04 14:15
- Visual Basic(VBA) VBA 重複チェック後に値をワークシートに転記する方法を教えてください。 1 2023/03/19 12:43
- Excel(エクセル) エクセルのマクロについて教えてください。 1 2023/02/20 16:59
- Visual Basic(VBA) ユーザーフォーム「frm_基本❶」を立ち上げると新規で入力する行数を右下のNoとして表示しています。 1 2023/03/16 19:02
- Visual Basic(VBA) エクセルのマクロについて教えてください。 3 2023/02/22 08:53
- Visual Basic(VBA) VBAで質問ですが、皆さんはどの様に導き出しているのでしょうか? 6 2022/05/03 21:53
- Visual Basic(VBA) いつもお世話になっております、VBAで教えて頂きたいのですが 2 2022/05/05 22:20
- Excel(エクセル) マクロでテキストファイルを読み込んだ際の最終セルにデータと改行が含まれる問題の改善方法 2 2022/03/25 16:50
- Visual Basic(VBA) chromedriverのver-upで動作不安定となった 3 2022/07/07 11:32
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
ワードでファイルを開いたとき
-
Excelで、カーソルの移動が異常...
-
スクロールでビープ音が鳴るよ...
-
スターウォーズバトルフロントⅡ...
-
スマホ文字消しにくい
-
Wordのページが飛ぶ
-
キーボードを押しながらタッチ...
-
ノートパソコンの指でさわる部...
-
Accessで Tabキーを押したとき...
-
パソコンのカーソルが突然別の...
-
文字を打つと飛ぶ!
-
1台のPCに2つのBluetoothマウス...
-
エクセル2016上でマウスをレー...
-
突然マウスの操作が逆になって...
-
マクロを実行中に、msgbox を表...
-
在宅勤務時に、会社で支給され...
-
マウスポインタが「車両通行止...
-
ロジクールの光マウス、赤色に...
-
マウスをコンコンして使う人
-
ユーザーフォームをホイールで...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
ノートパソコンの指でさわる部...
-
十字カーソルの輪郭が見えない
-
photoshopで謎のマーク
-
スターウォーズバトルフロントⅡ...
-
ノートパソコンがマウスもタッ...
-
エクセルのセルをドラッグしな...
-
Wordのカーソルの位置について
-
キーボードを押しながらタッチ...
-
Wordのページが飛ぶ
-
セルを示す四角のカーソル色の...
-
テキストボックス内でのカーソ...
-
logicoolの「DPI感度レベル」っ...
-
Excelで、カーソルの移動が異常...
-
「.cur」のアイコン表示について
-
文字入力の途中で、突然カーソ...
-
マウスのカーソルは飛ぶ事があ...
-
文字を打つと飛ぶ!
-
ワードでカーソルがページの外...
-
ノートパソコンの画面の矢印が...
-
スクロールでビープ音が鳴るよ...
おすすめ情報