ゼロからはじめるVisual Basic入門...

17

Transcript of ゼロからはじめるVisual Basic入門...

Page 1: ゼロからはじめるVisual Basic入門 サンプルページでした.この授業の内容を基にして,2005年に「ゼロからはじめるVisual Basic.NET入門- 基礎からゲーム作成まで-」を出版しました.それから7年が経過し,Visual
Page 2: ゼロからはじめるVisual Basic入門 サンプルページでした.この授業の内容を基にして,2005年に「ゼロからはじめるVisual Basic.NET入門- 基礎からゲーム作成まで-」を出版しました.それから7年が経過し,Visual

「ゼロからはじめる Visual Basic 入門」

サンプルページ

この本の定価・判型などは,以下の URL からご覧いただけます.

http://www.morikita.co.jp/books/mid/084991

※このサンプルページの内容は,初版 1 刷発行時のものです.

Page 3: ゼロからはじめるVisual Basic入門 サンプルページでした.この授業の内容を基にして,2005年に「ゼロからはじめるVisual Basic.NET入門- 基礎からゲーム作成まで-」を出版しました.それから7年が経過し,Visual

本書の演習問題の解答は下記 URLからダウンロードできます.http://www.morikita.co.jp/soft/84991/

VISUAL BASIC 前付.indd 2VISUAL BASIC 前付.indd 2 2012/07/17 15:19:262012/07/17 15:19:26

Page 4: ゼロからはじめるVisual Basic入門 サンプルページでした.この授業の内容を基にして,2005年に「ゼロからはじめるVisual Basic.NET入門- 基礎からゲーム作成まで-」を出版しました.それから7年が経過し,Visual

i

はじめに

 私は,平成元年に教員となってから 20年以上,プログラミングの授業を担当しています.教員としてスタートしたのが,長崎女子短期大学の生活科学科でした.家政科を改組して作った学科だったので,学生はすべて女性でかつ文系志向でした.ワープロや表計算ソフトの使い方には興味をもつものの,プログラミングにはまったく興味をもってもらえず,教員生活 1年目は大変苦労しました.どのようにしたらプログラミングの授業に興味をもってもらえるかと考えぬいた結果はじめたのが,オリジナルゲームを作るという目標をもって授業を進めていくというものでした.この授業の内容を基にして,2005年に「ゼロからはじめる Visual Basic.NET入門-基礎からゲーム作成まで-」を出版しました.それから 7年が経過し,Visual Basic.NET 2003

から Visual Basic 2005,2008,2010とソフトウェアのバージョンアップが繰り返され,開発環境の名称から「.NET」の文字が消え若干ですが仕様も変わりました.そこで,この変更に対応させるとともに私がこの本を使って授業をしてきた経験を活かしてもっとわかりやすい本になるように,このたび,本書を執筆しました.私は授業において「どんな複雑なプログラムでも,順次処理,選択処理,繰り返し処理の三つを組み合わせて作ることができる」とよく言っており,このことが伝わるようにフローチャートを増やしました.また,急に難しくなっていると感じたところには新たに例題を追加しました. 本書は大学,高専,専門学校などの教科書として使えるように書いているため,内容をあえて絞り込んでいますが,本書の内容だけでも面白いゲームを作ることができます.しかし,それだけでは満足せずに動きのあるゲームを作りたいという人もいると思いますので,そのようなモチベーションの高い人のために追加教材を出版社のホームページからダウンロードできるようにしました.ぜひ参考にしてください.また,私の教えている学生の作ったゲームのうち,よくできたものも公開しますので,オリジナルゲーム作りの参考にしてください. 最後になりましたが,このたびの Visual Basic版の出版を担当していただきました森北出版の上村沙帆様,塚田真弓様に心からお礼を申しあげます.また,校正を手伝ってくれた,東海大学電子知能システム工学科 2年の嶽川誠仁君,国枝桂亮君,藤春浩貴君,荒巻賢也君および 1

年生のときに授業で作成したオリジナルゲームをWebで公開することを快諾してくれた東海大学電子知能システム工学科 3年の原田裕二郎君,児玉純君に感謝します.

 2012年8月著者

VISUAL BASIC 前付.indd iVISUAL BASIC 前付.indd i 2012/07/17 15:19:272012/07/17 15:19:27

Page 5: ゼロからはじめるVisual Basic入門 サンプルページでした.この授業の内容を基にして,2005年に「ゼロからはじめるVisual Basic.NET入門- 基礎からゲーム作成まで-」を出版しました.それから7年が経過し,Visual

