VB (Visual Basic) プログラミング 2020
§1 はじめに/受講上の注意
- 本ページは,M科2年次開講科目「VBプログラミング」のWeb教材です。
- 本ページの図は,Visual Basic 2010 です。寝屋川キャンパスの10号館情報処理室では Visual Basic 2013 を利用します。また,自宅のPCで利用する場合は Visual Basic 2019 (Visual Studio Community 2019 に含まれる)を使用ください。
進め方
- 11週すべてオンライン授業形式とします。
- 金曜4限目にTeamsでライブ配信するか,録画映像を配信します。
- プログラミング初心者を念頭に,毎回,例題や演習の『解説』を進めて行きます。
- 中級者以上の履修生は,演習課題を先に進めてもかまいませんが,あくまでも自力で行ってください。
- 各回(解説)の目安は次のとおりです。(右サイドバーのショートカット・メニュー参照)
01回目
02回目
03回目
04回目
05回目
06回目
07回目
08回目
09回目
10回目
11回目
評価
〔評価その1〕11回目に達成度確認テスト(ペーパーテスト)を実施します。
〔評価その2〕§2と§3にある計15種類の演習課題を提出してください。
- 演習1から7までのソースファイル(=7種類)。
- 事後学習1から7までのソースファイル(=7種類)。
〔評価その3〕§4 VBグラフィックスの演習課題を提出してください。
- 演習課題は未完成でも部分点評価しますので,授業期間中にすべて提出してください。
- 事後学習は演習課題からの派生となることが多いです。適宜,演習課題プロジェクトを「コピー」し事後学習用のプロジェクトを用意することをおすすめします。
課題の提出物
- 演習課題の提出先はWebFolder:諏訪(主担当)の提出フォルダ内「VBプログラミング」に提出してください。
- 一つのプロジェクトについて複数のファイルが生成されます。このうち Form1.vb を提出します。
プロジェクト(ファイル)の管理
参考までにプロジェクトを開いて簡単なプログラムを作成するまでの解説資料(VB2005版)があります。ここをクリック
新規プロジェクトを開く
- テンプレート: Visual Basic
- アプリケーション: Windowsフォーム
- 名前: ソリューション名・プロジェクト名を指定する。例:sample01
- プロジェクト名を指定しない場合でも,WindowsApplication1,WindowsApplication2, ... のように自動的にソリューション名/プロジェクト名が付くが,管理が煩雑になる恐れあり!

既存のプロジェクトを開く
- ドキュメントフォルダ内「Visual Studio 2010」フォルダにある「Projects」フォルダを開くと,作成したプロジェクトごとのフォルダが見える。
- 開きたいプロジェクトのフォルダをダブルクリックする。
- 例えばプロジェクト名が sample01 の場合,sample01.sln (ファイル拡張子sln)をダブルクリックするとプロジェクトが開く。
プロジェクトの保存
- 「すべてを保存」ツールボタンをクリックする。

プロジェクトの実行と停止
- プロジェクトの実行: 「デバッグ開始」ボタン
をクリックするか,もしくは,F5キーを押す。
- プロジェクトの停止: 「デバックの停止」ボタン
をクリックするか,実行中のアプリケーションを終了する。
★ プロジェクトのコピー(バックアップ)
※ (例) 対象のプロジェクト名を calc とする。- ドキュメントフォルダ内「Visual Studio 2010」フォルダにある「Projects」フォルダを開く。
- プロジェクトフォルダ「calc」を右クリックし,「コピー」を選択する。
- Projectsフォルダ内の空いている箇所で右クリックし,メニューから「貼り付け」を選択する。
- Projectsフォルダ内に
が作成されるので,このフォルダの名前を calc01 等に変更する。 ※ 新たに作成したフォルダ内の主要なファイル(.sln .vbproj .exe など)の名前は calc のままであることに注意する。
★ よくある質問
編集できないとき
- デバッグが「停止」しているかどうか確認すること。
- Insertキーを押して「上書きモード」になっていないかどうか確認する。「挿入モード」で編集する。
デバッグ開始ボタンを押したらエラーがでるとき
- フォルダー名,Form1.vb,ソリューション名を勝手に変更していないかどうか確認する。
- Public Class で始まれば End Class で終わらなければならない! 最後のEnd Classがない場合は書き加えること。
- If で始まったら End If で終わらなければならない。最後の End If がなくなっていれば書き加えること。
- 最初の二重引用符「“」は次の二重引用符「”」で閉じていなければならない。
- 文字列同士の結合子である「&」 前後が半角スペースで区切られているかどうか確認すること。
- 半角のスペースの代わりに全角のスペースを使っていないかどうか確認すること。
§2 VBの作法に慣れる
- プロジェクトファイルの管理(新規作成・保存・読み込み)に慣れる。
- フォームへのコントロールの配置・プロパティ設定・ソースコードの記述といった一連の流れを理解する。
例題1 〔sample01〕
- 起動時,ラベル(Label1)には「??」が表示されている。
- ボタン(Button1)をクリックすると,ラベル内にO(ラージ・オー)が表示される。
- もう一度ボタンをクリックすると,X(ラージ・エックス) が表示される。
- クリックするたびに O と X が交互に表示される。

- フォーム上に2つのコントロール「Label」と「Button」を配置する。
- 大きさやラベルは適宜変更する。
- Button1をダブルクリックして,下図の赤枠を入力する。

