Excel VBA質問箱 IV

当質問箱は、有志のボランティア精神のおかげで成り立っています。
問題が解決したら、必ずお礼をしましょうね。
本サイトの基本方針をまとめました。こちら をご一読ください。

投稿種別の選択が必要です。ご注意ください。
迷惑投稿防止のため、URLの入力を制限しています。ご了承ください。


28713 / 76734 ←次へ | 前へ→

【53313】Re:テキストボックス等の一括消去
回答  neptune  - 07/12/26(水) 22:24 -

引用なし
パスワード
   ▼新参者 さん:
こんにちは

>のようにオブジェクトを一個一個書いてました。
>もっと簡単なやり方があると思うのですが分かりません。
↑が一番簡単と思います。

難易度でいうと高いと思いますが、使い方は簡単な例
勉強の種にでもしてください。
・新規Book
・UserFormにTextBox2個、CommandButton2個配置
・プロジェクトにClassモジュールを2つ追加

以下をコピペ

'////////////UserForm/////////////
Private clsText As Class1

Private Sub CommandButton1_Click()
  clsText.ClearText
End Sub

Private Sub CommandButton2_Click()
  MsgBox "TextBox2のデータは" & clsText.Items(2).Text
End Sub

Private Sub UserForm_Initialize()
  Set clsText = New Class1
  clsText.AddItem Me.TextBox1
  clsText.AddItem Me.TextBox2
  
  Me.CommandButton1.Caption = "TextBoxをクリアする"
  Me.CommandButton2.Caption = "TextBox2のデータを取得する"
End Sub

Private Sub UserForm_QueryClose(Cancel As Integer, CloseMode As Integer)
  Set clsText = Nothing
End Sub

'Class1に以下をコピペ
Option Explicit

Private mCol As Collection
Private clsTxt As Class2

Private Sub Class_Initialize()
  Set mCol = New Collection
End Sub

Private Sub Class_Terminate()
  Set mCol = Nothing
End Sub

Public Function AddItem(pData As MSForms.TextBox)
  Set clsTxt = New Class2
  Set clsTxt.mTextBox = pData
  mCol.Add clsTxt
End Function

Public Property Get Items(pData) As MSForms.TextBox
  Set Items = mCol.Item(pData).mTextBox
End Property

Public Function ClearText()
Dim t As Object
  For Each t In mCol
    t.ClearText
  Next
End Function

'Class2に以下をコピペ
Option Explicit

Private WithEvents mText As MSForms.TextBox

Public Property Set mTextBox(pData As MSForms.TextBox)
  Set mText = pData
End Property

Public Property Get mTextBox() As MSForms.TextBox
  Set mTextBox = mText
End Property

Public Function ClearText()
  mText.Text = ""
End Function

準備が出来たらUserFormを表示させてください。textboxにも適当に入力。
多分操作は解ると思います。

ちなみに、for eachが使いたいならCollectionを調べると参考になると思います。

2 hits

【53307】テキストボックス等の一括消去 新参者 07/12/26(水) 21:25 質問
【53310】Re:テキストボックス等の一括消去 じゅんじゅん 07/12/26(水) 21:48 発言
【53312】Re:テキストボックス等の一括消去 ponpon 07/12/26(水) 22:19 発言
【53313】Re:テキストボックス等の一括消去 neptune 07/12/26(水) 22:24 回答
【53314】Re:テキストボックス等の一括消去 neptune 07/12/26(水) 22:26 発言
【53322】Re:テキストボックス等の一括消去 新参者 07/12/27(木) 20:34 お礼

28713 / 76734 ←次へ | 前へ→
ページ:  ┃  記事番号:
2610219
(SS)C-BOARD v3.8 is Free