いつもお世話になります。
1点目・これは、Private Sub を見やすくするため、とりあえず、モジュールに入れとけ、という使い方でいいのでしょうか。
2点目 下記うまくいきません。
Private Sub
消去
End Sub
モジュールに
sub 消去()
テキスト数量 = "" (テキスト数量はテキストボックス)
End Sub
これってやっぱり、モジュールの使い方が間違っているのでしょうか?まあ~間違ってるから動かないんでしょうけど・・・モジュールについて解説と使用方法を教えて頂きたいです。
2点目の解決方法はPrivate Subにテキスト数量 = ""するしかないのでしょうか、消去の数・箇所(同じもの)が多いので、できれば何処かに纏めたいのです。こちらもお願いします。
No.2
- 回答日時:
2点目
>Private Sub
>消去
>End Sub
>
>モジュールに
>sub 消去()
>テキスト数量 = "" (テキスト数量はテキストボックス)
>End Sub
複数のフォームがあり全てのフォームがほぼデザインが同じでテキストボックスの名称を同じにしているのであれば以下のようにしてみては如何でしょうか。
※こんな造りは、本当にあまりよろしくないと思います。
Private Sub
Call 消去(Me) '(*1)
End Sub
*1:Subを呼ぶ時は、見やすくするためにCallを記述した方が良いでしょう。
Public Sub 消去(frm as Form)
frm.テキスト数量 = "" (テキスト数量はテキストボックス)
End Sub
解説:どのフォームのテキストボックスなのかを知らせる為に、フォームオブジェクトを渡します。
No.1ベストアンサー
- 回答日時:
>1点目・これは、Private Sub を見やすくするため、とりあえず、モジュールに入れとけ、という使い方でいいのでしょうか。
可能ですが、やってはダメです。
フォームに固有の処理(テキストボックスに値を設定する等)はフォーム内に記述しましょう。
汎用的に使える処理(例えば、何らかの金額の計算処理など)はモジュールに入れればいいかもしれません。(ソフトの作り方次第では、クラスモジュールに入れなければならないかもしれません。)
フォーム内のPrivate Sub を見やすくするためには、同じフォーム内にもう一個 Private Sub を作成すればいいでしょう。
>2点目 下記うまくいきません。
sub 消去()
フォームの名称.テキスト数量 = ""
End Sub
とすべきでしょう。
複数のフォームetcに「テキスト残量」がある場合があるので。
先に書いたように、フォーム外のモジュールで、個々のフォーム内のテキストボックス等を直接操作するのは、あまり行儀のいいやり方ではありません。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) マクロについて教えてください。 4 2023/06/06 09:06
- Visual Basic(VBA) 【Excel VBA】自動メール送信の機能追加 5 2022/09/29 12:53
- Visual Basic(VBA) マクロについて教えてください。 1 2023/06/06 00:57
- Visual Basic(VBA) 標準モジュール Public mOnTime As Date Sub sample() '実行プロシ 1 2023/02/22 15:44
- Excel(エクセル) エクセルVBAでオブジェクトが必要です 2 2022/09/10 16:37
- Visual Basic(VBA) VBA Bookの表示、非表示 1 2022/09/16 20:44
- Visual Basic(VBA) パーソナルXLSBのfuctionを呼び出すと「Functionが定義されていません」のエラーになる 2 2022/08/22 22:51
- Excel(エクセル) エクセルのイベントVBAを複数のシートで動かしたい 1 2022/12/07 16:55
- Visual Basic(VBA) VBA。複数のChangeイベントをまとめる方法 2 2022/03/31 12:03
- Visual Basic(VBA) batからexeを実行し戻り値を受け取る バッチからEXEの結果を受け取りたいのですが、 下記のバッ 1 2023/07/04 15:13
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
ユーザーフォームを表示中にシ...
-
ExcelVBAのユーザーフォームの...
-
ユーザーフォーム上に現在日時...
-
エクセルVBAのフォームを最...
-
ACCESSでストップウォッチの作成
-
VBAでユーザーフォームを再表示...
-
Form_Load と Form_Activate の...
-
ユーザーフォームのテキストボ...
-
フォームウィンドウを最前面に...
-
ブックをCloseまたはQuitで閉じ...
-
クリックイベントなのに、2回ク...
-
MSGBOXのフォント大きさ変更
-
C#で起動時のフォームを非表示...
-
ACCESSのフォーム、開くんです...
-
フォームの位置を取得したい
-
ユーザーフォームのラベルに時...
-
VB.NET/PictureBoxのサイズ
-
Excel VBAで別のブックからユ...
-
VBE ユーザーフォーム重複・空...
-
フォームを画面の下側ぴったり...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
ユーザーフォームを表示中にシ...
-
クリックイベントなのに、2回ク...
-
ExcelVBAのユーザーフォームの...
-
ユーザーフォームのテキストボ...
-
Microsoft Formsの「個人情報や...
-
ユーザーフォーム上に現在日時...
-
Form_Load と Form_Activate の...
-
モーダルフォームとモードレス...
-
Excelにて、ユーザーフォームで...
-
VBAでユーザーフォームを再表示...
-
【VBAユーザーフォームで閉じる...
-
MSGBOXのフォント大きさ変更
-
VBA(エクセル)のユーザー...
-
Hideについて(.NET)
-
エクセルVBAのフォームを最...
-
コントロールの存在確認
-
ACCESSのフォーム、開くんです...
-
'ユーザーフォーム右上隅の[×...
-
フォームウィンドウを最前面に...
-
ユーザーフォームのラベルに時...
おすすめ情報