例題2 〔sample02〕
- 起動時,TextBox1,TextBox2,TextBox3は空白。
- 「名前」欄に適当な名前Aを,「性別」欄に Male か Female かを入力する。
- 「あいさつ」ボタンをクリックすると,TextBox3に...
(Maleの場合)A君,こんにちは
(Femaleの場合) こんにちは,Aさん

- 上図のように,Label,TextBox,Buttonコントロールを配置する。
- Button1およびButton2をそれぞれダブルクリックし,下図の赤枠を入力する。

事後学習1〔jigo01〕
- 新たにテキストボックスを作成し,名前(AAとする)と性別に応じて次のメッセージを表示させる。
(maleの場合) Hello, Mr.AA!
(femaleの場合) Hi, Mrs.AA. How is going?
演習1〔practice01〕
- フォームに3つのラベルを貼り付けて,それぞれ「数値の大小判定」,「数値入力欄」,「結果」と表示する。
- 次に,空白のテキストボックス2つと「判定」と表示したボタン1つを作成する。
- 数値入力欄と表示したテキストボックス(TextBox1)に数値を入力して「判定」ボタンをクリックすると,その数値が20より大きいか,あるいは,20以下であるかを判定する。
- 判定結果を2つめのテキストボックス(TextBox1)に表示する。


事後学習2〔jigo02〕
- 演習1において新たにテキストボックスを作成し,数値入力後,判定ボタンをクリックするたびに「10より大きい」,「10未満」あるいは「10ちょうど」を表示させる。
§3 自力でプログラミング
- ここからは(できる限り)自分で考え悩み,試行錯誤し,自力で作成していくこと。
- ラベル(Label),テキストボックス(TextBox),ボタン(Button)等のツールは必要に応じて適当な場所に配置するように。(とくに指定はしません。)
- 変数名もとくに指定しないので,適宜,宣言・利用するように。
演習2〔practice02〕
- sample01の応用。
- 起動時,ウィンドウ中央に○が表示されている(下図右)。※ ラベル(Label)を利用する。
- ボタンをクリックするたびに,△ X ○ △ X ○ ... と三種類の図形が順に繰り返し表示される。



事後学習3〔jigo03〕
次の1.を完成させなさい。2.は未完成でもよい(オプション)。
- ボタンをクリックするたびに,ラベルの背景色(BackColorプロパティ)が変わるようにする。たとえば,○の場合は赤(Color.Red),△の場合は青(Color.Blue),Xの場合は緑(Color.Green)など。
- ○△ ○△X ○ ○△ ○△X と繰り返し表示させる。
例題3〔sample03〕
- 起動時およびClearボタンクリック時は,a欄・b欄・Result欄はすべて空白とする。
- a欄とb欄に数値を入力し,+ボタンをクリックすると,その合計がResult欄に表示される。
- a欄もしくはb欄に数値が入力されていない(空白のままの)ときは,+ボタンをクリックしても加算結果は出力されないようにする。
- Closeボタンをクリックすると,プログラム終了。


【関数と型】Val関数: Val( Str As String ) As Double |
---|
● Val関数は実数(Double)型である。 |
● Valには一つの文字列(String)型の引数(Str)が必要である。 |
● ValはString型のデータ(Str)を,Double型に変換する関数である。 |
演習3〔practice03〕
- 減算(ー),乗算(*),除算(/)の三つのボタンを追加する。
事後学習4〔jigo04〕
1.を完成させなさい。2.はオプション。
- b欄が0(ゼロ)となっているときに除算を実行した場合,Result欄に「Divided by zero.」と表示させる。
- 各テキストボックスの表示を「右詰め」に設定する。(Textalignプロパティの値をRightに変更する。)

演習4〔practice04〕
- 元金(G)を年率(R)でY年の複利で預けたときの元利合計を計算する。(複利計算では利子が付くたびに,その利子を元金に加えて新たな元金にする方式。)
- 計算式: 元利合計 = 元金 * ( 1+ 利率 )^Y ※ ^Y はY乗を表す。

- Form.vb の先頭(Public Class Form1)の直下に,元金と利率を保持するための変数を宣言する。本演習では,実数型の変数を用意する。

事後学習5〔jigo05〕
1.を完成させなさい。2.はオプション。
(D>0の場合)
(D=0の場合)
(D<0の場合)
- 元利合計のうち,利息分を表示させる。
- 単利計算による元利合計(=元金 * ( 1+ 利率 * 年数))を表示させる。また,複利計算での利息と,単利計算での利息の差を表示させる。
※ 元利合計や利息分の整数値を取り出したい(小数点以下は表示させない)場合は,CInt( 値 ) 関数を用いる。使い方は Val関数と同じ要領。
演習5〔practice05〕
- 一般の二次方程式を解く。3つのパラメータ a,b,c を入力して,計算を実行させる。
- 解の表示は,判別式 D=b^2-4*a*c の値に応じて場合分けする。
- 平方根の計算: Math.Sqrt( 値 )



事後学習6〔jigo06〕
1.を完成させなさい。2.はオプション。

(実行結果)

- aにゼロが入力されたとき(a=0)の処理を追加する。
- 判別式 D<0 の場合に(エラーメッセージでなく)虚数解を表示させる。
例題6〔sample06〕
- 新規プロジェクトのForm(Form1)上にLabel(Label1)を配置する。
- Form1_Load プロシージャ内(Form1をクリック)に次のソースコードを記述する。


演習6〔practice06〕
- 例題6において,「9 8 7 ... 2 1」と逆順に表示させてみよう。
演習7〔practice07〕
- Forループを用いて下図のような「九九の表」を作成する。
- 改行する: Label1.Text = Label1.Text & ControlChars.CrLf