ii

目  次

第 1章 はじめてのプログラミング 1

 1.1 Visual Basicについて 1   1.2 起動とプロジェクトの新規作成 2   1.3 プログラム作成 5   1.4 プロジェクトの呼び出しと修正 15   練習問題 1 24  

第 2章 順次処理 25

 2.1 変 数 25   2.2 定 数 27   2.3 算術演算 28   2.4 関 数 29   2.5 コメント 31   練習問題 2 34  

第 3章 選択処理 35

 3.1 If文による分岐 1(条件により実行する処理を選択) 35   3.2 If文による分岐 2(条件成立時に処理を実行) 38   3.3 If文による分岐 3(三つ以上からの選択) 40   3.4 Select Case文による分岐 43   3.5 ラジオボタン 45   3.6 チェックボックス 47   練習問題 3 48  

第 4章 繰り返し処理 50

 4.1 For…Next文による繰り返し 50   4.2 Do…Loop文による繰り返し 55  

VISUAL BASIC 前付.indd iiVISUAL BASIC 前付.indd ii 2012/07/17 15:19:272012/07/17 15:19:27

Page 6: ゼロからはじめるVisual Basic入門 サンプルページでした.この授業の内容を基にして,2005年に「ゼロからはじめるVisual Basic.NET入門- 基礎からゲーム作成まで-」を出版しました.それから7年が経過し,Visual

iii目  次

 4.3 多重ループ構造 59   練習問題 4 61  

第 5章 配 列 63

 5.1 1次元配列 63   5.2 多次元配列 74   練習問題 5 77  

第 6章 ファイル処理 78

 6.1 シーケンシャルファイルへの出力 78   6.2 シーケンシャルファイルの読み込み 81   6.3 ランダムファイル 85   練習問題 6 90  

第 7章 プロシージャ 91

 7.1 Subプロシージャ 91   7.2 Functionプロシージャ 95   練習問題 7 96  

第 8章 グラフィックス 98

 8.1 描 画 98   8.2 画像処理 103   練習問題 8 110  

第 9章 簡単なゲーム 112

 9.1 乱数の発生 112   9.2 タイマー 115   9.3 いろいろなゲーム 117   練習問題 9 125  

さくいん 126  

VISUAL BASIC 前付.indd iiiVISUAL BASIC 前付.indd iii 2012/07/17 15:19:282012/07/17 15:19:28

Page 7: ゼロからはじめるVisual Basic入門 サンプルページでした.この授業の内容を基にして,2005年に「ゼロからはじめるVisual Basic.NET入門- 基礎からゲーム作成まで-」を出版しました.それから7年が経過し,Visual

VISUAL BASIC 前付.indd ivVISUAL BASIC 前付.indd iv 2012/07/17 15:19:292012/07/17 15:19:29

Page 8: ゼロからはじめるVisual Basic入門 サンプルページでした.この授業の内容を基にして,2005年に「ゼロからはじめるVisual Basic.NET入門- 基礎からゲーム作成まで-」を出版しました.それから7年が経過し,Visual

1

CHAPTER

1.1  Visual Basicについて

 コンピュータに仕事をさせるためには,仕事の手順をコンピュータが理解できる言葉で書かなければなりません.この言葉がプログラミング言語です.プログラミング言語は,使用目的や使用環境により使い分けられています.表 1.1は,代表的なプログラミング言語とその使用目的です.

表 1.1 おもなプログラミング言語とその使用目的プログラミング言語 使用目的Fortran 科学技術計算用COBOL 事務処理用C言語 システム開発用,制御プログラム開発用Basic 教育用,パソコン用Visual C++ Windowsソフト開発用Visual Basic Windowsソフト開発用

 今回学んでいく,Visual Basicは,パソコンにおいて最も普及しているオペレーティングシステム(OSまたは基本ソフトともいう)であるMicrosoft Windows用のアプリケーションソフト開発のために作られたプログラミング言語です.教育現場で一番多く利用されてきたプログラミング言語である Basicを基に作られています.最初のバージョンが発表されたのが,1991年で,その後,何度かのバージョンアップを繰り返し,本書を書いている時点での最新バージョンは Visual Basic 2010です.Visual Basicは,Basicのような単なるプログラミング言語ではなく,商用アプリケーションを開発できる高機能なソフトウェア開発環境です.現在,Visual Basicは単体では販売されておらず,Visual C++,Visual C#などの言語と一緒に Visual

