Excel VBA質問箱 IV

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

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


6455 / 13646 ツリー ←次へ | 前へ→

【45157】図形描画のツールボックスにあるテキストボックスについて POP 06/12/14(木) 0:55 質問[未読]
【45160】Re:図形描画のツールボックスにあるテキス... ichinose 06/12/14(木) 8:28 発言[未読]
【45167】Re:図形描画のツールボックスにあるテキス... POP 06/12/14(木) 10:16 お礼[未読]

【45157】図形描画のツールボックスにあるテキスト...
質問  POP  - 06/12/14(木) 0:55 -

引用なし
パスワード
   図形描画のツールボックスにテキストボックスがあります。
今回文字を入力する時ENTERキーで改行したいということで図形描画のテキストボックスを使用しています。これについて質問です。

1. 図形描画のテキストボックスの文字列にフォーカスを移動させたいのですが方法がわかりません。(出来れば文字列の最後にカーソルを持って行きたいです)

2. 図形描画のテキストボックスにはプロパティはないのでしょうか。


どなたかよろしくお願いします。

【45160】Re:図形描画のツールボックスにあるテキ...
発言  ichinose  - 06/12/14(木) 8:28 -

引用なし
パスワード
   ▼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オブジェクトのメンバを検索することが出来ますから、
試してみてください。

【45167】Re:図形描画のツールボックスにあるテキ...
お礼  POP  - 06/12/14(木) 10:16 -

引用なし
パスワード
   ▼ichinose さん:

どうもありがとうございました。

教えて頂いたコードを貼り付けて、いろいろ試しているところです。
(一口にテキストボックスと言ってもいろんな種類があるんですね。)

またよろしくお願いします。

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