いつもお世話になっております。

テキストボックスと50音のひらがなのボタンを用意して、
ボタンが押されたらその文字がテキストボックスに入力する
キーボードのような画面を作成しております。

以下のようなコードを書いています。
W_DATA:テキストボックス
KEY(Index):かなボタン

  W_DATA.Text = W_DATA.Text & KEY(Index).Text
  Me.W_DATA.Focus()
  System.Windows.Forms.SendKeys.SendWait("{END}")

この際、文字を入力し続けると、たまに全選択状態になってしまいます。
※ならない場合の方がほとんどですが。

絶対に全選択にならないように、何か回避策等ございましたら
ご教示お願い致します。

A 回答 (1件)

VB 2005で少し試してみました。


原因は、W_DATA.Text = W_DATA.Text & KEY(Index).Textですべてのテキストを一旦置き換えているためのようです。(Textプロパティに値を与えると内部で全選択される仕様かな?)
テキストボックスのAppendTextメソッドを使って追加すれば大丈夫みたいです。

W_DATA.AppendText(KEY(Index).Text)
W_DATA.Focus()

またテキストボックスへの文字列の追加も、こちらの方がちらつきもなく動作が速いことが私の過去のアプリで実証済みです。

他にも方法はあるかと思いますが、ひとまずご希望の動作が出来るので回答をあげておきます。
    • good
    • 2
この回答へのお礼

ありがとうございます!
試した所、無事に動きました!!
気になっていたちらつきも解消されました!
とても感激です。

お礼日時:2009/05/20 09:59

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人はこんなQ&Aも見ています

このQ&Aを見た人が検索しているワード

このQ&Aと関連する良く見られている質問

Q複数のテキストボックスのフォントの色を同時に変更したい

word2003で、複数のテキストボックスのフォントの色を同時に変更したいのですができません。

2つのテキストボックスを複数同時選択して、
図形描画ツールバー上のアイコンで
・塗りつぶし
・線の色

は同時に変更できたのですが、

なぜかフォントの色だけはアイコンを教えても
その色に同時に変更することができません。

1つ1つのテキストボックスだけならフォントの色を変更することは
できるのですが、
なぜ複数のテキストボックスのフォントの色を同時に変更できないのでしょうか?

設定等、ご存じであれば教えてください!

Aベストアンサー

[テキストボックス]は、一つだけを選択した場合にはフォントの設定が
できますが、複数のテキストボックスを[ Shift ]キーなどで選択した
場合はフォント設定できない仕様です。
メニューから[書式]を開いてみれば、[フォント]がアクティブではない
(使用不可)の状態になっているのを確認できると思います。
(もちろんツールバーの[フォントの色]ボタンも使用できない)

複数のテキストボックス内の文字列の色を変更するなら、[ Ctrl ]キー
でテキストボックス内の文字列をすべてドラッグするなどして選択して
から変更するか、マクロで変更するしかないと思います。

複数のテキストボックス内の文字列が、[テキストボックス]ツールバー
から[テキストボックスのリンクの設定]ボタンでリンクしている場合、
全選択(Ctrl+Aキー)するだけで変更することは可能ですから、この方法
で対応することもできますね。

Qテキストボックスに書いた複数行のテキストデ-タをコマンドボタンクリック

テキストボックスに作成したデ-タをコピ-ボタンでコピ-して、OutlookExpress
などのメ-ラ-に貼り付けるようなコ-ドを書いていますが、コピ-が上手くいかない
ことが多いので、下のような方法に変えようと思います。

 (1)テキストデ-タを作成(記入)する

 (2)コマンドボタンをクリックする

 (3)自動でメモ帳が起動する

 (4)メモ帳の内容に先ほどのテキストデ-タが貼り付く
    (テキストボックスの内容をメモ帳で開く)

このようにする方法はあるのでしょうか?
shellでメモ帳を開くというのは分かるのですが、対象のファイルを
どのように指定すれば良いのかが分かりません。

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

Aベストアンサー

こんにちは。maruru01です。
違う方法を。

いったん一時ファイルとして保存し、Shellでメモ帳で呼び出します。

memoPath = (メモ帳の起動ファイルのフルパス)
FilePath = (一時ファイルのフルパス)
fileNum = FreeFile
Open FilePath For Output As #fileNum
  Print #fileNum, Text1.Text
