VBプログラミング 2020版
§ はじめに/受講前の準備
- 本ページは,M科2年次開講科目「VBプログラミング」のWeb教材です。
- 寝屋川キャンパスの10号館情報処理室では Visual Basic 2013 を利用します。また,自宅のPCで利用する場合は Visual Basic 2019 (Visual Studio Community 2019 に含まれる)を使用ください。
【重要】Visual Studio Community 2019 のインストール
前期授業期間が始まるまでに,個人所有のパソコンに「Visual Studio Community 2019」をインストールしておいてください。
自宅にパソコンがない場合や,光回線や常時接続可能なモバイルルータなどのネット環境がない場合は,諏訪(主担当)のメールアドレス: suwa@mec.setsunan.ac.jp まで必ず連絡・相談ください。
インストール方法の補足説明:
- 手順1 飛ばしてよい(省略)。
- 手順2 Visual Studio の[ダウンロード] → コミュニティ[無料ダウンロード]を選択する。(ダウンロード時にメール登録するウィンドウが開くが,登録せず閉じてよい)
- 手順3 ダウンロードフォルダにある軽量インストーラ「vs_community_XX.exe」を実行する。インストール準備が終わるまでしばらく待つ。
- 手順4 .NETデスクトップ開発を選択する(右上四角にチェックを入れる) → [インストール]を選択する。
※ ファイル合計が4.7GBほどあるのでダウンロードにそれなりの時間がかかる。 - 手順5〜手順7 飛ばしてよい。
- 手順8 インストール終了後のサインイン → 大学(MicroSoft 365)のメールアドレスとパスワードを入力する。サインインできない場合は,
演習の進め方
- 11週すべてオンライン授業形式とします。
- 金曜3限目にTeamsでライブ配信するか,録画映像を配信します。
- プログラミング初心者を念頭に,毎回,例題や演習の解説を進めて行きます。
- 各回の内容と宿題の目安は次のとおりです。(右サイドバーのショートカット・メニュー参照)
01回目:概説1 例題1
02回目:概説2 例題2 〔事後学習1〕
03回目:演習1 〔事後学習2〕
04回目:演習2 〔事後学習3〕例題3-演習3 〔事後学習4〕
05回目:演習4 〔事後学習5〕
06回目:理解度確認テスト
07回目:演習5 〔事後学習6〕
08回目:例題6 演習6 演習7 〔事後学習7〕
09回目:VBグラフィックス基礎〔演習G1,演習G2〕
10回目:VBグラフィックス応用:生産システムの問題への応用〔演習G3〕
11回目:達成度評価テスト
- 下線の演習は1週間以内を目処に提出してください。
- 下線のテストは指定された期日・時間内に提出してください。
- 〔カッコ〕の宿題課題は次回開講までに提出してください。
- PCやネット環境により提出が遅れたとしても,完成次第,必ず提出ください。
- 中級者以上の履修生は演習課題を先に進めてもかまいませんが,あくまでも自力で行ってください。
演習課題とテスト
次の1.〜3.の演習課題とテストは提出必須です。4.の課題は必須ではありませんが,提出物は評価します。
- 5回目に理解度確認テスト(ペーパーテスト)を実施します。
- 11回目に達成度評価テスト(ペーパーテスト)を実施します。
- 計17種類の課題を提出してください。
- 演習1から7までの実行画面とソースファイル。
- 事後学習1から7までの実行画面とソースファイル。
- VBグラフィックス演習G1〜G3の実行画面とソースファイル。 - 応用編:電卓アプリ開発 にもぜひチャレンジしてください。提出分については評価対象とします。
- 演習課題は未完成でも部分点評価しますので,授業期間中にすべて提出してください。
- 事後学習は演習課題からの派生となることが多いです。適宜,演習課題プロジェクトを「コピー」し事後学習用のプロジェクトを用意することをおすすめします。
演習課題の提出方法
手順は次のとおりです。操作の詳細については 授業情報ページにアクセスし『レポートやテストの提出について』をよく読んでください。
- 各課題の実行画面とソースコードをスマホで撮影・PDF化する。
ソースコードと実行画面のウィンドウを,大きさを調整しつつうまく重ねて一画面におさめるようにする。
- ファイル名は 学籍番号-プロジェクト名 としてください:
(例)学籍番号194789の履修生が事後学習1を提出する場合,ファイル名は 194789-jigo01.pdf となります。すべて半角文字です。
- 演習課題の提出先はWebFolder:諏訪(主担当)の提出フォルダ内「VBプログラミング」に提出してください。
§ プロジェクト(ファイル)の管理
参考までにプロジェクトを開いて簡単なプログラムを作成するまでの解説資料(VB2005版)があります。ここをクリック
新規プロジェクトを開く
- テンプレート: Visual Basic
- アプリケーション: Windowsフォーム
- 名前: ソリューション名・プロジェクト名を指定する。例:sample01
- プロジェクト名を指定しない場合でも,WindowsApplication1,WindowsApplication2, ... のように自動的にソリューション名/プロジェクト名が付く → 管理が煩雑になるので注意する。

Visual Studio 2019 の場合



既存のプロジェクトを開く
- ドキュメントフォルダ内「visual studio 2013Projects」フォルダを開くと,作成したプロジェクトごとのフォルダが見える。
VS2019の場合:soure → reposフォルダ下にプロジェクトが保存される。 - 開きたいプロジェクトのフォルダをダブルクリックする。
- 例えばプロジェクト名が 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 がなくなっていれば書き加えること。
- 最初の二重引用符「“」は次の二重引用符「”」で閉じていなければならない。
- 文字列同士の結合子である「&」 前後が半角スペースで区切られているかどうか確認すること。
- 半角のスペースの代わりに全角のスペースを使っていないかどうか確認すること。
画面がおかしい/ウィンドウがない!


§ 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ちょうど」を表示させる。
§ 自力でプログラミング
- ここからは(できる限り)自分で考え悩み,試行錯誤し,自力で作成していくこと。
- ラベル(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〕プロジェクト名に注意


【関数と型】Val関数: Val( Str As String ) As Double |
---|
● Val関数は実数(Double)型である。 |
● Valには一つの文字列(String)型の引数(Str)が必要である。 |
● ValはString型のデータ(Str)を,Double型に変換する関数である。 |
演習3〔practice03〕
- 例題3のプロジェクトをそのまま利用すること。
- 減算(ー),乗算(*),除算(/)の三つのボタンを追加する。
事後学習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

事後学習7〔jigo07〕
1.と2.を完成させなさい。3.はオプション。

- 空白を適切に挿入し,整列表示させる。
- LabelのFontプロパティは,「MSゴシック」や「MS明朝」などの等幅フォントに変更しておくこと。
- 指定された連続する段(2段から8段など)のみを表示させるようにする。

§ VBグラフィックス
- 基礎
- 演習G1と演習G2のソースコードと実行画面を提出する。(1週間以内)
- 演習G1では角周波数を変更し,例図とは異なるsin波を出力するように。 - 応用:生産システムの問題
- 演習課題G3を提出する。
- ソースコードは長いので,機械1もしくは機械2のバー描画のコードを撮影すること。
§§ テスト
理解度確認テスト (現在未公開)
達成度評価テスト (現在未公開)

Made in RapidWeaver