Studioとして販売されています.しかし,Visual Basic 2010 Expressエディションというものがあり,ダウンロードして無償で利用できます.プログラミングの学習のためだけであればこちらで十分です.

1 はじめてのプログラミング 本章では,まず,Visual Basicとはどういうものかについて説明します.次に,「カウントアップ」というボタンを押すと表示されている値が 1ずつ増加し,「カウントダウン」というボタンを押すと表示されている値が 1ずつ減少する簡単な機能のプログラムを作り,これを通して Visual Basicによるプログラム開発の概要を学びます.

VISUAL BASIC 1_2章.indd 1VISUAL BASIC 1_2章.indd 1 2012/07/17 15:21:512012/07/17 15:21:51

Page 9: ゼロからはじめるVisual Basic入門 サンプルページでした.この授業の内容を基にして,2005年に「ゼロからはじめるVisual Basic.NET入門- 基礎からゲーム作成まで-」を出版しました.それから7年が経過し,Visual

2

はじめてのプログラミング第1章

1.2  起動とプロジェクトの新規作成

 Visual Basicの起動とプロジェクトの新規作成の方法を Visual Basic 2010

Express Editionで説明します.なお,バージョンやエディションが異なる場合は,操作方法が若干異なりますので,本節の起動とプロジェクトの新規作成の部分については,それぞれのバージョンやエディションのマニュアルまたはヘルプをお読みください. それでは,さっそく Visual Basicを起動しましょう(図 1.1).①[スタート] ボタンをクリックします.②[すべてのプログラム]をポイントします.③[Microsoft Visual Studio 2010 Express]をクリックします.④[Microsoft Visual Basic 2010 Express]をクリックします.

図 1.1

 Visual Basicが起動し,図 1.2のようなスタートページが表示されます.次は,プロジェクトの作成です.プロジェクトとは,Visual Basicにおけるプログラム開発の単位です.一つのプロジェクトで一つのアプリケーションプログラムを作成します.

VISUAL BASIC 1_2章.indd 2VISUAL BASIC 1_2章.indd 2 2012/07/17 15:21:512012/07/17 15:21:51

Page 10: ゼロからはじめるVisual Basic入門 サンプルページでした.この授業の内容を基にして,2005年に「ゼロからはじめるVisual Basic.NET入門- 基礎からゲーム作成まで-」を出版しました.それから7年が経過し,Visual

3

第1章1.2 起動とプロジェクトの新規作成

⑤[新しいプロジェクト]をクリックします.

図 1.2

 図 1.3のような[新しいプロジェクト]ダイアログボックスが表示されますので,プロジェクトの種類と名前を指定します.⑥ テンプレート中の[Windows フォームアプリケーション]をクリックします.⑦[名前]ボックスにプロジェクト名を入力します.ここでは,「例題 1」という名前にしますので,「例題 1」と入力して下さい.

⑧[ OK ]をクリックします.

図 1.3

VISUAL BASIC 1_2章.indd 3VISUAL BASIC 1_2章.indd 3 2012/07/17 15:21:522012/07/17 15:21:52

Page 11: ゼロからはじめるVisual Basic入門 サンプルページでした.この授業の内容を基にして,2005年に「ゼロからはじめるVisual Basic.NET入門- 基礎からゲーム作成まで-」を出版しました.それから7年が経過し,Visual
Page 12: ゼロからはじめるVisual Basic入門 サンプルページでした.この授業の内容を基にして,2005年に「ゼロからはじめるVisual Basic.NET入門- 基礎からゲーム作成まで-」を出版しました.それから7年が経過し,Visual

35

CHAPTER

3.1 If文による分岐 1(条件により実行する処理を選択)

 条件式が成立すれば処理 1を実行し,成立しないときは処理 2を実行させたい場合には,If文を用います.この場合の,If文の書式とそのフローチャートを以下に示します.フローチャートは,流れ図ともいい,プログラムの処理の流れを図に表したものです.フローチャート(図 3.1)では,条件分岐を 「ひし形」 で表し,一般的な処理を 「長方形」 で表します.

図 3.1

 条件式には,データの大小を比較する表 3.1のような比較演算子を使用することができます.

表 3.1 比較演算子

比較演算子 意  味=

<>

<=

<

>=

>

等しい等しくない以下小さい以上大きい

If 条件式 Then

  処理 1

