- ベストアンサー
VB6のテキストボックスに入力していると、途中で急に文字が消えてしまうのは何故?
haporunの回答
- haporun
- ベストアンサー率40% (230/562)
んんん。 これがフォーム上のコードすべてですか? いろんなところに If Text1.Text = "" Then Stop を書いて、どの時点でテキストボックスのなかみが消えているか特定はできましたか? このコードを見ても、名前が何のコントロールの名前なのか予測できないので、なんともいえません。 すみません、自信なくなってきました。 APIやカスタムコントロールを使っているので、いろいろ勉強なさっているとは思いますが、さすがにこれでは見やすいコードとはいえません。 コードを見やすく、無駄なく書き直せば、多少デバッグ効率が上がると思うのですが・・・。 ○ ファイル名を作成する作業は何度も使うので、関数にしたほうがいい。 Function MakePathName(File As string) As String MakePathName = App.Path + "\" + Replace(File, "/", "") End Function とか。 ○ Weekday(startdate)を何度も呼び出すのは効率が悪いので、それを変数に入れてSelect Caseすればかなりコードが減る。 Dim Wd As Long, WdName Wd = Weekday(startdate) WdName = Array("日", "月", ・・・"土") Form1.Label2.Caption = WdName(Wd) Select Case Wd Case 1 '赤にする文 Case 2 To 7 '黒にする文 End Select ってな感じ。 ○ Format(startdate, "mm/dd")もなんども呼び出してはダメ。 Dim Sd As String Sd = Format(startdate, "mm/dd") Select Case Sd Case "01/01", "02/11",・・・"12/23" '赤にする文 End Select VBにはSelect Caseというほかの言語にはあまりない便利な分岐文があるので、利用しましょう。 ○ Dimはサブルーチンの最初にまとめて書いたほうが良い○ Dimは,(コンマ)で1度に複数宣言できるので、同じような意味を持つ変数は同時に宣言 ○ Timer1_Timerイベントにて、GetPrivateProfileStringに渡すファイル名やキー名は不変なので、フォーム内の(Declarations)で宣言し、Form_Loadで値を代入したほうがよい。 なんども同じ値を入力するのは無駄です。 なんだか、あまり関係ないことしか言ってませんが、他人に聞くときは、他人に見やすいコードを書くことも重要なのです。
関連するQ&A
- テキストボックスの入力抑制
使用言語はVB.NETです。 フォームAのテキストボックスAに文字を入力し確定すると、 フォームBが起動、フォームBのテキストボックスには、 テキストボックスAで入力した内容が表示されており、それを 変更することはできない。 ただし、テキストボックスAに何も入力せずに起動した場合、 テキストボックスBの内容は書き換え可能、というようなものを 作りたいと思っています。 また、テキストボックスBを入力不可にするには、Enabled=False 以外の方法で行いたいのです。 例えば、テキストボックスAで1と入れた場合、テキストボックスBの 初期表示1をBSで消しても、違う値をいれても、常に1に表示が戻される、 というようなものにしたいのですが…。 上記のようなものを作るには、どのように処理を作っていけば 良いのでしょうか? サンプル的なコードを教えていただけるとありがたいです。 よろしくお願いします。
- ベストアンサー
- Visual Basic
- テキストボックスの入力制限
VB2005環境です。 ・全角文字のみ入力を受け付けるテキストボックス ・半角文字のみ入力を受け付けるテキストボックス 以上のような入力制限を持つコントロールを用意したいと思っています。 MaskedTextBoxを用いればできるかと思いましたが、それらしき プロパティが見当たりませんでした。 やはりキーイベントを取得して…ということになるのでしょうか?
- ベストアンサー
- Visual Basic
- VB.net テキストボックスの入力制限全角のみ
VB.net初心者です テキストボックスの入力制限で全角文字のみを実現させたいのですが、いろいろ検索して調査してもわかりません。 どなたかアドバイスをいただけると助かります、よろしくお願いします。
- ベストアンサー
- Visual Basic
- Acでテキストボックス上に罫線を常に表示したいのですが・・・
Access97です。OSは2xです。 >入力フォームを作成しているのですが、最大文字数Overをする間際に罫線を 引いています。 >通常のツールボックスから直線を選択して表示しておりますが、入力する際 テキストBOXにフォーカスがある場合、テキストBox内の文字数Over直線が消え てしまいます。 >>これを回避して常に最前に出す方法は無いのでしょうか? VB6で作成された物を見たことはあるのですが・・・VBAでは・・・出来ますか??
- ベストアンサー
- Visual Basic
- テキストBOXの入力制限について
テキストBOXを下記のように設定したとします。 <input type="text"name="***" maxlength="30"> この場合は、全角・半角関係なく文字数を30文字入力することができますよね? 今回、私がやりたいことは、バイト数の制限をやりたいんです。 例えばバイト数を30バイトにした場合は、 全角では15文字しか入力できなくて 半角では30文字入力制限をする方法を探しています。 何かよい方法はないものでしょうか???
- ベストアンサー
- Microsoft ASP
- テキストボックスで2か所に文字が入力される
Word2002を使用しています。 テキストボックスを挿入すると、テキストボックスと 少し離れた文書中に2か所 文字が入力されます。文書中の文字を消すとテキストボックスの文字も消えます。 しかも印刷プレビューで表示されているにも関わらず印字されてません。 これはどうしたら直りますか?
- 締切済み
- オフィス系ソフト
- EXCEL2010のテキストボックスについて
テキストボックスに文字数制限はありますか? セルA1に文字列とセル値を&でつないだ文章を=の計算式で入力しています。 それをテキストボックスに=で取り込んでいるのですが、途中で文章が切れてしまいます。 文字数制限があるのでしょうか? この制限を解除する方法はないでしょうか? windows7 の excel2010です。 ご回答宜しくお願い致します。
- ベストアンサー
- オフィス系ソフト
- VB2005テキストボックスへのコピペ制御についての質問です。
VB2005テキストボックスへのコピペ制御についての質問です。 フォーム上にテキストボックスを用意し、数値しか入力させず、整数が入力される予定です。 数値のみを入力させることは出来たのですが、コピペを行うと数値でも文字でも貼りつけ出来てしまいます。 これを制限する方法はあるのでしょうか?
- 締切済み
- Visual Basic
- VB6のWebBrowserコントロールのテキストボックスについて
VB6でWebBrowserコントロールを使用してテキストボックスを表示しており。テキストボックス内の入力文字列がSelect(反転表示され選択されている状態)されている場合に、Select状態を解除する方法を知りたいのですが、よろしくお願いいたします。
- ベストアンサー
- Visual Basic
お礼
丁寧な解説ありがとうございます。ほんとに色々なやり方があるんですね。私の場合は、勉強してるというよりも、色々な本を購入してきて、その中のパターンを真似ているだけなので、実際にはよく理解できていないんです。しかも、本では今自分が求めるコードがどれなのかもよく分かりませんし。誰かに説明していただくと、すごく参考になります。とりあえず書いていただいたものは全部試してみたいと思います!