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で質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) Powerpointでランダムな数字の結果を表示するマクロ 2 2023/08/04 10:04
- Excel(エクセル) excelvbaでスライドショーを作りたい 2 2023/04/20 14:32
- タブレット Kindl fire7を購入しましたが、ひらがな入力をしたいのですが、どこから変更できるのでしょうか 3 2022/09/04 20:19
- Windows 10 Windows 10の立ち上げについて 2 2022/04/17 13:36
- コーヒーメーカー・電気ケトル・電気ポット パルスオキシメーターの故障でしょうか? 自宅に帰りパルスオキシメーターの表示が消えて たので電源ボタ 2 2022/08/21 02:14
- gooブログ Twitterの動画画面をgooブログに埋め込めない 4 2022/06/03 16:40
- Mac OS Macで Microsoft Remote Desktop を使うとキーボードの配列が変わってしまう 1 2022/08/08 17:27
- Excel(エクセル) エクセルについて教えてください。 1 2023/03/03 08:38
- JavaScript jsで診断コンテンツのページ内切り替えについて 1 2023/04/14 17:31
- LINE スマホを替えてから、LINEの画像が表示されなくなりました 1 2022/10/04 13:41
このQ&Aを見た人はこんなQ&Aも見ています
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
C言語のOpenGLで複数のテクスチ...
-
vba初心者です。
-
ペイントソフトの作成方法
-
sublimit textっていうエディタ...
-
演奏記号の・・・・
-
三項でたとえば交換って
-
他のフォームから別のフォーム...
-
VB.NETでのイベントの途中終了
-
VS CodeでTEXファイルにPDF形式...
-
VBAでcallで呼び出したsubを終...
-
再帰呼び出し
-
エクセルVBAでテキストボッ...
-
タイムアウトする仕組みを作りたい
-
Excel ユーザーフォームで計算 ...
-
【VB6.0】 あるフォームから他...
-
C#のループでtextboxに値を入れ...
-
C言語のサフィックスについて
-
【VBS】クリップボード操作につ...
-
VB.NETのテキストボックスで、...
-
こうもりの撃退法
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
SavePictureで保存できない
-
ボールが壁に当たって跳ね返る...
-
Matlabでsin波を使って矩形波を...
-
PictureBoxでのアニメーション...
-
Matlab/SimulinkのChirp信号に...
-
FlexGridで文字色を変更。
-
ピッ、ってアルファベットでど...
-
SCALEの使い方教えてください
-
プログレスバーに似たコントロ...
-
Picture box の サイズを変更
-
(VB)ピクチャボックスに表示し...
-
画像をランダムに表示させたい...
-
ペイントソフトの作成方法
-
ピクチャーボックスの画像を印...
-
C言語のOpenGLで複数のテクスチ...
-
VBによる回帰直線のプログラム
-
文字間の幅の設定
-
画像処理
-
三項でたとえば交換って
-
VBA public変数はどのようなこ...
おすすめ情報