Else

  処理 2

End If

If文(条件により処理を選択)

3 選択処理 2章のプログラムのように,上から下へと順番に行われる処理を順次処理または逐次処理といいます.しかし,複雑なプログラムは,順次処理だけでは作ることができません.本章では,条件により実行する処理を選択する選択処理について学びます.

VISUAL BASIC 3_5章.indd 35VISUAL BASIC 3_5章.indd 35 2012/07/17 15:23:242012/07/17 15:23:24

Page 13: ゼロからはじめるVisual Basic入門 サンプルページでした.この授業の内容を基にして,2005年に「ゼロからはじめるVisual Basic.NET入門- 基礎からゲーム作成まで-」を出版しました.それから7年が経過し,Visual

36

選択処理第 3章

 aの値が 10以上なら aから 10を引き,そうでない場合は,aに 5を加える場合のプログラムとそのフローチャートは次のようになります.フローチャートにおいて,START,ENDと書かれている長丸は,端子記号といいます.フローチャートは,STARTの端子記号で始まり,ENDの端子記号で終了します.

If a >= 10 Then

a = a ‒ 10Else

a = a + 5

End If

              図 3.2

 次のプログラムが実行されると,変数 aの値がどうなるか考えてみましょう.

a = 5 'aに 5が代入されるIf a >= 10 Then 'aが 5なので 5 >= 10は成立しない a = a – 10   '条件が成立しなかったので実行されないElse '条件が成立しなかったので下の処理が実行される a = a + 5   'aが 5なので 5 + 5の結果 10が aに代入されるEnd If

表 3.2のような論理演算子を使って複雑な条件を作成することもできます.

表 3.2 論理演算子

論理演算子        意 味

Not

And

Or

否定かつまたは

条件が不成立のとき両方の条件が成立したときどちらかの条件が成立したとき

 aの値が0以上でかつ100以下のときTextBox1に「OK」と表示し,そうでないときは「データが不正です」と表示させる場合,次のように書きます.

If a >= 0 And a <= 100 Then

TextBox1.text = "OK"

Else

TextBox1.text = "データが不正です "

End If

例 1

例 2

例 3

VISUAL BASIC 3_5章.indd 36VISUAL BASIC 3_5章.indd 36 2012/07/17 15:23:242012/07/17 15:23:24

Page 14: ゼロからはじめるVisual Basic入門 サンプルページでした.この授業の内容を基にして,2005年に「ゼロからはじめるVisual Basic.NET入門- 基礎からゲーム作成まで-」を出版しました.それから7年が経過し,Visual

37

第 3章3.1 If 文による分岐 1

 図 3.3のように点数を入力すると,60点以上なら合格と表示し,そうでない場合は不合格と表示するプログラムを作りなさい.

図 3.3

解 このプログラムのフローチャートは次のようになります.

図 3.4

 TextBox1をダブルクリックして,コードウィンドウを表示させ,以下のプログラムを入力します. TextBox1をダブルクリックして生成されたプログラムコードの 1行目の後ろの部分がTextBox1.TextChangedになっていることを確認してください.このイベントプロシージャが,TextBox1の文字を変更したという刺激(イベント)によって実行されることを表しています.

プログラムリスト

Private Sub TextBox1_TextChanged(…省略…) Handles TextBox1.TextChanged

  Dim a As Integer '点数を記憶する変数 aを宣言  a = Val(TextBox1.Text) 'TextBox1の値を変数 aに代入  If a >= 60 Then 'a >= 60が成立するとき    TextBox2.Text = "合格 "    'TextBox2に合格と表示  Else '条件が成立しなかった場合    TextBox2.Text = "不合格 "    'TextBox2に不合格と表示  End If

End Sub

例題 3.1

VISUAL BASIC 3_5章.indd 37VISUAL BASIC 3_5章.indd 37 2012/07/17 15:23:252012/07/17 15:23:25

Page 15: ゼロからはじめるVisual Basic入門 サンプルページでした.この授業の内容を基にして,2005年に「ゼロからはじめるVisual Basic.NET入門- 基礎からゲーム作成まで-」を出版しました.それから7年が経過し,Visual

112

CHAPTER

9.1 乱数の発生

 規則性のない数字の並びを乱数といいます.さいころを振って出た目を並べて得られる数などがそうです.この乱数を発生させるための関数が Rnd関数です.Rnd関数の書式を以下に示します.

Rnd( )  0以上 1未満の有効数字 7桁の乱数を発生

