|
■No38906 (toto さん) に返信 > よろしくお願いします。 > 従来VBAで造っていたものをVB2008に変換していますが、TextboxのBackcolorの所の記述がうまくいきません。 > > sub XXXX > @ Dim mytextbox As MSForms.TextBox > Dim i AS interger > 途中略 > For i = 1 To 42 > A Set mytextbox = Me.Controls("textbox" & i) > If Mat(2, i) = "1" Then > B Me.Controls("textbox" & i).BackColor = &HC0C0FF > Else > Me.Controls("textbox" & i).BackColor = &H80000005 > End If > end sub > 上記のプログラムの中で > @、A、Bの記述部分のご指導をお願いします。 >
なんかソース見ると@とAは不要な気がするんだけど。 まああえて書けば @は Dim mytextbox As TextBox Aは mytextbox = Me.Contlors("textbox" & i) となる。
Bは VB.NETにおいてはColor構造体を使用して、色を設定したり参照したりする。 BをVB.NETに変化すると Me.Controls("textbox" & i) = Color.FromArgb(&HFF, &HC0, &HC0) となる。 あと、○付けされていない行 Me.Controls("textbox" & i).BackColor = &H80000005 の行では、システムカラーを設定しているので注意しないといけない。 &H80000005はウィンドウの背景色らしい。 この行を素直に変換すると Me.Controls("textbox" & i).BackColor = System.Drawing.SystemColors.Window としちゃうところだが、VB.NETにおいてウインドウの背景色はSystem.Drawing.SystemColors.Controlが設定されているので Me.Controls("textbox" & i).BackColor = System.Drawing.SystemColors.Control となる。
|