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ランキング
-
PictureBoxでのアニメーション...
-
VBによる回帰直線のプログラム
-
他のフォームから別のフォーム...
-
ClickとChangeイベントの違いは...
-
C言語のサフィックスについて
-
【VB.NET】テキストボックスに...
-
プログラムの素朴な質問です 分...
-
sublimit textっていうエディタ...
-
演奏記号の・・・・
-
Functionの戻り値を配列にした...
-
アクセスできない保護レベルエ...
-
VB.NETでのイベントの途中終了
-
visual basic初心者です。 visu...
-
Vba 電卓のテキストボックスに...
-
VBA public変数はどのようなこ...
-
文字列を日付型情報として計算...
-
パーソナルXLSBのfuctionを呼び...
-
プロシージャを呼び出したプロ...
-
三項でたとえば交換って
-
VBでの入力値制限について
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
SavePictureで保存できない
-
文字間の幅の設定
-
Matlabでsin波を使って矩形波を...
-
ボールが壁に当たって跳ね返る...
-
FlexGridで文字色を変更。
-
[ASP]小数点第2位以下をカット!
-
C言語のOpenGLで複数のテクスチ...
-
VB6 ドラッグ&ドロップ
-
ピッ、ってアルファベットでど...
-
もぐらたたきのプログラミング
-
PictureBoxでのアニメーション...
-
グラフィックの表示について VB6
-
(VB)ピクチャボックスに表示し...
-
ホンテットマンションに乗った...
-
SCALEの使い方教えてください
-
VB6でマウスのドラッグで範囲を...
-
一次元静電粒子コードについて...
-
日付の計算
-
画像処理
-
sublimit textっていうエディタ...
おすすめ情報