多くのテキスト ボックスを必要とする vb2010 でアプリケーションを作成しています。各テキスト ボックスの名前を一意の識別子に変更するには、非常に時間がかかります。たとえば、TextBox1 の名前を txtName1 に変更するのは、多数ある場合、時間のかかるプロセスです。
これをスピードアップして、一意の ID 番号を持つユーザー フレンドリーな名前を付ける方法はありますか? それとも、それぞれを耕すだけの問題ですか?
多くのテキスト ボックスを必要とする vb2010 でアプリケーションを作成しています。各テキスト ボックスの名前を一意の識別子に変更するには、非常に時間がかかります。たとえば、TextBox1 の名前を txtName1 に変更するのは、多数ある場合、時間のかかるプロセスです。
これをスピードアップして、一意の ID 番号を持つユーザー フレンドリーな名前を付ける方法はありますか? それとも、それぞれを耕すだけの問題ですか?
コントロールには常に意味のある名前を割り当てるようにしてください。このアプローチに従うと、コンピューターはそれを支援できないことがわかるため、手動で行う必要があります。TextBox1
あなたの場合、を識別する必要があることをどのように知っていname
ますか?
txtName1
は、コントロールの名前としても適切ではありません。なぜなら、a)その名前が開発者に伝わらず、b)なにが1
? 名前の最初の部分、つまりファーストネームを意味しますか? それともリストの最初の人の名前?コントロールの名前をできるだけ短くする、データベースのフィールド名と一致させる、または別の理由など、他の考慮事項がない限り、適切な名前は (a) と b) のそれぞれのtxtCustomerFirstName
ようにtxtFirstCustomerFullName
なります) 。
出典:私は、1000 以上のテキストボックスを備えた保険管理用のエンタープライズ クラスのアプリケーションを開発しました。現時点では、問題が発生した場合の主なサポート窓口です。私の経験から、コントロールの名前付けは、ほとんどの時間を費やす場所ではありません。
補足として、デザイナーを使用してコントロールの名前を手動で変更すると、コード内のすべての使用箇所の名前も変更されます。必要な作業を大幅に削減します。
試してみてください:私は今PCの前にいるので編集します;)上記の答えが何を言っているかを考えるのは確かに良いことです。とにかく、ここに知っておくべきことがあります。テキストボックスやその他のコントロールをExcelシートに追加するとEmbedded
、画像のようなタイプになります。
シートのShapeテキストボックスに意味のある名前を付けたい場合は、次の1つの方法があります。
Option Explicit
Sub reNameMeaningfully()
Dim shp As Shape
Dim arrNames As Variant
Dim i As Integer
arrNames = WorksheetFunction.Transpose(Sheets(1).Range("D2:D7").Value)
'-- assuming that you have exact number of names for the exact number of controls
For i = LBound(arrNames) To UBound(arrNames)
Set shp = Sheets(1).Shapes(i)
'-- we can't check Type here. So we check if default-name begins with Text
If shp.Name Like "Text*" Then
shp.Name = arrNames(i)
End If
Next i
End Sub
出力:
それらのtecboxがにある場合は、Form
これを試してください。同じロジックを使用して、すべての名前を範囲内に配置し、それを反復処理できます;)
Dim Cont as Control
Dim i as integer
i = 1
For Each Cont In Me.Controls
If TypeName(Cont) = "TextBox" Then
Cont.name = "txt" & i '-- Rename
End If
Next Cont