プログラミング入門Ⅱ (No. 7)

Ⅱ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