投稿者 魔界の仮面弁士  (社会人) 投稿日時 2020/10/9 16:42:49
「a」とか「aa」といった変数名だと、後で見た時に、
それが何を意味しているのか把握しにくくなります。

後半の「maxheight」や「barcode39」の方は、きちんとした名前を
付けておられるようですし、同じように意味のある変数名を付けるようにしましょう。


> 見方がわからないので、画像置きます。。
一般公開されていないのか、私のアカウントでは閲覧できませんでした。


> 動かすと変数aのところがエラーになります。
Try にせよ If にせよ、それぞれのブロック内で Dim した変数は、
そのブロックの外側では使えません。

それぞれのブロック内で a を宣言するのではなく、
変数 aa のように、それよりも前で宣言すれば OK です。


ただし提示頂いたコードだと、もしも a を使えるようにしたとしても、
この場合、『Label1.Text = "選択されていません。"』 の時には、
a がどの PictureBox を指し示すのか不明瞭になりますので、
その点も見直した方が良いですね。

Dim a As PictureBox = Nothing   'If ブロックの外側で変数を宣言し、最初に Nothing を入れておく 
If ComboBox1.SelectedItem = 1 Then
    a = PictureBox1   'それぞれのブロック内で PictureBox をセット 
ElseIf ComboBox1.SelectedItem = 2 Then
    a = PictureBox2
ElseIf ……
    :
End If

If a IsNot Nothing Then
    a.Image = img   ' a が Nothing では無かった場合は画像を差し替え 
End IF