Close #fileNum

Shell memoPath & " " & FilePath

では。

Qexcel2007のテキストボックスでコピペしたらフォントサイズが継承されない

excel2007のテキストボックスで、そこに入力した文字をコピペした際、コピー元のフォントとは異なるフォントサイズで張り付けられてしまうのですが、コピー元と同じフォントで貼り付けするように設定できないのでしょうか?

操作例
1)テキストボックスを挿入
2)そこに「あああ」と入力(最初はサイズ「11」になります)
3)テキストボックス全体のフォントをサイズ「9」に設定(文字が小さくなる)
4)「あああ」をコピーして、貼り付け
5)サイズ9の「あああ」が張り付いてほしいのに、サイズ11の「あああ」が張り付く

要は、全部フォント9で作業したいんですが、コピーの度にサイズ11な文字列が挿入されるので、いちいち変更しなければならず、これを解消したいと思っています。

やった事
・テキストボックスの既定値をサイズ9にした
・「EXCELのオプション」で「新しいブックの作成時」のサイズを9にした

ご存じの方いらっしゃいましたらお願いします。

Aベストアンサー

回答No2です。確かにコピーして貼り付けるとフォントが11になっていますね。そのときは「貼り付けのオプション」が表示されますので、そこから「元の書式を保持」を選択すればフォントは9になりますね。しかし、面倒な操作ですね。
いっそのこと文字をコピーして貼り付けるのではなく、その文字の入ったテキストボックスを選択してCtrl+Dでコピーを作成して使用するのが便利かもしれませんね。お役に立てなくてすみません。

Qリッチテキストボックスとテキストボックスの違い

VB6のリッチテキストボックスとテキストボックス
の違いは何なんでしょうか?

Aベストアンサー

RichTextだと扱えるファイルサイズが大きくなり
プロパティの指定が可能になります。

http://msdn.microsoft.com/library/default.asp?url=/library/en-us/cpref/html/frlrfsystemwindowsformsrichtextboxclasstopic.asp

Qテキストボックスのフォントサイズの復元

エクセルのシート上にある、図形のテキストボックスのフォントサイズに「12」をセットしておいて、シート上に配置してあるコントロールボタンをクリックする事で、変更されたサイズから「12」へもどす仕組みを作りたいのですが・・・

テキストボックスのフォントサイズ 「12」から、テキストボックスをアクティブにし、ツールバーでフォントサイズを変更する。
↓ ** その後
シート上に配置されたボタンを押すと元の「12」に戻る

※ エクセル97、2000で使用(作成は97)

こんなことできますか? できれば、どなたか教えて下さい。宜しくお願いします。

Aベストアンサー

「テキストボックスの大きさを、基準の大きさの戻す(エクセルVBA)」と同じ前提です。

シート1のコードウインドウに貼り付け(例)
Private Sub CommandButton12_Click() 'フォントを元に戻すボタン
Font12set tbxClickName
End Sub

標準モジュールに貼り付け
Public Sub Font12set(txtName As String) 'フォントサイズを12に戻す
If Len(txtName) <> 0 Then '選択したテキストボックス名
With ActiveSheet.Shapes(txtName) '選択したテキストボックス
.TopLeftCell.Select
.Select
With Selection
.Font.Size = 12
.ShapeRange.Fill.ForeColor.SchemeColor = 65
End With
.TopLeftCell.Select
End With
End If
tbxClickName = ""
End Sub

「テキストボックスの大きさを、基準の大きさの戻す(エクセルVBA)」と同じ前提です。

シート1のコードウインドウに貼り付け(例)
Private Sub CommandButton12_Click() 'フォントを元に戻すボタン
Font12set tbxClickName
End Sub

標準モジュールに貼り付け
Public Sub Font12set(txtName As String) 'フォントサイズを12に戻す
If Len(txtName) <> 0 Then '選択したテキストボックス名
With ActiveSheet.Shapes(txtName) '選択したテキストボックス
....続きを読む

Qコマンドボタンやテキストボックスの変数化(?)

今、VB2005ExpressEditionでソフトを作っているのですが、
コマンドボタン(Button)を並べ、その隣にテキストボックス(Textbox)を並べ、
約80組のボタン・テキストの組を作りました。
そのボタンを隣に記載してある数字分だけクリックさせたいのですが、クリックさせる関数を

