|
▼POP さん:
おはようございます。
>図形描画のツールボックスにテキストボックスがあります。
>今回文字を入力する時ENTERキーで改行したいということで図形描画のテキストボックスを使用しています。これについて質問です。
>
>1. 図形描画のテキストボックスの文字列にフォーカスを移動させたいのですが方法がわかりません。(出来れば文字列の最後にカーソルを持って行きたいです)
新規ブックの標準モジュールに以下のコードをコピーしてください
'===================================================================
Declare Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As Long)
'===================================================================
Sub main()
Dim txt As TextBox
With ActiveSheet.TextBoxes
Set txt = .Add([c10].Left, [c10].Top, 150, 60)
txt.Text = "明日、" & vbLf & "天気になあれ!!"
DoEvents
MsgBox "このテキストボックスを編集します"
Call set_addtextmode(txt)
MsgBox "ok"
End With
End Sub
'===================================================================
Sub set_addtextmode(ByVal txt As TextBox)
Dim sv As String
Dim cmp As Variant
Dim nm As String
On Error Resume Next
With txt
.Select
sv = .Text
SendKeys " {BS}" & sv
cmp = TypeName(Selection)
nm = Selection.Name
Do While Err.Number = 0 And cmp = TypeName(txt) And nm = .Name
DoEvents
Sleep 100
cmp = TypeName(Selection)
nm = Selection.Name
Loop
End With
On Error GoTo 0
End Sub
これでmainを実行して動作を確認してみてください。
テキストボックスの編集が終わったら、適当なセルを選択してください
「OK」というメッセージが表示されてプログラムは終了します。
私の実務では、このSendkeysは使いませんが・・・。
(使わないと出来ない場合は、仕様の変更を検討します)
>
>2. 図形描画のテキストボックスにはプロパティはないのでしょうか。
上記のコードのテキストボックスに文字を入力する手続きは
Textというプロパティです。よって、プロパティはあります。
VBEにて、F2キーを推して、オブジェクトブラウザーを表示させます。
表示されたブラウザーにマウスを合わせてその状態で
「右クリック」----「非表示メンバの表示」をクリックすると
Textboxオブジェクトのメンバを検索することが出来ますから、
試してみてください。
|
|