Ⅱ7-1 プログラミング入門Ⅱ (No. 7) [1]条件がたくさんある分岐(場合分け型) (1-1) 多重分岐 基本型 [処理内容] 条件1が Yes のときに「処理1」をする。 条件1が No で、条件2が Yes のときに「処理2」をする。 条件1も条件2もどちらも No のときには「処理3」をする。 [フローチャート] [書き方] If 条件1 Then 条件1 No 条件2 Yes Yes 処理1 処理2 処 理 1 No ElseIf 条件2 Then 処 理 2 処理3 Else 処 理 3 End If 「ElseIf」は「Else」と「If」の間を空けずに書く。 「ElseIf 条件 Then 処理」の部分はいくつあってもよい。 条件A No 条件B No 条件C Yes Yes Yes 処理A 処理B 処理C No ・・・ No Yes ・・・ ・・・ If 条件A Then 処 理 A ElseIf 条件B Then 処 理 B ElseIf 条件C Then 処 理 C ElseIf ・・・ : ElseIf 条件X Then 処 理 X Else 処 理 Y End If 条件X 処理X 処理Y Ⅱ7-2 (1-2) 成績判断(場合分け型) [問題]試験の点数を変数 TEN に入力し、TEN が 80 以上のときは「優です」、70 以上 80 未満のときは「良 です」、60 以上 70 未満のときは「可です」、60 未満のときは「不可です」と出力する。 (後期プリント No.2 参照) ① Excel を立ち上げる。 ② Excel のリボンの[開発]タブ>[コード]グループ>[Visual Basic]を選んで、VBE ウィンドウを開く。 ③ さしあたり Excel は使わないので、Excel のウィンドウは邪魔にならないように最小化( )しておく。 ④ ⑤ ⑥ ⑦ Visual Basic Editor の[挿入]メニュー > 「ユーザーフォーム」を選ぶ。 ユーザーフォームに、コマンドボタン(Command Button)を1つ付け加える。 そのコマンドボタンの言葉(Caption)を「成績判断」に変える。 コマンドボタンをダブルクリックして、コードウィンドウを開く。 [フローチャート] 場合分け型 はじめ TEN 入力 No No No Yes Yes Yes “優です” 出力 “良です” 出力 “可です” 出力 “不可です” 出力 [プログラム] おわり Private Sub CommandButton1_Click() Dim TEN As TEN = InputBox("点数を入力してね") End Sub TEN に色々な値を入れて実行してみよう。(答が正しいか自分で考えて、 35 と入力 ⇒ 出力結果( 60 と入力 ⇒ 出力結果( 75 と入力 ⇒ 出力結果( )..... にチェックする) 90 と入力 ⇒ 出力結果( ) ...... E )..... )..... A E A E -20 と入力 ⇒ 出力結果( A 200 と入力 ⇒ 出力結果( E ) ... ) .... E [発展問題]TEN が「0 より小さい」または「100 より大きい」ときは、「入力が違うよ」と出力するように 書き加える。 プログラムができたら、ファイルを名前を付けて保存しておく。 ⇒ prog2-7.xlsm Ⅱ7-3 (1-3) UserForm の色を変えるプログラム 入力した数値によって UserForm の色を変えるプログラムを作ってみましょう。 [問題]変数 IRO に数字を入力する。入力した数字が 1 だったら UserForm1 の色を「明るい赤」に、2 だった ら「明るい青」に、3 だったら「明るい緑」に変える。それ以外だったら「指定が間違ってます」とメ ッセージボックスを表示する。 ① ユーザーフォームに、コマンドボタン(Command Button)を1つ貼り付ける。 ② そのコマンドボタンの言葉(Caption)を「色変え」に変える。 ③ コマンドボタンをダブルクリックして、コードウィンドウを開く。 [フローチャート] はじめ IRO 入力 明るい赤 にする 明るい青 にする 明るい緑 にする “指定違い” 出力 Yes/No を 付けるのを 忘れないよ うに。 おわり [プログラム] Private Sub CommandButton2_Click() Dim IRO As IRO = InputBox("色番号を入力してね") End Sub [発展問題]他の色も追加してみる。 4 だったら「○○色」、5 だったら「○○色」、・・・。 プログラムができたら、ファイルを上書き保存しておく。(ファイル名 ⇒ prog2-7.xlsm) Ⅱ7-4 UserForm の色の指定 ユーザーフォームの色(背景色=backcolor)をプログラム中で変えるには、次のように書く。 [書き方] ユーザーフォーム UserForm1 の背景色を変えたいとき UserForm1.BackColor = QBColor(△△) プログラム入力の際は、userform1.(←小文字でよい、ドットまで入力)と入力すると、その 後ろの用語の候補が表示されるので、その中から BackColor を選び、続けて = を入力してい くとよい。 QBColor 関数 QBColor(△△)は、色を指定する関数である。△△の部分には 0~15 の数字(コード)を指定する。 各コードに対する色の対応は、下の表のようになっている。 コード 0 1 2 3 4 5 6 7 色 黒 青 緑 シアン(水) 赤 マゼンタ(紫) 黄 白 コード 8 9 10 11 12 13 14 15 色 灰色 明るい青 明るい緑 明るいシアン 明るい赤 明るいマゼンタ 明るい黄 明るい白 (例)UserForm1 の背景色を「明るい赤」に変えたいとき UserForm1.BackColor = QBColor(12) Memo RGB 関数 RGB 関数を使うと、QBColor 関数にはない微妙な色を指定することができる。 RGB(○○, △△, ××) ○○の部分には赤(Red)の強さを、△△の部分には緑(Green)の強さを、××の部分には青(Blue)の強 さを、それぞれ 0~255 の数字で指定する。数字が大きいほど、その色が強く(明るく)なる。 (例)UserForm1 の色をピンクに変えたいとき UserForm1.BackColor = RGB(255,192,203) Ⅱ7-5 [2]文字のあつかい 変数には数字だけでなく文字を入れることもできます。ただし、・・・。 (2-1) UserForm の色を変えるプログラム(その2) 前のプログラムを文字を入力するように変えてみましょう。 [問題]変数 IRO に文字を入力する。入力した文字が red だったら UserForm1 の色を明るい赤に、blue だった ら明るい青に、green だったら明るい緑に変える。それ以外だったら、「指定が間違ってます」とメッ セージボックスを表示する。 ① ② ③ ④ ユーザーフォームに、コマンドボタン(Command Button)を1つ付け加える。 そのコマンドボタンの言葉(Caption)を「色変え2」に変える。 コマンドボタンをダブルクリックして、コードウィンドウを開く。 前のプログラムをコピーして貼り付け、必要なところを書き換える。 [フローチャート] はじめ IRO 入力 明るい赤 にする 明るい青 にする 明るい緑 にする “指定違い” 出力 Yes/No を 付けるのを 忘れないよ うに。 おわり 文字を使うときのポイント [プログラム] Private Sub CommandButton3_Click() Dim IRO As IRO = InputBox("色の名前を入力してね") End Sub うまくいかないときは …… [ヒント]: 前期プリント No. Ⅰ10-8 (2-6) のあたり。 プログラムができたら、ファイルを上書き保存しておく。(ファイル名 ⇒ prog2-7.xlsm) Ⅱ7-6 (2-2) UserForm の色を変えるプログラム(発展問題) 発展問題(その1) ほかの色も付け加える。 (注) マゼンタ ⇒ magenta、 シアン⇒ cyan 発展問題(その2) 入力する文字(色の名前)を漢字でもいいようにする。 入力した文字が「赤」でも「red」でも UserForm1 の色を明るい赤に、「青」でも「blue」でも 明るい青に、「緑」でも「green」でも明るい緑になるようにする。 (ヒント) And か Or を使う。使い方は考えよう。 発展問題(その3) 色を変えるときに、色を変える前に「赤にします」・「緑にします」などと、メッセージボックスで 出力する。 締切:11/24(木) Ⅱ7-712 時 プログラミング入門Ⅱ (No. 7) 学籍番号: 氏 宿題 名: 井芹研究室へ クラス: [3]練習問題:年号判断 [問 題]西暦年を変数 SEI に入力して、その値が 1989 以上なら「それは平成です」、1988 と 1926 の間 なら「それは昭和です」、1925 と 1912 の間なら「それは大正です」、1911 と 1868 の間なら 「それは明治です」と出力する。どれでもなければ「そんなの知らん」と出力する。 [発展問題]たとえば、入力した西暦年が 2016 だったら「それは平成 28 年です」、1975 だったら「それは昭 和 50 年です」というように、年号の年も計算して「それは○○××年です」と出力するようにす る。 ヒント: • 年号の年用の変数も作っておく。たとえば、NEN とする。 • 西暦年(SEI)が 1989 以上だったら、SEI から???(←ある数値)を引くと平成の NEN にな る。SEI が 1926 以上だったら、別の数???を引くと昭和の NEN になる。(???の数値 は自分で考えよう。) • 計算できたら、言葉と NEN をうまくつなげて出力させる。 ※[問題]と[発展問題]のどちらか一つだけ解けばよいです。 (できるだけ発展問題にチャレンジしよう!) [フローチャート] 《場合分け型》で考える。 今日の授業や問題に関する質問・感想を書きなさい。 Ⅱ7-8 [プログラム] Private Sub CommandButton4_Click() End Sub
© Copyright 2024 Paperzz