Excel VBA質問箱 IV

当質問箱は、有志のボランティア精神のおかげで成り立っています。
問題が解決したら、必ずお礼をしましょうね。
本サイトの基本方針をまとめました。こちら をご一読ください。

投稿種別の選択が必要です。ご注意ください。
迷惑投稿防止のため、URLの入力を制限しています。ご了承ください。


3443 / 13644 ツリー ←次へ | 前へ→

【62181】フォーム内のテキストボックス しん 09/6/28(日) 15:00 質問[未読]
【62182】Re:フォーム内のテキストボックス neptune 09/6/28(日) 16:06 回答[未読]
【62186】Re:フォーム内のテキストボックス しん 09/6/28(日) 18:25 お礼[未読]
【62187】Re:フォーム内のテキストボックス しん 09/6/28(日) 19:15 お礼[未読]
【62190】Re:フォーム内のテキストボックス neptune 09/6/28(日) 21:38 回答[未読]
【62192】Re:フォーム内のテキストボックス しん 09/6/28(日) 22:54 お礼[未読]
【62194】Re:フォーム内のテキストボックス neptune 09/6/28(日) 23:09 回答[未読]
【62195】Re:フォーム内のテキストボックス しん 09/6/28(日) 23:37 お礼[未読]
【62196】Re:フォーム内のテキストボックス neptune 09/6/29(月) 10:21 回答[未読]
【62198】Re:フォーム内のテキストボックス しん 09/6/29(月) 23:52 お礼[未読]
【62189】Re:フォーム内のテキストボックス しん 09/6/28(日) 21:23 お礼[未読]
【62191】Re:フォーム内のテキストボックス neptune 09/6/28(日) 21:41 回答[未読]

【62181】フォーム内のテキストボックス
質問  しん  - 09/6/28(日) 15:00 -

引用なし
パスワード
   いつもお世話になっております。

フォーム内にテキストボックス1を配置。
コマンドボタン1を配置。

※1、テキストボックス1内でEnterを押したら改行できるようにできますでしょうか?

※2 テキストボックス1内でカーソルを自由にマウス又はキーボードで移動できますでしょうか?

※3 カーソルを指定の位置までもっていき、コマンドボタンを押したらそのカーソル位置にデータを入力できるようにしたいのですが可能でしょうか?

質問事項が多くすいません。

【62182】Re:フォーム内のテキストボックス
回答  neptune  - 09/6/28(日) 16:06 -

引用なし
パスワード
   ▼しん さん:
>※1、テキストボックス1内でEnterを押したら改行できるようにできますでしょうか?
できます。multilineプロパティ

>※2 テキストボックス1内でカーソルを自由にマウス又はキーボードで移動できますでしょうか?
できます。

>※3 カーソルを指定の位置までもっていき、コマンドボタンを押したらそのカーソル位置にデータを入力できるようにしたいのですが可能でしょうか?
可能です。
selstart,seltext

【62186】Re:フォーム内のテキストボックス
お礼  しん  - 09/6/28(日) 18:25 -

引用なし
パスワード
   ▼neptune さん:
ご回答ありがとうございます。

multilineプロパティをfalseに設定しましたが、フォーム内のテキストボックス
の一行目に数値を入力してEnterを押すと、別のテキストボックスにカーソルが飛んでしまいます。

【62187】Re:フォーム内のテキストボックス
お礼  しん  - 09/6/28(日) 19:15 -

引用なし
パスワード
   ▼neptune さん:
すいません。
※1 ※2
は解決いたしました。ありがとうございました。
あとは※3をやってみます。

【62189】Re:フォーム内のテキストボックス
お礼  しん  - 09/6/28(日) 21:23 -

引用なし
パスワード
   ▼neptune さん:
selstart,seltextの意味はわかったのですが
プログラムの組み方がわかりません。
アドバイスをいただけないでしょうか?

【62190】Re:フォーム内のテキストボックス
回答  neptune  - 09/6/28(日) 21:38 -

引用なし
パスワード
   ▼しん さん:
>※1 ※2
>は解決いたしました。ありがとうございました。
Helpにキチンと書いていたでしょ?Helpを見ないと進歩しませんから
必ず見て下さい。

>あとは※3をやってみます。
SelStart とSelText のサンプル

新規userformにtextbox、commandbuttonを各1個追加
コントロール名はデフォルト