public function clk(a1 as integer,a2 as integer)
If a2 < 1 Then Exit Function
Dim a3 As Integer = a2
Do
If a1 = 1 Then Call Button1.PerformClick()
If a1 = 2 Then Call Button2.PerformClick()
.......
a3=a3-1
loop until a3<1
End function

として、a1をクリックするボタンの添え字、a2=textbox(a1).text(a1の部分は毎回手打ち)としていますが、buttonやtextboxの名前を変数化して、読み込むことができれば、コードを省略できると思います。何かいいアイデアはないものでしょうか?

今、VB2005ExpressEditionでソフトを作っているのですが、
コマンドボタン(Button)を並べ、その隣にテキストボックス(Textbox)を並べ、
約80組のボタン・テキストの組を作りました。
そのボタンを隣に記載してある数字分だけクリックさせたいのですが、クリックさせる関数を

public function clk(a1 as integer,a2 as integer)
If a2 < 1 Then Exit Function
Dim a3 As Integer = a2
Do
If a1 = 1 Then Call Button1.PerformClick()
If a1 = 2 Then C...続きを読む

Aベストアンサー

やっぱりですか?(^^;)了解です。以下ルールとします。
1.ButtonXXと対になるのはTextBoxXXというルールとする。
  (1~任意の数)
2.欠番は無いものとする。

フォームロードを下のように書き換えて下さい。
Dim btn As Button
Dim txt As TextBox
Dim no As Integer = 1
On Error Resume Next
Do Until Err.Number <> 0
txt = Me.Controls.Item("TextBox" & no)
btn = Me.Controls.Item("Button" & no)
If txt IsNot Nothing AndAlso btn IsNot Nothing Then
ctlList.Add(New CtrlSet(btn, txt))
txt = Nothing : btn = Nothing
End If
no = no + 1
Loop
On Error GoTo 0

やっぱりですか?(^^;)了解です。以下ルールとします。
1.ButtonXXと対になるのはTextBoxXXというルールとする。
  (1~任意の数)
2.欠番は無いものとする。

フォームロードを下のように書き換えて下さい。
Dim btn As Button
Dim txt As TextBox
Dim no As Integer = 1
On Error Resume Next
Do Until Err.Number <> 0
txt = Me.Controls.Item("TextBox" & no)
btn = Me.Controls.Item("Button" & no)
If txt IsNot Nothing AndAlso btn IsNot Nothing Then
ctlList.Ad...続きを読む

QPowerPointでテキストボックスで文字入力しフォントなどをもとし

PowerPointでテキストボックスで文字入力しフォントなどをもとした後、「既定のテキストボックスに設定する」を選択しました。その後その既定を元に戻したい(初期化)したいんですがどうしたらいいでしょうか?

Aベストアンサー

「ホーム」タブのフォントグループにある「書式のクリア」を指定して、「既定のテキストボックスに設定する」を再指定でどうでしょうか。
 

QVB.NET コンボボックスからのitem名のTEXTとりいれについて

VB.NET 勉強しはじめてまだ3ヶ月の初心者です。
(もし、表現が幼稚ならお許しください。)

コンボボックスに3個(りんご、バナナ、みかん)のITEMがあります。
まず、りんごをボックスから選んだと同時に、にわざわざ、"りんご”というtextは別には書かないで、そのままボックスにでているりんごの表示をを果物名(labelFruits) に持ってきたいのですが。できますでしょうか。 me.labelFruits.text = ???????

果物名以外の表示には収穫量、消費量など計算させるところがあります。

Aベストアンサー

Private Sub ComboBox1_SelectedIndexChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ComboBox1.SelectedIndexChanged
Me.labelFruit.Text = ComboBox1.Text
End Sub

ComboBoxを選択した際のイベントに
Labelへの代入を加えてみるとか。

Qテキストボックス デフォルトでフォントを設定したい

アウトラインにタイトルを入れた際、スライドに表示されるテキストボックスがありますが
このテキストボックスのフォントをデフォルトで指定する方法はありますか?

今はサイズが44の黒ですが、
例えばサイズが20の赤にしたい場合は、どのように設定すればいいでしょうか?

