#775 | 複製したコントロールを別の連番付きの名前に変更する方法 | フォーム、VBA | |
フォームのデザインにおいて連番を振ったコントロールがあるとき、たとえば「txt日付1」・「txt日付2」・「txt日付3」・・・・のような名前が付けられているとき、それらをまとめて複製すると「テキストボックス40」・「テキストボックス41」・「テキストボックス42」・・・・のような名前になります。テキストボックスコントロールであれば「”テキストボックス”+連番」といった名前になり、複製元の”txt”や”日付”の部分などは残りません。・・・・ここでの”連番”は、最後にデザインビューに挿入されたコントロールの番号の次から始まります そのようなとき、フォームのデザインビューに対してプログラムを実行することで、複製したコントロールを別の連番付きの名前に変更することができます。 次のプログラム例では、フォーム「複製コントロール連番変更」において、「テキストボックス12」・「テキストボックス13」〜〜〜「テキストボックス23」となっている複製されたコントロールの名前を「txt1月」・「txt2月」〜〜〜「txt12月」に変更します。
Dim ctl As Control Dim intNewNumber As Integer Dim strNewName As String Dim iintLoop As Integer With Forms!複製コントロール連番変更 '連番の初期値を設定 intNewNumber = 1 '複製したコントロールのループ For iintLoop = 12 To 23 'いくつからいくつになるかはフォームデザインで調べる 'コントロールの名前を変更 strNewName = "txt" & intNewNumber & "月" .Controls("テキスト" & iintLoop).Name = strNewName 'コントロールソースを変更 .Controls(strNewName).ControlSource = "出荷" & intNewNumber & "月" '連番を次へ進める intNewNumber = intNewNumber + 1 Next iintLoop End With |
|||
|
Copyright © T'sWare All rights reserved |