Private Sub CommandButton1_Click()
  With Me.TextBox1
    .SelStart = Len(.Text)
    .SelText = "追加文字列"
  End With
End Sub

Private Sub UserForm_Initialize()
  Me.TextBox1.Text = "フォーム内にテキストボックス1を配置。" & vbCrLf _
            & "コマンドボタン1を配置。"
  Me.TextBox1.SelStart = 1
  Me.CommandButton1.Caption = "[追加文字列]という文字列を " & _
            vbCrLf & "testboxの最終位置に追加する"
  
End Sub

【62191】Re:フォーム内のテキストボックス
回答  neptune  - 09/6/28(日) 21:41 -

引用なし
パスワード
   ▼しん さん:
>▼neptune さん:
>selstart,seltextの意味はわかったのですが
>プログラムの組み方がわかりません。
そういう場合はHelpの使用例を作成してみるべし。
そして1行1行実行してみるべし。

>プログラムの組み方がわかりません。
わからないから先ず↑の事をすべきです。その為に使用例があります。

【62192】Re:フォーム内のテキストボックス
お礼  しん  - 09/6/28(日) 22:54 -

引用なし
パスワード
   ▼neptune さん:
すいません、このご回答にきずかなかったです。
申し訳ございません。
下記のプログラムをつかわせていただきました。
すでにTextBox1にはデータが入っているのですが、カーソルの位置で
データを挿入させたいのですがアドバイスいただけないでしょうか?


Private Sub CommandButton15_Click()

  With Me.TextBox1
    .SelStart = Len(.Text)
    .SelText = "AB"
  End With
End Sub

【62194】Re:フォーム内のテキストボックス
回答  neptune  - 09/6/28(日) 23:09 -

引用なし
パスワード
   ▼しん さん:
>すでにTextBox1にはデータが入っているのですが、カーソルの位置で
>データを挿入させたいのですがアドバイスいただけないでしょうか?
サンプルまで書いて、この「アドバイス」というのは既にアドバイスの
域を超えて、そのものズバリ書いて下さいといっているようなものです。

アドバイスも何も
>Private Sub CommandButton15_Click()
>
>  With Me.TextBox1
>    .SelStart = Len(.Text)
>    .SelText = "AB"
>  End With
>End Sub
上記が何をしているか理解してますか?
私は理解を助けるためのサンプルを書いています。
自助努力は必要ですよ。

Helpをみて理解して、(読んで理解したらこんな「質問」は出ません!)
.SelStart = ここを好きな数字に変えてみるとか
コメントアウトしてみるとか。
の工夫は自分でも出来るんじゃないですか?
いきなりアドバイス下さいは頂けません。

Helpを読んでわからないところを質問して下さい。
若しくは他の回答者をお待ち下さい。

【62195】Re:フォーム内のテキストボックス
お礼  しん  - 09/6/28(日) 23:37 -

引用なし
パスワード
   ▼neptune さん:
すいません。
With Me.TextBox1
    .SelStart = Len(.Text)
    .SelText = "AB"
  End With
End Sub

.SelStart = Len(.Text)
この部分が開始位置だとおもいゼロ0に設定すると
カーソル位置で挿入できるとおもったのですが無理でした。
もう少し調べてみます。

【62196】Re:フォーム内のテキストボックス
回答  neptune  - 09/6/29(月) 10:21 -

引用なし
パスワード
   ▼しん さん:
昨晩の私の書き込みの中に正解は書いていました。

Private Sub CommandButton1_Click()
  With Me.TextBox1
'    .SelStart = Len(.Text)  'こうする事をコメントアウトにすると言います。
    .SelText = "追加文字列"
  End With
End Sub

SelStart は現在選択されている範囲の開始位置を取得、指定します。
selEnd は現在選択されている範囲の最後を取得、指定します。
SelText は現在選択範囲のテキストを設定します。

ここからは自分で考える事でカレットの位置を指定する必要が無ければ
SelStart を指定しなければ良いだけです。

【62198】Re:フォーム内のテキストボックス
お礼  しん  - 09/6/29(月) 23:52 -

引用なし
パスワード
   ▼neptune さん:
ご回答本当にありがとうございました。
とても助かりました。
本当にありがとうございました。

3443 / 13644 ツリー ←次へ | 前へ→
ページ:  ┃  記事番号:
2610219
(SS)C-BOARD v3.8 is Free