一つ一つのスライドのテキストボックスを手作業で治すしかないですか?

Aベストアンサー

> 今はサイズが44の黒ですが、
> 例えばサイズが20の赤にしたい場合は、どのように設定すればいいでしょうか?

PowerPoint2010をお使いだと思いますので、次のように操作してみて下さい。

1) 「表示」タブ→「マスター表示」グループの「スライドマスター」の順にクリックします。
2) 表示される「スライドマスター」タブの左窓で、変更したいスライドを選択して、右窓の変更したいテキストボックスの「マスター タイトルの書式設定」などの文字列を選択して、右クリックから「フォント」をクリックします。
3) 表示されるダイアログボックスの「フォント」タブで、「サイズ」や「フォントの色」をご希望のように変更して、「マスター表示を閉じる」をクリックします。
4) 通常の画面に戻ると、変更した内容が表示されると思います。

以上のように設定したPPTファイルを自作のテンプレートとして保存しておけば、何時でもテンプレートを使用することで同じ設定が使えます。

「スライドマスタの設定|PowerPointの基本操作」
http://yamanjo.net/beginner/ppt/ppt_06.html

「8-1.デザインテンプレートの作成と利用」
http://wm.tamagawa.ac.jp/manual/Bb/user/Office/2010/PowerPoint2010/PowerPoint2010_8-1.htm

> 今はサイズが44の黒ですが、
> 例えばサイズが20の赤にしたい場合は、どのように設定すればいいでしょうか?

PowerPoint2010をお使いだと思いますので、次のように操作してみて下さい。

1) 「表示」タブ→「マスター表示」グループの「スライドマスター」の順にクリックします。
2) 表示される「スライドマスター」タブの左窓で、変更したいスライドを選択して、右窓の変更したいテキストボックスの「マスター タイトルの書式設定」などの文字列を選択して、右クリックから「フォント」をクリックします。
3)...続きを読む

QVBSでブラウザ上のテキストボックスに文字列を打ち込み、ボタンを押す方法

VBSでブラウザ上のテキストボックスに文字列を打ち込み、ボタンを押す方法を教えてください。
現在、下のような方法で行っているのですが応用が利かないので改善したいと思っています。

Set IE = CreateObject("InternetExplorer.Application")
Set WshShell = CreateObject("WScript.Shell")

IE.Visible = True
IE.Navigate("https://サイトのURL")

Do Until IE.Busy = False
WScript.Sleep 1000
WshShell.SendKeys "y"
Loop
'(セキュリティの警告が出るため)
WScript.Sleep 100
WshShell.SendKeys "{TAB}"
WScript.Sleep 100
WshShell.SendKeys "loginid"
WScript.Sleep 100
WshShell.SendKeys "{TAB}"
WScript.Sleep 100
WshShell.SendKeys "password"
WScript.Sleep 100
WshShell.SendKeys "{TAB}"
WshShell.SendKeys "{ENTER}"

操作したいページのソースの一部を抜粋すると下記のようになっています。

テキストボックス
<INPUT type="text" name="loginId" class="Necessary" size="20" maxlength="5" value="" tabindex="20">

ボタン
<INPUT class="button10" type="button" name="sentaku" value="認証" onClick="javascript:execute・・・・略

うまく操作できる方法を教えてください。
よろしくお願いします。

VBSでブラウザ上のテキストボックスに文字列を打ち込み、ボタンを押す方法を教えてください。
現在、下のような方法で行っているのですが応用が利かないので改善したいと思っています。

Set IE = CreateObject("InternetExplorer.Application")
Set WshShell = CreateObject("WScript.Shell")

IE.Visible = True
IE.Navigate("https://サイトのURL")

Do Until IE.Busy = False
WScript.Sleep 1000
WshShell.SendKeys "y"
Loop
'(セキュリティの警告が出るため)
WScript.Sleep 100
WshShell.Send...続きを読む

Aベストアンサー

set f=oIE.document.forms(0)
f.loginId.value="loginid"
f.password.value="password"
WshShell.SendKeys "{ENTER}"

テキスト領域でエンターするとsubmitになるので
エンターをsendkeysするのはありだとおもいますよ


このQ&Aを見た人がよく見るQ&A

人気Q&Aランキング

おすすめ情報