• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:Excel2000VBA 複数のテキストボックスに連続して同一処理をしたい)

Excel2000VBAで複数のテキストボックスに連続して同一処理をする方法

このQ&Aのポイント
  • Excel2000のVBAでユーザーフォームを使って簡単なインターフェースを作成する方法をご質問いただきました。現在、複数のテキストボックスに連続して同じ処理を行いたいという要件があります。これを簡素化する方法はありますか?
  • Excel2000のVBAにおいて、ユーザーフォームを使用して複数のテキストボックスに連続して同じ処理を行いたい場合、現在の実装ではコードが長くなってしまっているというお悩みです。より簡素な方法はないでしょうか?
  • Excel2000のVBAを使用してユーザーフォームを作成していますが、複数のテキストボックスに連続して同じ処理を行う際にコードが長くなってしまう問題があります。この処理を簡素化する方法を教えていただきたいです。

質問者が選んだベストアンサー

  • ベストアンサー
  • Wendy02
  • ベストアンサー率57% (3570/6232)
回答No.3

こんにちは。 単に、以下のような単独のプロシージャーか、サブルーチン化させるなら、同じUserformモジュールにしたらいかがですか? Private Sub CommandButton1_Click() For i = 1 To 50  Me.Controls("TextBox" & CStr(i)).Value = "" Next End Sub '-------------------------------- 'または、 Private Sub CommandButton1_Click()  Call s_TextBoxesClear End Sub Sub s_TextBoxesClear() For i = 1 To 50  Me.Controls("TextBox" & CStr(i)).Value = "" Next End Sub もちろん、Userformが複数あるなら、標準モジュールを使うべきかもしれませんが。

love-like-pop
質問者

お礼

回答ありがとうございました。 今回はコードの記述を簡素化したかったので、上の方法で解決できました。 For~Nextを使うところまでは推察できていたのですが、CStrを知りませんでした。これで一つお利口になれましたw

すると、全ての回答が全文表示されます。

その他の回答 (2)

回答No.2

失礼・・・。わざわざオブジェクトに入れる必要ありません^^;(しかもObject型つかっちゃってるし・・・) 【UserForm1】 Private Sub UserForm_Click() Call TextInitialize(Me) End Sub 【Module1】 Public Sub TextInitialize(ByRef Frm As UserForm) Const CtrlName As String = "TextBox" Const CtrlStIdx As Long = 1 Const CtrlEdIdx As Long = 50 Dim i As Long For i = CtrlStIdx To CtrlEdIdx Frm.Controls(CtrlName & CStr(i)).Text = "" Next End Sub 他にもミスしてそう・・・(笑)

すると、全ての回答が全文表示されます。
回答No.1

> こういった処理が複数回あり、コードが長くなってしまっています。 複数回あるのであれば、この部分だけサブルーチン化してしまえば良いと思います。 以下は例です。 【UserForm1】 Private Sub UserForm_Click() Call TextInitialize(Me) End Sub 【Module1】 Public Sub TextInitialize(ByRef Frm As UserForm) Const CtrlName As String = "TextBox" Const CtrlStIdx As Long = 1 Const CtrlEdIdx As Long = 50 Dim Obj As Object Dim i As Long For i = CtrlStIdx To CtrlEdIdx Set Obj = Frm.Controls(CtrlName & CStr(i)) Obj.Text = "" Next End Sub

love-like-pop
質問者

お礼

早速の回答ありがとうございました。 こんなに早く回答がくるとは思っていませんでした。 今回はとりあえず簡単そうな方法でやってみることにします。 行き当たりばったりで作っているので、苦労してますが、今後必要に応じてサブルーチン化も検討したいと思います。

すると、全ての回答が全文表示されます。

関連するQ&A