Excel VBA質問箱 IV

当質問箱は、有志のボランティア精神のおかげで成り立っています。
問題が解決したら、必ずお礼をしましょうね。
本サイトの基本方針をまとめました。こちら をご一読ください。

投稿種別の選択が必要です。ご注意ください。
迷惑投稿防止のため、URLの入力を制限しています。ご了承ください。


3739 / 13646 ツリー ←次へ | 前へ→

【60432】条件分岐について ビビンバ 09/2/20(金) 23:56 質問[未読]
【60433】Re:条件分岐について ichinose 09/2/21(土) 8:57 発言[未読]
【60439】Re:条件分岐について ビビンバ 09/2/21(土) 18:11 発言[未読]

【60432】条件分岐について
質問  ビビンバ  - 09/2/20(金) 23:56 -

引用なし
パスワード
   つい最近VBAの存在を知ったばかりの超初心者ですので難しいことは全く分からないのですが、よかったら教えて下さい

僕はxの数によって表示する画像を変えたいのですが

普通条件分岐をする時は
まずxの値を決めてから
If x = 1 Then Goto a Else Goto b
a:
Image1.Visible = True
msgbox "これは赤色です"
b:
Image2.Visible = True
msgbox "これは青色です"

みたいな感じにしますが
僕は扱う画像が多い上、話の進行によって画像を変えたいので、あらかじめ
x = 1の時赤い画像が出てx = 1以外の時は赤い画像は出ない
x = 2の時青い画像が出てx = 2以外の時は青い画像は出ない
と決めておいて

msgbox "問題です。"
msgbox "これは何色でしょうか?"
x = 1
msgbox "それは赤色です。"
msgbox "ではこれは何色でしょうか?"
x = 2
msgbox "それは青色です。"

という風にしたいのですが(本当はもっと長いですが)
それは可能なのでしょうか?もし可能ならば方法を教えて下さい。

【60433】Re:条件分岐について
発言  ichinose  - 09/2/21(土) 8:57 -

引用なし
パスワード
   ビビンバ さん:
おはようございます。

>つい最近VBAの存在を知ったばかりの超初心者ですので難しいことは全く分からないのですが、よかったら教えて下さい

>If x = 1 Then Goto a Else Goto b
>a:
>Image1.Visible = True
>msgbox "これは赤色です"
>b:
>Image2.Visible = True
>msgbox "これは青色です"

まず、本当に初心者なら、今後上記のようなGotoの使用は一切しないでコードを書く癖を
付けて下さい。
(昔のN88Basicでは、上記のような記述をしなければならなかったかもしれませんが、
VBAを含めた殆どの言語が上記のようなGOTO文を使用しないで記述できますし、
それの方がコードがわかりやすいです)

If x = 1 Then
  Image1.Visible = True
  msgbox "これは赤色です"
else
  Image2.Visible = True
  msgbox "これは青色です"
end if

投稿されたコードはこのように書けますから・・・。


>僕は扱う画像が多い上、話の進行によって画像を変えたいので、あらかじめ
>x = 1の時赤い画像が出てx = 1以外の時は赤い画像は出ない
>x = 2の時青い画像が出てx = 2以外の時は青い画像は出ない
>と決めておいて
>
>msgbox "問題です。"
>msgbox "これは何色でしょうか?"
>x = 1
>msgbox "それは赤色です。"
>msgbox "ではこれは何色でしょうか?"
>x = 2
>msgbox "それは青色です。"
>
>という風にしたいのですが(本当はもっと長いですが)
>それは可能なのでしょうか?もし可能ならば方法を教えて下さい。


ここにあるImage1というオブジェクトがどこに配置されているかで
(シートに配置したImageオブジェクトなのか ユーザーフォームに配置したそれなのか)
コードの記述方法が違いますから、どこに配置したものなのかきちんと説明してください。

方法としては、配列を使います。

【60439】Re:条件分岐について
発言  ビビンバ  - 09/2/21(土) 18:11 -

引用なし
パスワード
   ichinoseさん:
ご返答ありがとうございます

なるほど、配列を使うのですね。
僕は正直シートでもユーザーフォームでも構わないのですが
個人的にシートの方が簡単そうなのでそちらの方に画像を配置したいと思っています。

それと、これからはGotoを使わないように心がけます。
ご指摘ありがとうございました。

3739 / 13646 ツリー ←次へ | 前へ→
ページ:  ┃  記事番号:
2610219
(SS)C-BOARD v3.8 is Free