こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

解決済みの質問

Excel VBA リストボックスのクリア(Win2000、Office2000)

Worksheets("Sheet1")に60個程度のTextBoxとComboBoxが並んでいます。(ユーザーフォーム上ではなく、シート上に配置)

この各ボックスに入力された値を、ファイルを開いた時(OpenEvent)で入力されている値を消したいのですが、どうしたらよいでしょうか?(終了時でも構いません)

宜しくお願い致します。

投稿日時 - 2004-07-21 17:45:46

QNo.934649

すぐに回答ほしいです

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

Sheet1上にある《全ての》TextBoxとComboBoxの表示値をクリアするものとします。
各TextBoxとComboBoxの名前は、デフォルドの名前の共通部("TextBox" & "ComboBox")が、含まれている
ものとします。

つまり、TextBox1~60 とか、ComboBox1~60 になっているとすると次のような感じで如何でしょうか。
名前が全然違う場合は、適当にいじってください。

ThisWorkbookクラスのコードウィンドウに記述します。

Private Sub Workbook_Open()
Dim Obj As OLEObject
For Each Obj In Worksheets("Sheet1").OLEObjects
  If InStr(Obj.Name, "TextBox") + InStr(Obj.Name, "ComboBox") > 0 Then
    Obj.Object.Value = ""
  End If
Next Obj
End Sub

投稿日時 - 2004-07-21 20:37:59

お礼

ありがとうございます。
残念ながら、定型的な名前ではありません。しかし、大変参考になりました。

投稿日時 - 2004-07-23 13:13:06

ANo.2

このQ&Aは役に立ちましたか?

1人が「このQ&Aが役に立った」と投票しています

回答(2)

ANo.1

Private Sub Workbook_Open()
 Worksheets("sheet1").TextBox1.Text = ""
 Worksheets("sheet1").TextBox2.Text = ""
 '
 '
 Worksheets("sheet1").ComboBox1.Text = ""
 Worksheets("sheet1").ComboBox2.Text = ""
 '
 '
End Sub

で、とりあえず消えます。

投稿日時 - 2004-07-21 19:45:39

お礼

消えました。ありがとうございます。

投稿日時 - 2004-07-23 13:13:35

あなたにオススメの質問