投稿者 魔界の仮面弁士  (社会人) 投稿日時 2020/10/15 15:49:02
Public なインスタンス メンバーであれば、
Microsoft.VisualBasic.Interaction.CallByName を使うことができます。

Public Class Sample
    Public Property Hoge1 As String
    Public Property Hoge2 As String
    Public Property Hoge3 As String
End Class

Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
    Dim p As New Sample() With {.Hoge1 = "a", .Hoge2 = "b", .Hoge3 = "c"}

    ListBox1.Items.Add("Hoge1=" & p.Hoge1)

    'CallByName で値を読み取る 
    Dim memberName As String = "Hoge2"
    ListBox1.Items.Add("Hoge2=" & CallByName(p, memberName, CallType.Get))

    'CallByName で値を書き込む 
    memberName = "Hoge3"
    CallByName(p, memberName, CallType.Set"新しい値")
    ListBox1.Items.Add("Hoge3=" & p.Hoge3)
End Sub



Private なメンバーの場合には、CallByName は使えません。
(呼び出したい場合は、System.Reflection 名前空間のクラスを使うことになります)