![](http://oshiete.xgoo.jp/images/v2/pc/qa/question_title.png?e8efa67)
A 回答 (3件)
- 最新から表示
- 回答順に表示
No.3
- 回答日時:
こんにちは。
最初に、
>FIND関数でA1の”t”を検索するとして、
>A1に”santa”と入力し、エンターを押すと”4”と答えが出ますが、
>エンターを押す前(tを入力した時点)で”4”と出るようなことできますか。
Excelのワークシート上では出来ません。セルの入力監視モードはないからです。テキストボックスのKeyPress イベントのような感じでよければ、以下のようにして出来ます。
それから、
>目的的に必須のようなので、
#2さんにもありますが、私は、なるべく実務には関係のないようなご質問は避けています。今回のように、過去にもお聞きになったことがあるのは、一体、どんな目的だろうか、と思うのです。
コントロールツールのTextBoxを設けてください。以下は、TextBox1 となっています。
注意:現在のマクロでは、"t" を多用するような入力は、メッセージのポップアップの作業過程の間に、入力されてしまうので、最初のものしか出てきません。
例えば、tatto の場合は、"1" の次、"3" は出ても、"4" は、確保できません。
'シートモジュール
Option Explicit
Private Declare Sub Sleep Lib "KERNEL32.dll" (ByVal dwMilliseconds As Long)
Dim strLength As Long
Private Sub TextBox1_KeyPress(ByVal KeyAscii As MSForms.ReturnInteger)
Dim myChrCode As Long
'検索文字
Const OBSERVE_CHAR As String = "t"
myChrCode = Asc(OBSERVE_CHAR)
If KeyAscii = myChrCode Then
strLength = TextBox1.TextLength + 1
DoEvents
Application.OnTime Now(), Me.Name & ".MsgPopup"
End If
End Sub
Private Sub MsgPopup()
Sleep 500 'メッセージのズレの感覚として、0.5秒ぐらいがちょうど良い
CreateObject("WScript.Shell").PopUp CStr(strLength), 1
End Sub
みなさん丁寧にありがとうございました。
でもすべて試してみて、何も起きません。
やはり基礎が足りてないみたいです。
もう少し勉強してから、参考にしたいと思います。
No.2
- 回答日時:
シートにテキストボックスを貼り付ける。
そのコントロールの編集モードで、ダブルクリックして
Changeイベントでなく
Private Sub TextBox1_KeyPress(ByVal KeyAscii As MSForms.ReturnInteger)
If KeyAscii = Asc("t") Then
MsgBox "t がキーイン"
End If
End Sub
のKeyPressイベントを出して、上記のようにして、編集モードを脱し
、テキストボックスに文字を打ち込んでください。tを打ち込んだとき、"t がキーイン"と出ます。
これを応用して考えている何かで使えるか考えてださい。
応用はビジネスでは余りないと思うが。
FIND関数を考えた時の、もと質問(何がしたいのか)を、我流の解法に誘導せずに、別質問で、正直ぶっちゃけたらどうですか。
世の中広い、良い知恵が教えてもらえるかも知れない。
これまで我流で関数を組んでしまっているので、それを崩さずにと思うと部分的な質問になってしまいました。
答える方もわかりづらいと思うので、次回はぶっちゃければと思います。
No.1
- 回答日時:
そのアドバイスというかヒントに従って何か試されたのでしょうか?
例えばコンボボックスChangeで良いならTextBoxChangeでもご希望のものに近いことは出来ると思いますが。どの辺が不満だったのでしょうか。
下記サンプルはシートにTextBoxを配置して試してみてください。
Private Sub TextBox1_Change()
On Error Resume Next
MsgBox (WorksheetFunction.Find("a", Me.TextBox1.Text))
End Sub
この回答への補足
以前の時はマクロを使用しないで。と書いたのでchangeならできるかも、とアドバイスをもらいましたがVBAが全くわからなかったので、それ以上つっこめませんでした。
諦めようと思いましたが、目的的に必須のようなので、VBAに手を出し始めたところです。
現時点はB2に=find("t",A1,1)と関数がありtextboxをA1のところに置きセルに合わせて移動するにチェックを入れてみました。それでVBAのtextbox1のchangeにコード?をコピーしてみました。
しかし、テキストの編集でsantaと入力してもなにも起きません。初心者なので根本的に検討違いのことをしていて呆れるかもしれませんが、導いてもらえれば幸いです。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- マウス・キーボード 関数の予測をキーボードで決定する方法 1 2022/07/27 16:26
- Excel(エクセル) Windows 10でエクセルの入力をしていますが、エンターを押すことなく矢印で途中までは右へ移動し 3 2022/07/14 14:04
- Excel(エクセル) 重複したデータ(空白は除く)のVBA表記について 4 2022/08/15 07:28
- Excel(エクセル) セルの上書き禁止について 5 2022/04/02 10:09
- Word(ワード) Windows11キーボードの調子が悪いので治し方を教えてください。 【症状】 1つ目 キーボードの 5 2022/07/03 14:51
- レトロゲーム 回答が来なくて困っています!!!誰か助けて下さい!!! https://ux.getuploader 1 2022/11/20 13:54
- Excel(エクセル) Excelで縦1列に並んだ大量の数字から、一定間隔で平均値を出したい。 2 2023/02/20 09:17
- Visual Basic(VBA) 顧客ごとに違う点検案内を作成するマクロ 4 2022/09/16 05:34
- 郵便・宅配 ゆうちょダイレクトから相手ゆうちょへの振込は3押した後あいての口座番号押した後エンター押してでたのを 1 2023/06/23 16:12
- ビデオカメラ webカメラ バーコードスキャナーにするソフトはありますか? 1 2022/04/23 12:22
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
Visual Basic 6.0 コンボボック...
-
(VBA)チェックボックスのclick...
-
一定時間操作されないと自動で...
-
TextboxまたはMaskEditboxでの...
-
タブキー押下時のイベントをひ...
-
keypress
-
特定のキーを押すまでループさ...
-
VB.NETでフォームがない...
-
フォーカスについてお教えください
-
Access データ表示 完了時のイ...
-
Objective-Cでキーボードイベン...
-
EXCEL VBA----ユーザーフォーム...
-
エクセルでエンターを押す前に...
-
【VB】タブ切り替え時のイベント
-
コマンドボタン(入力)をクリッ...
-
DephiでのTextボックスでの数値...
-
ASP.Net BeforeUpDate のように
-
HTMLです。画像をHTMLで表した...
-
「ご処理進めて頂きますようお...
-
アクセスVBAのMe!と[ ]
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
【VB】タブ切り替え時のイベント
-
特定のキーを押すまでループさ...
-
タブキー押下時のイベントをひ...
-
Visual Basic 6.0 コンボボック...
-
一定時間操作されないと自動で...
-
WPFでの時刻入力コントロールに...
-
(VBA)チェックボックスのclick...
-
コンボボックスにキー入力をさ...
-
VB.NETのDropDownListをReadOnl...
-
VB.NETでフォームがない...
-
NULLで検索を行ったときは全件...
-
Excel VBA マクロ実行中のみテンキ...
-
KEYPREVIEW=TRUEについて。意味...
-
エクセルVBAのテキストボック、...
-
テキストボックスの入力文字を1...
-
フォーカスについてお教えください
-
【Mouse Down】キーリピートを...
-
キーイベントを擬似的に発生さ...
-
VB6で電卓を作っているのですが...
-
複数のテキストボックスのカン...
おすすめ情報