結果によって表示などを変えるときは、変数に結果に対応した文言を格納し、 ListBox1.Clear 'リストボックスのクリア Dim a As Integer 'a 乱数時間 Dim t As Long, r As Long 't 出題時の秒数、r 解答にかかった秒数 Dim j As String '判定の文言 a = Int(Rnd(1) * 8 + 3) '時間を乱数で決定、3~10(8+3秒未満)秒の間 t = Timer '現在の時間を記録 MsgBox a & "秒後にOKを押せ!" r = Timer - t '解答にかかった時間を算出 j = "誤差" & r - a & "秒 " '解答にかかった時間から出題時間を引いて誤差を算出 If r = a Then j = j & "ジャスト!" If r > a Then j = j & "時間かけ過ぎ!" If r < a Then j = j & "早いよ!" MsgBox j '判定の内容を表示 ListBox1.AddItem (j) 'リストボックスに記録 結果によって表示などを変えるときは、変数に結果に対応した文言を格納し、 最後にMsgBoxやAddItemを使って表示、登録させるとシンプルなプログラムになる
ListBox1.Clear ListBox2.Clear ListBox1.AddItem ("青方偏移") ListBox1.AddItem ("ワープ") ListBox1.AddItem ("バリヤー") ListBox1.Clear ListBox2.Clear ListBox1.AddItem ("A.オリゼー") ListBox1.AddItem ("C.トリコイデス") ListBox1.AddItem ("A.アセチ") ListBox1.Clear ListBox2.Clear ListBox1.AddItem ("錬金術") ListBox1.AddItem ("ポリウォーター") ListBox1.AddItem ("窒素爆弾")
※ListBox1_Clickの イベントプロシージャに記述 Dim a, b(4) As String Dim i As Integer a = ListBox1.Value '左のリストボックスで選択されている項目名 '生物学用語 If a = "A.オリゼー" Then b(1) = "学名:Aspergillus oryzae" b(2) = "和名:ニホンコウジカビ" b(3) = "澱粉を糖に分解する。" b(4) = "日本酒を作るときにかもしまくり" End If If a = "C.トリコイデス" Then b(1) = "学名:Cladosporium trichoides" b(2) = "和名:クラドスポリウム" b(3) = "お風呂の黒ずみの原因。" b(4) = "アニメではムーディ勝山が声を担当" If a = "A.アセチ" Then b(1) = "学名:Acetobacter aceti" b(2) = "和名:酢酸菌" b(3) = "ビールや日本酒を酢に変える。" b(4) = "醸造酒をかもすぞー!" '化学用語 If a = "錬金術" Then b(1) = "Alchemy" b(2) = "化学(Chemistry)の語源。" b(3) = "鉛等の卑金属から金等の貴金属を創る学問。" b(4) = "最新科学ではこれも可能だったり。" ※ListBox1_Clickの イベントプロシージャに記述
続き If a = "ポリウォーター" Then b(1) = "1966年にソ連で発見された。" End If If a = "窒素爆弾" Then b(1) = "窒素を1700℃、110万気圧で圧縮すると" b(2) = "ポリ窒素になると言われ、原爆を上回る爆弾になる。" b(3) = "現在の科学では、作製は不可能。" b(4) = "エヴァンゲリオンを始め、多くのSFで登場する。" '物理学用語 If a = "青方偏移" Then b(1) = "英単語:blueshift" b(2) = "光のドップラー効果で、近づく物体が青く見える現象。" b(3) = "分光学では、短波長シフトのことを指す。" b(4) = "" If a = "ワープ" Then b(1) = "空間の歪みを利用した超光速移動。" b(2) = "SFではほぼ必ず出てくる。" b(3) = "空間歪曲に莫大なエネルギーが必要なため、" b(4) = "実際は不可能とされている。" If a = "バリヤー" Then b(1) = "英単語:varrier、deflector shield(偏向シールド)" b(2) = "量子ビームや重力場などにより、主に物理的攻撃を遮断。" b(3) = "SFではほぼ必須の技術。" b(4) = "なぜか音を立てて割れる。" 続き
ListBox2.Clear For i = 1 To 4 ListBox2.AddItem (b(i)) Next 続き
If文の条件について -1 < b < 1を判定させたい場合、 If -1 < b < 1 Then ・・・・・ だと上手く動かない。 コンピュータは、数式の主語を明確にしないと理解出来ない。 したがって、-1 < b < 1は、 -1<b かつ b<1と分けて記述する必要がある If -1 < b And b < 1 Then ・・・・・ と分けて記述すると、意図通りに動く
人物系 スポーツ系 ゲーム、漫画系 アイデア紹介 情報の蓄積と検索を主としたもの データベース系プログラムの場合、情報の視認性や検索のしやすさ、 データの量や質などが重要となる場合が多い 人物系 スポーツ系 ゲーム、漫画系 b = TextBox1.Text If b = "ルフィ" Or b = "モンキー・D・ルフィ" Then ・・・・ If b = "ゾロ" Or b = "ロロノア・ゾロ" Then Cells(2, 2).Value = "剣士" ・
科学系 クイズ・テスト系 GotFocusイベントプロシージャ テキストボックスを使おうとしたときに実行される Private Sub TextBox1_GotFocus() TextBox1.Text = "" TextBox2.Text = "" TextBox3.Text = "" End Sub クイズ・テスト系
視線とマウスカーソルを誘導するインターフェイス 時間割検索 Cells(11, 3).Value = "" Dim a As String Dim b As String a = TextBox1.Text b = TextBox2.Text Dim y As Integer, x As Integer '今日の授業の応用 Dim s As String x = 8 '月~金以外はH列 If a = "月" Then x = 3 '月曜日ならC列 If a = "火" Then x = 4 '火曜日ならD列 If a = "水" Then x = 5 '水曜日ならE列 If a = "木" Then x = 6 '木曜日ならF列 If a = "金" Then x = 7 '金曜日ならG列 If x < 8 And y > 0 Then '月~金ならばxが8以下になる s = Cells(y + 2, x).Value Cells(12, 3).Value = s End If 単位確認 視線とマウスカーソルを誘導するインターフェイス
演算機能を利用したもの 家計簿 計算機 BMI ・・・毎年私をキョーフのどん底に・・・ 演算系のプログラムの場合、計算式の正確さと入力のしやすさ、 半自動入力などのインターフェイスが重要視される場合が多い。 家計簿 計算機 BMI ・・・毎年私をキョーフのどん底に・・・