
No.2ベストアンサー
- 回答日時:
テキストボックスに追加された文字に対する操作は、変数やファイルというものの構造上好ましくないですね。
また、BackSpaceやDeleteキーで消されたときにも対応できません。
TAGOSAKU7さまのコードのように、内容が変更されたら、テキストファイルのすべてを書きなおすという方法をとるのが理想です。
しかし、この方法では内容が長くなってきたときに、1文字1文字入力するたびに、ディスクアクセスが発生することになり、文字を打っている人にストレスを与えてしまいます。
ということで最後に文字を入力してからおよそ3秒後にファイルを保存するという方法を紹介します。
○ フォームにテキストボックスを貼り付け、MultiLineプロパティをTrueにする。
○ フォームにタイマーコントロールを貼り付け、Intervalプロパティを1000にして、EnabledプロパティをFalseにする。
○ 次のコードをフォームのコードに貼り付ける。
Const TEST_FILE = "c:\test.txt"
Const N_SEC = 3
Private Sub Text1_Change()
Timer1.Enabled = True
End Sub
Private Sub Timer1_Timer()
On Error Resume Next
Static Cnt As Long
Dim strText As String
Dim lngFile As Long
Cnt = Cnt + 1
If Cnt = N_SEC Then
Timer1.Enabled = False
Cnt = 0
Kill TEST_FILE
strText = Me.Text1.Text
lngFile = FreeFile
Open TEST_FILE For Binary Access Write As #lngFile
Put #lngFile, , strText
Close #lngFile
End If
End Sub
-------------------
ってな感じでどうでしょう。
真中ら辺はTAGOSAKU7さまのコピーです。
ちなみに
Const N_SEC = 3
の3を変えれば何秒後でもできます。
No.1
- 回答日時:
キーダウン、キープレスだと、マウス操作による変更が反応しません。
リアルタイムということなら、チェンジイベントを使用しましょう。
サンプルは、テキストボックスのMultiLineをTrueにして使用した方が、見栄えがいいかも?
Private Sub Text1_Change()
Const TEST_FILE = "c:\test.txt"
Dim strText As String
Dim lngFile As Long
strText = Me.Text1.Text
lngFile = FreeFile
Open TEST_FILE For Binary Access Write As #lngFile
Put #lngFile, , strText
Close #lngFile
End Sub
この回答へのお礼
お礼日時:2002/01/22 21:03
ありがとうございます!Text1_Changeって全然知りませんでした。なるほど、テキストを更新する度にそういうイベントが発生しているわけですね。試してみます。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
eclipseのデバッグ中に変数の値...
-
VB.NETでラベルの大きさってど...
-
エクセル 画像のプロパティで縦...
-
ウォッチ式の文字数制限について
-
ダイアログ属性の変更
-
ACCESSのラベル内データに下線...
-
MATLABのグラフで軸目盛りのフ...
-
スプレッドシートの列名変更の...
-
(Excel 2003) マクロでワー...
-
ラベルの大きさを変えるには
-
ExcelVBAのコントロールの種類...
-
どう増強すべきか
-
VBAがブレークモードになっ...
-
実行時エラー 438になった時の...
-
Microsoft Formsの「個人情報や...
-
worksheetFunctionクラスのVloo...
-
クリックイベントなのに、2回ク...
-
EXCEL/VBAで、自分のPCだけエラ...
-
VB.net でトグルボタンを実現し...
-
VBA シートのボタン名を変更し...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
ウォッチ式の文字数制限について
-
eclipseのデバッグ中に変数の値...
-
Vba テキストボックス文字を右...
-
ExcelVBA EnableプロパティがF...
-
ラベルの文字列の長さが変わっ...
-
Notepad++のコメントの色を変え...
-
VB2005 TextBoxで高さを変更し...
-
VisualStudioのプロパティが表...
-
MATLABのグラフで軸目盛りのフ...
-
ラベルを表示したり非表示にし...
-
ラベル内の文字(Caption)を縦...
-
スプレッドシートの列名変更の...
-
VBSのMsgBoxで文字に色をつけたい
-
VB.NETでラベルの大きさってど...
-
セレクトボックスのハイライト...
-
三菱タッチパネル小数点以下表...
-
ACCESSのラベル内データに下線...
-
ラベルのスクロール(VB)
-
(Excel 2003) マクロでワー...
-
エクセルで図形のキャプション...
おすすめ情報