Excel VBA質問箱 IV

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

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


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

【65782】カーソル前の文字列を取得・操作 苦闘 10/6/27(日) 20:03 質問[未読]
【65784】Re:カーソル前の文字列を取得・操作 中二 10/6/27(日) 21:01 発言[未読]
【65812】Re:カーソル前の文字列を取得・操作 ichinose 10/6/29(火) 6:22 発言[未読]
【65871】Re:カーソル前の文字列を取得・操作 苦闘 10/7/3(土) 16:53 お礼[未読]

【65782】カーソル前の文字列を取得・操作
質問  苦闘  - 10/6/27(日) 20:03 -

引用なし
パスワード
   初心者の質問で申し訳ありません。
図形のテキストボックス内の文字列において、
現在キーボードのカーソルの位置前の一文字、または数文字を取得して
操作したいのですが、取得がうまくいきません。

調べた感じでは、カーソル位置を基準に直接文字列を取得するのは不可能のようでしたので
クリップボードを介することを考えて、
vbkeyを使って選択(画面表示の反転表示状態)→切り取り→クリップボードから取得
を試みたのですが不可解な結果になりました。
vbkey→切り取りまでのマクロや、クリップボードから取得するマクロ単体は
うまくいくのですが、くっつけたり、callで呼び出すと
切り取りをしない、またはvbkey操作と違ってテキストボックス全体を切り取る
結果になります。

クリップボード操作は.GetFromClipboard, .gettextを使っていますが
何か注意点があるのでしょうか。

根本的には、カーソル前の文字や現在反転選択している文字を取得する
スマートな方法があればご教示頂きたいと思います。

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

【65784】Re:カーソル前の文字列を取得・操作
発言  中二  - 10/6/27(日) 21:01 -

引用なし
パスワード
   大量のテキストボックスを動的に作って一文字ずつ入れるとか

【65812】Re:カーソル前の文字列を取得・操作
発言  ichinose  - 10/6/29(火) 6:22 -

引用なし
パスワード
   ▼苦闘 さん:
おはようございます。
>根本的には、カーソル前の文字や現在反転選択している文字を取得する
>スマートな方法があればご教示頂きたいと思います。
ActiveXコントロールのテキストボックスなら、
ドラッグした文字列は、SelTextというプロパティで取得できます。
見た目も図形のそれと同じように作成できます。


Sub test()
  On Error Resume Next
  ActiveSheet.OLEObjects.Delete
  With ActiveSheet.OLEObjects.Add(ClassType:="Forms.TextBox.1", Link:=False, _
    DisplayAsIcon:=False, Left:=216, Top:=54, Width:=216, Height:=27.75)
    .Name = "TextBox1"
    With .Object
     .SpecialEffect = 0
     .BorderStyle = 1
    End With
  End With
  On Error GoTo 0
End Sub

これを使って工夫できませんか?

【65871】Re:カーソル前の文字列を取得・操作
お礼  苦闘  - 10/7/3(土) 16:53 -

引用なし
パスワード
   遅くなりましたが、お二方にお礼申し上げます。
最初意図した動作までは出来ませんでしたが、参考になりました。

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