
No.2ベストアンサー
- 回答日時:
#1です
> 文字を入れ替え、その入れ替えた文字を再度テキストボックスに入力したい
ここでの「再度」を理解できていないのですが。
どのような記述になっているのでしょうか。
テキストボックス「txt1」に、"(1)" の入力で "第一章" に置き換えるものとした場合、
Private Sub txt1_Change()
If (Me.txt1.Text = "(1)") Then
Me.txt1.Text = "第一章"
End If
End Sub
の様な記述になっていると、
Me.txt1.Text = "第一章"
によって、Change イベントが発生します。
Me.txt1.Value = "第一章"
または、
Me.txt1 = "第一章"
とすることで、イベントを発生させずに値を代入することができます。
ただ、これをすると、更新前処理、更新後処理も発生しないことになります。
更新前処理、更新後処理も発生させつつ、2度処理しないようにする時には、
(a) フラグ制御する
Dim bFound As Boolean
Private Sub txt1_Change()
If (Not bFound) Then
If (Me.txt1.Text = "(1)") Then
bFound = True
Me.txt1.Text = "第一章"
End If
End If
bFound = False
End Sub
フラグが立っていない時だけ、判別/処理する。
Me.txt1.Text = "第一章" をした時点で、変更時/更新前処理/更新後処理まで動き切ります。
(b) 変更時処理を一旦無しにする
Private Sub txt1_Change()
Dim sTmp As String
If (Me.txt1.Text = "(1)") Then
sTmp = Me.txt1.OnChange
Me.txt1.OnChange = ""
Me.txt1.Text = "第一章"
Me.txt1.OnChange = sTmp
End If
End Sub
Me.txt1.Text = "第一章"
する前に、変更時イベントを受け取らないようにします。
Me.txt1.OnChange に "[Event Procedure]" や "[イベント プロシージャ]" が設定されていると、
Private Sub txt1_Change() が呼び出されます。
Me.txt1.Text = "第一章" をした時点で、更新前処理/更新後処理まで動き切ります。
動き切った時には、他へコントロールが移動しても再度イベントが発生することはありません。
Me.txt1.Text に値を代入しなかった場合は、
他のコントロールに移動した時点で、更新前処理、更新後処理が動きます(変更していたら)
Me.txt1.Text への設定は、txt1へフォーカスがある時だけ有効です。
他の処理をしつつ、txt1へ代入&変更時/更新前処理/更新後処理を動かしたい時には、
例えば、ボタンがクリックされた時に
Me.txt1.SetFocus
Me.txt1.Text = "第二章"
と記述します。
2007での動きを記述してみましたが、この内容が得たかったものなのかは??
また、他にも方法があるのかもしれません。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Access(アクセス) accessデータを指定したExcel、そして指定したセルへエクスポートするaccess VBAコー 2 2023/05/17 17:02
- MySQL データベースの複製の仕方(mysql) 2 2023/05/30 18:24
- その他(パソコン・スマホ・電化製品) EXCELのSUMPRODUCT関数について 2 2022/09/21 17:30
- その他(データベース) 20万行あるデータを動かしたい 2 2023/06/13 15:21
- Excel(エクセル) excelvbaのenableeventsについて 3 2022/08/30 11:20
- その他(プログラミング・Web制作) Accessの代わりのノンプログラムデータベース作成 4 2022/10/21 09:26
- CAD・DTP Autocad Scriptファイルからの入力とコマンドラインからの入力が違う 1 2023/08/01 09:13
- Access(アクセス) accessでexcelを読み込む時のデータ型 1 2022/03/28 19:45
- 俳優・女優 映画の俳優の来日イベントの費用と中止時の費用負担 2 2023/07/19 14:51
- MySQL 参考書に従って入力したつもりでしたが、最後はエラーがでました。 1 2022/09/28 03:45
このQ&Aを見た人はこんなQ&Aも見ています
-
MS Accessでフォームの「開く時」と「読込み時」のイベントの違い
Access(アクセス)
-
Access サブフォームでの選択行の取得
その他(データベース)
-
レコードを保存するコード アクセスvba
その他(Microsoft Office)
-
-
4
2つ目のレコードの値を取得するには?
Access(アクセス)
-
5
Access 複数フォームを開き、画面の最上面にしたいフォームをコント
その他(データベース)
-
6
YES/NO型の値
Excel(エクセル)
-
7
Access フォームのテキストボックスに半角英字のみで入力する設定は
Access(アクセス)
-
8
access テキストボックスの値取得
Access(アクセス)
-
9
VBA ユーザーフォームのChangeイベントを停止したい
Access(アクセス)
-
10
Access VBAでタブコントロールで選択するタブをしていするには。
Access(アクセス)
-
11
VBAから変更した時だけイベントを発生させない方法
Excel(エクセル)
-
12
前のレコードの値を自動で入れたい
PowerPoint(パワーポイント)
-
13
VBAでエクセルシートを更新(リフレッシュ)する方法を教えて下さい。
Excel(エクセル)
-
14
アクセスで入力したデータの順番が変わってしまいます
その他(ビジネス・キャリア)
-
15
ACCESSのフォーム、開くんですが、見えないようにするには
Access(アクセス)
-
16
AccessのFormの設定で、開いた時に必ず最大化で表示する方法が分からず困っています
Access(アクセス)
-
17
Access を×ボタンで閉じる時、レコード保存したくない。
Visual Basic(VBA)
-
18
Accessのレポート上のテキストボックス値を設定したい
その他(データベース)
-
19
Accessの更新後処理で特定の条件を満たしている場合、フォーカスを移動させない方法
PowerPoint(パワーポイント)
-
20
アクセスのフォームに入力する文字に制限をかけたい
Access(アクセス)
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
object browser で処理を中断す...
-
同じSELECT文同士でのデ...
-
DELETE文でFROM句を省略した場合
-
Truncate以外で高速にテーブル...
-
PL/SQLでmdb(Access)ファイルへ...
-
ActiveX DLLでのオラクルのトラ...
-
pro*cによるdml文のトランザク...
-
他の処理でselectさせないよう...
-
1件あたりの処理時間を検討する...
-
[性能改善]AccessのDBに大量の...
-
年度毎にシーケンスの初期化?
-
Oracleから見たOracleの優位性(...
-
RDBのテーブル種類の違い
-
Access2013で操作ログを残した...
-
oracle sequence
-
Viewにインデックスは張れ...
-
データを削除しても表領域の使...
-
datapumpの実行方法について
-
ORA-00959: 表領域'****'は...
-
CLOB型へのINSERT
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
DELETE文でFROM句を省略した場合
-
他の処理でselectさせないよう...
-
object browser で処理を中断す...
-
RDBのテーブル種類の違い
-
同じSELECT文同士でのデ...
-
PL/SQLの平行処理について
-
年度毎にシーケンスの初期化?
-
[性能改善]AccessのDBに大量の...
-
accessでイベントを中止するよ...
-
C#でトランザクション開始後参...
-
処理速度の見積もり時間について。
-
Oracleから見たOracleの優位性(...
-
チューニング対象のSQLの見つけ...
-
カーソルについて
-
統計情報の取得=コミットですか?
-
Access2013で操作ログを残した...
-
ロングトランザクションについて
-
処理が終わったり終わらなかっ...
-
同一レコード更新時の排他制御
-
トランザクションのデータ件数...
おすすめ情報