乱数の発生

 乱数を発生し,浮動小数点型の変数 aに代入する場合,次のように書きます.

a = Rnd()

 しかし,Rnd関数を単独で使用すると,毎回同じ乱数が生成されます.そこで,一般には Randomize文を使用して,乱数系列を変えてから乱数を発生させます.Ran-

domize文の書式を以下に示します.Randomizeが実行されると,システムタイマー(コンピュータ内の時計)から取得した値が乱数発生の新しい「種」として使われ,最初の乱数が発生します.次の乱数は,前に発生した乱数を基に発生しています.

Randomize( )  乱数系列の初期化乱数の初期化

 Form1の表示と同時に乱数系列を初期化する場合,次のように Form1_Loadのイベントプロシージャとして記述します.

Private Sub Form1_Load(…省略…) Handles MyBase.Load

Randomize()

End Sub

例 1

例 2

9 簡単なゲーム ここでは,ゲームの作成に必要な乱数の発生とタイマーについて学んだ後,前章までに学んできた様々な知識を生かして,簡単なゲームを作ってみましょう.

VISUAL BASIC 6_9章.indd 112VISUAL BASIC 6_9章.indd 112 2012/07/17 15:25:062012/07/17 15:25:06

Page 16: ゼロからはじめるVisual Basic入門 サンプルページでした.この授業の内容を基にして,2005年に「ゼロからはじめるVisual Basic.NET入門- 基礎からゲーム作成まで-」を出版しました.それから7年が経過し,Visual

113

9.1 乱数の発生 第 9章

 図 9.1のようにコマンドボタンが押されるごとに乱数を発生し,表示するプログラムを作りなさい.

図 9.1

解 Button1をダブルクリックして,コードウインドウを表示させ,以下のプログラムを入力します.

プログラムリスト

Private Sub Form1_Load(…省略…) Handles MyBase.Load

Randomize() '乱数系列の初期化End Sub

Private Sub Button1_Click(…省略…) Handles Button1.Click

TextBox1.Text = Rnd() '乱数の発生End Sub

 図 9.2に示すサイコロのように,1から 6までの乱数が表示されるプログラムを作りなさい.

図 9.2

解 Button1をダブルクリックして,コードウインドウを表示させ,以下のプログラムを入力します.

プログラムリスト

Private Sub Form1_Load(…省略…) Handles MyBase.Load

Randomize() '乱数系列の初期化End Sub

Private Sub Button1_Click(…省略…) Handles Button1.Click

TextBox1.Text = Int(Rnd() * 6) + 1  '1から 6までの乱数の発生End Sub

例題 9.1

例題 9.2

VISUAL BASIC 6_9章.indd 113VISUAL BASIC 6_9章.indd 113 2012/07/17 15:25:082012/07/17 15:25:08

Page 17: ゼロからはじめるVisual Basic入門 サンプルページでした.この授業の内容を基にして,2005年に「ゼロからはじめるVisual Basic.NET入門- 基礎からゲーム作成まで-」を出版しました.それから7年が経過し,Visual

 ゼロからはじめるVisualBasic 入門      ⓒ 藤本邦昭 2012  2012 年 8 月 31 日 第 1版第1刷発行     【本書の無断転載を禁ず】 

 著  者 藤本邦昭 発 行 者 森北博巳 発 行 所 森北出版株式会社

東京都千代田区富士見 1-4-11(〒 102-0071)電話 03-3265-8341 / FAX 03-3264-8709http://www.morikita.co.jp/日本書籍出版協会・自然科学書協会・工学書協会 会員

<(社)出版者著作権管理機構 委託出版物>

落丁 ・乱丁本はお取替えいたします.

Printed in Japan / ISBN978-4-627-84991-4

   著 者 略 歴藤本 邦昭(ふじもと・くにあき) 1989 年 東海大学大学院工学研究科修了 1989 年 長崎女子短期大学講師 1991 年 九州東海大学助手 1994 年 九州東海大学講師 2001 年 九州東海大学助教授 2008 年 東海大学准教授 2010 年 東海大学教授      現在に至る

 編集担当 塚田真弓(森北出版) 編集責任 石田昇司(森北出版) 組  版 ワコープラネット 印  刷 ワコープラネット 製  本 協栄製本

VISUAL BASIC 後付.indd 129VISUAL BASIC 後付.indd 129 2012/07/17 15:27:452012/07/17 15:27:45