
No.4ベストアンサー
- 回答日時:
#1です。
訂正版です。前準備として、
1.フォーム上にピクチャーボックス(Picture1)、コマンドボタン(Command1)を配置。
2.フォームのKeyPreviewプロパティをTrueにする。(KeyPressイベントを他のコントロールより先に受け取るため。)
次にフォームモジュールに以下のように記述することでできました。
Dim strABC As String '(フォーム)モジュールレベルの変数
Private Sub Command1_Click()
Dim intRND As Integer
Randomize '乱数発生ルーチンを初期化
intRND = Int(3 * Rnd + 1) '1~3の間で乱数を発生
'intRND(1~3の整数)の値からA,B,Cの画像を表示。strABCにどの画像を表示したか設定。
Select Case intRND
Case 1
Picture1.Picture = LoadPicture("C:\A.BMP")
strABC = "A"
Case 2
Picture1.Picture = LoadPicture("C:\B.BMP")
strABC = "B"
Case 3
Picture1.Picture = LoadPicture("C:\C.BMP")
strABC = "C"
End Select
End Sub
Private Sub Form_KeyPress(KeyAscii As Integer)
If UCase(Chr(KeyAscii)) = "A" And strABC = "A" Then
Picture1.Picture = LoadPicture("C:\D.BMP")
ElseIf UCase(Chr(KeyAscii)) = "B" And strABC = "B" Then
Picture1.Picture = LoadPicture("C:\E.BMP")
ElseIf UCase(Chr(KeyAscii)) = "C" And strABC = "C" Then
Picture1.Picture = LoadPicture("C:\F.BMP")
End If
End Sub
この回答へのお礼
お礼日時:2006/09/27 16:04
回答ありがとうございます!
訂正版ありがとうございました。
また、KeyPreviewプロパティについても教えて頂きありがとうございました。
No.3
- 回答日時:
rnd関数を使えば簡単にできます。
rnd関数は乱数を発生させる関数です。
int(rnd(1)*3)+1
とすれば整数1~3の乱数が返されます。これは乱数の基本的な使い方です。
後は仕様がよく分からないので適当に補正して下さい。
なお、VBの乱数は精度があまりよくないことが知られているので、
発展としてseedを研究されるとより知識が深まるでしょう。
>Aが表示されたとき、キーボードの「A」を押すとDを表示
キー操作にはkeypress、keydown、keyupの3つのイベントがあり、
この場合はふつうにkeypressに記述すればいいかと思います。
No.2
- 回答日時:
#1です。
勘違いしてました。A,B,Cをランダムに表示させた後に、押したキーによって画像を切り替えるということだったのですね。
私の回答だと、ランダム表示とA,B,Cのどの画像が表示されているかの判定部分が入っていませんね。
すみません。読み飛ばしてください。
No.1
- 回答日時:
質問文だとランダムではなく規則性があるように思えるのですが、
フォームにピクチャーボックス(Picture1)を配置して、フォームのKeyPressイベントに
下記のコードを記述すれば出来ると思いますが。
(画像D,E,FはCドライブの直下にあるBMPファイルと仮定して。)
Private Sub Form_KeyPress(KeyAscii As Integer)
If KeyAscii = Asc("A") Then
Picture1.Picture = LoadPicture("C:\D.bmp")
ElseIf KeyAscii = Asc("B") Then
Picture1.Picture = LoadPicture("C:\E.bmp")
ElseIf KeyAscii = Asc("C") Then
Picture1.Picture = LoadPicture("C:\F.bmp")
End If
End Sub
※行頭には位置揃えのため全角スペースが入っています。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
画像の90度回転表示の処理時間...
-
画像処理
-
FlexGridで文字色を変更。
-
ピクチャボックスの使用方法
-
エクセルVBAでテキストボッ...
-
【VB6.0】 あるフォームから他...
-
テキストボックスかラベル上の...
-
VBAでcallで呼び出したsubを終...
-
ユーザーフォームへのデータ入...
-
vbsでスクロール位置を指定して...
-
VBA public変数はどのようなこ...
-
texで図と表を並べたい
-
ClickとChangeイベントの違いは...
-
VBでExcel上PictureBoxダブルク...
-
VB.netである関数を呼んで、そ...
-
Functionの戻り値を配列にした...
-
GetNextWindowがDLLファイルUse...
-
エクセル・VBAでテキストボック...
-
他のフォームから別のフォーム...
-
アクセスできない保護レベルエ...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
VB6でマウスのドラッグで範囲を...
-
SavePictureで保存できない
-
RadioButtonについて
-
ピッ、ってアルファベットでど...
-
Matlabでsin波を使って矩形波を...
-
円の自転のさせ方
-
ボールが壁に当たって跳ね返る...
-
画像の90度回転表示の処理時間...
-
クリップボードにアクティブウ...
-
Picture box の サイズを変更
-
画像をランダムに表示させたい...
-
if文で・・
-
Matlab/SimulinkのChirp信号に...
-
SCALEの使い方教えてください
-
ピクチャーボックスの画像を印...
-
PictureBoxでのアニメーション...
-
もぐらたたきのプログラミング
-
消す軌跡と残す軌跡
-
(VB)ピクチャボックスに表示し...
-
数値が1の時は1で、他の数値は...
おすすめ情報