34
中島省吾 著

ゲーム作りで学ぶVisual Basic 2010入門 - scc-kk.co.jp · PDF fileさらにVisual Basic 2008では、「LINQ(リンク)」と呼ばれる「クエリ

  • Upload
    hadang

  • View
    220

  • Download
    3

Embed Size (px)

Citation preview

Page 1: ゲーム作りで学ぶVisual Basic 2010入門 - scc-kk.co.jp · PDF fileさらにVisual Basic 2008では、「LINQ(リンク)」と呼ばれる「クエリ

中島省吾 著

Page 2: ゲーム作りで学ぶVisual Basic 2010入門 - scc-kk.co.jp · PDF fileさらにVisual Basic 2008では、「LINQ(リンク)」と呼ばれる「クエリ

中島省吾 著

Page 3: ゲーム作りで学ぶVisual Basic 2010入門 - scc-kk.co.jp · PDF fileさらにVisual Basic 2008では、「LINQ(リンク)」と呼ばれる「クエリ

※本書の使用(本書のとおりに操作を行う場合を含む)により、万一損害が発生しても、出版社、著作権者は

一切の責任を負いかねますので、あらかじめご了承下さい。

※Microsoft、Windows は米国 Microsoft Corporation の米国およびその他の国における登録商標です。

※その他、本書に記載されている会社名・製品名などは、一般にそれぞれ各社の商号・登録商標または商標

です。

※本書では™および®の記載は省略しました。

Page 4: ゲーム作りで学ぶVisual Basic 2010入門 - scc-kk.co.jp · PDF fileさらにVisual Basic 2008では、「LINQ(リンク)」と呼ばれる「クエリ

はじめに

はじめに

1991 年に Visual Basic が登場してから 20 年近くが経ちました。すでに枯れた言語とも呼べる

Visual Basic ですが、今日までの道のりは決して平坦なものではありませんでした。

そもそも Visual Basic が多くのユーザーに受け入れられた理由は、短くて簡単なコードでプロ

グラムが作れる手軽さです。しかし「インターネット」の普及と共に、Java言語など新しいオブジェ

クト指向言語が登場し始めると、中途半端なオブジェクト指向や曖昧な型チェックを採用する

Visual Basic は、古い言語と見なされてしまいました。そこで 2002 年、マイクロソフトは、Visual

Basic の言語仕様を大幅に変更して、本格的なオブジェクト指向プログラミングが可能な「Visual

Basic.NET」へ舵を切ることになります。ところがその結果「Visual Basic.NET」は、非常に重装備

な仕様となり、当初は「Visual Basic の役割は終わった」と言うものまで現れました。

しかし、8 年経った現在、今も Visual Basicは現役です。その 大の理由は、すでに莫大なプ

ログラミング資産が存在していたからでしょう。業務アプリケーションなどは、簡単に他の言語へ

切り替えることができません。また、Microsoft Office のマクロ言語が「VBA(Visual Basic for

Applications)」であることや、Web ページに「VBScript(Visual Basic Scripting Edition)」が利用

できることも、Visual Basic が根強い人気を保つ一因と考えられます。

そんな Visual Basic を学ぶとき、厄介なのが「オブジェクト指向」という概念です。そこで本書

は、次の手順で Visual Basic の文法とオブジェクト指向を同時に解説することにしました。

1.まず、完成しているゲームプログラムで遊びます。

2.次にそのプログラムで利用されている文法や概念を、簡単なものから解説していきます。

3. 後にプログラム全体の解説をして、復習と確認のため問題を解きます。

このように、 初にゲームで遊ぶことで「これはどうやって作るんだろう」と興味をもってもらい、

そのプログラムを理解していくことで「たのしく、飽きずに」学習を進めることができます。しかも

本書を読み終わった時には、ルーレットやサウンド付きのゲームが、オブジェクト指向で作れる

ようになっているのですから、ワクワクしませんか。

それでは一緒に、「Visual Basic.NET」の世界へ旅立つことにしましょう。

Page 5: ゲーム作りで学ぶVisual Basic 2010入門 - scc-kk.co.jp · PDF fileさらにVisual Basic 2008では、「LINQ(リンク)」と呼ばれる「クエリ

目 次

i

目次 はじめに

第1章 Visual Basic 2010 の概要.......................................... 1 1.1 Visual Basic 2010 とは ............................................... 2

1.2 Microsoft.NET ...................................................... 3

1.3 .NET Framework と VB2010 .......................................... 4

1.4 オブジェクト指向 .................................................. 6

1.5 Visual Basic 2010 のインストール ..................................... 7

1.6 Visual Basic 2010 Express のインストール .............................. 8

1.7 プログラムの作成と実行 ............................................ 12

1.8 コンソールアプリケーション ........................................ 20

1.9 サンプルプログラムのダウンロード .................................. 24

1.10 第 1 章のまとめと練習問題 .......................................... 25

第2章 数あてゲームを作ろう ............................................ 29 2.1 数あてゲームプログラム ............................................ 30

2.2 変数 .............................................................. 31

2.3 データ型 .......................................................... 39

2.4 リテラル .......................................................... 43

2.5 演算子 ............................................................ 46

2.6 キャスト(データ型の変換) ........................................ 48

2.7 数あてゲームを作ろう .............................................. 49

2.8 第 2 章のまとめと練習問題 .......................................... 56

第3章 おみくじゲームを作ろう .......................................... 59 3.1 おみくじゲーム .................................................... 60

3.2 定数 .............................................................. 61

3.3 分岐処理 .......................................................... 63

Page 6: ゲーム作りで学ぶVisual Basic 2010入門 - scc-kk.co.jp · PDF fileさらにVisual Basic 2008では、「LINQ(リンク)」と呼ばれる「クエリ

目 次

ii

3.4 比較演算子........................................................ 72

3.5 論理演算子........................................................ 74

3.6 プロシージャ...................................................... 77

3.7 おみくじゲームを作ろう............................................ 88

3.8 第 3 章のまとめと練習問題.......................................... 96

第4章 じゃんけんゲームを作ろう....................................... 99 4.1 じゃんけんゲーム.................................................. 100

4.2 オブジェクトとクラス.............................................. 101

4.3 インスタンス...................................................... 107

4.4 コンストラクタ.................................................... 112

4.5 アクセス修飾子.................................................... 117

4.6 クラスをオブジェクトとして使う.................................... 122

4.7 じゃんけんゲームを作ろう.......................................... 129

4.8 第 4 章のまとめと練習問題.......................................... 143

第5章 タイピングゲームを作ろう....................................... 147 5.1 タイピングゲーム.................................................. 148

5.2 配列.............................................................. 150

5.3 繰り返し処理...................................................... 158

5.4 カプセル化........................................................ 167

5.5 プロパティ........................................................ 171

5.6 名前空間.......................................................... 179

5.7 タイピングゲームを作ろう.......................................... 184

5.8 第 5 章のまとめと練習問題.......................................... 199

第6章 すしルーレットを作ろう ......................................... 203 6.1 ルーレットゲーム.................................................. 204

6.2 構造体............................................................ 208

6.3 イベント処理...................................................... 212

6.4 デリゲート........................................................ 220

6.5 イベントの作成.................................................... 224

Page 7: ゲーム作りで学ぶVisual Basic 2010入門 - scc-kk.co.jp · PDF fileさらにVisual Basic 2008では、「LINQ(リンク)」と呼ばれる「クエリ

目 次

iii

6.6 Me ............................................................... 230

6.7 すしルーレットを作ろう ........................................... 235

6.8 第 6 章のまとめと練習問題 ......................................... 249

第7章 すしルーレット(継承バージョン)................................ 253 7.1 すしルーレット継承バージョン ..................................... 254

7.2 継承 ............................................................. 257

7.3 基本クラスのコンストラクタ ....................................... 265

7.4 オーバーロード ................................................... 271

7.5 オーバーライド ................................................... 276

7.6 すしルーレット(継承バージョン)を作ろう ............................ 279

7.7 第 7 章のまとめと練習問題 ......................................... 287

第8章 ダンスゲームを作ろう ........................................... 291 8.1 ダンスゲーム ..................................................... 292

8.2 例外処理 ......................................................... 297

8.3 列挙型 ........................................................... 313

8.4 キーイベントの演習 ............................................... 316

8.5 Form 以外の起動方法............................................... 320

8.6 ダンスゲームを作ろう ............................................. 324

8.7 第 8 章のまとめと練習問題 ......................................... 340

第9章 ダンスゲーム(DirectSound バージョン) ......................... 343 9.1 ダンスゲーム(DirectSound バージョン) .............................. 344

9.2 ポリモフィズム ................................................... 347

9.3 抽象クラス ....................................................... 349

9.4 インターフェイス ................................................. 357

9.5 DirectX ........................................................... 366

9.6 ダンスゲーム(DirectSound バージョン)を作ろう........................ 372

9.7 第 9 章のまとめと練習問題 ......................................... 388

練習問題解答 .............................................................. 391

索引 ....................................................................... 407

Page 8: ゲーム作りで学ぶVisual Basic 2010入門 - scc-kk.co.jp · PDF fileさらにVisual Basic 2008では、「LINQ(リンク)」と呼ばれる「クエリ
Page 9: ゲーム作りで学ぶVisual Basic 2010入門 - scc-kk.co.jp · PDF fileさらにVisual Basic 2008では、「LINQ(リンク)」と呼ばれる「クエリ

第1章 Visual Basic 2010 の概要

2

1.1 Visual Basic 2010 とは

Visual Basic 2010(以降 VB2010)は、Microsoft 社が開発した、オブジェクト指向プログラミング言語

です。

そもそもBasicという言語は、初心者向けのプログラミング言語として1970年代のコンピュータに多

く搭載されてきました。当時はキーボードから命令を入力し、その順番に命令を解釈しながら実行し

ていくという「インタープリタ」方式が採用されていました。

やがて OS に Windows が登場すると、Windows で動作するプログラムが簡単に開発できる Visual

Basic という開発環境が登場します。それが Visual Basic の最初のバージョンです。

Visual Basic の特徴は、アプリケーションを作るためのツールがすべて用意されていることです。こ

のように 1 つの開発環境でソースコード(プログラムを記述したテキストをソースコードといいます)の

入力から実行、デバッグ(プログラムの不都合を修正する作業)までできるツールを「統合開発環境

(IDE:Integrated Development Environment)」といいます。

当初の Visual Basic は、従来の Basic 言語と同様に「インタープリタ方式」でしたが、バージョン 5.0

以降「コンパイル」もできるようになりました。

インタープリタ方式では、プログラムの命令を1 行単位で解釈しながら、その都度CPUが実行でき

るマシン語(ネイティブコードといいます)に変換して実行します。そのためどうしても実行速度が遅く

なります。そこであらかじめプログラム全体をマシン語に変換しておくことで高速に動作するようにし

たのが「コンパイル方式」です。そしてプログラムのコードを、マシン語に変換するプログラムのことを

「コンパイラ」といいます。

その後、Visual Basic は「Visual Basic .NET(バージョン 7.0 に相当)」と名前を変え、実行環境も大

きく変化しました。バージョン 6.0 までの Visual Basic は「Visual Basic ランタイム」と呼ばれるプログラ

ムがあれば動作しましたが、Visual Basic .NET では、共通言語ランタイム (CLR: Common Language

Runtime)という「仮想マシン」の上で動作するようになりました。仮想マシン上でプログラムが動作す

ることで、インターネットなどで配布されるプログラムに対してもセキュリティのチェックが可能になりま

す。またバージョン 6.0 までの文法は、従来の「構造化」と呼ばれるプログラム手法に「オブジェクト指

向」を部分的に取り込んだものでしたが、Visual Basic .NET からは、完全なオブジェクト指向言語へ

Page 10: ゲーム作りで学ぶVisual Basic 2010入門 - scc-kk.co.jp · PDF fileさらにVisual Basic 2008では、「LINQ(リンク)」と呼ばれる「クエリ

第1章 Visual Basic 2010 の概要

3

と変貌を遂げました(オブジェクト指向については、後に説明があります)。

さらに Visual Basic 2008 では、「LINQ(リンク)」と呼ばれる「クエリ(データベースなどに対する問い

合わせ)」を直接コードに記述できるようになったり、最新の Visual Basic 2010 では、Basic 言語であり

ながら特別なキーワードなしに、1 つの命令を複数行で記述できるようになるなど、多くの改良が施さ

れています。

1.2 Microsoft.NET

VB2010 は、Visual Basic の最新バージョンであると共に、「Microsoft .NET」を構成する言語の 1

つでもあります。

Microsoft .NET とは、Microsoft が 2000 年 6 月に発表したインターネット技術や戦略の総称のこと

です。当時はインターネットが猛烈な勢いで普及していました。そのため、IT 業界には「インターネッ

トに対応したアプリケーションを安く早く開発する」という要求が多く出されていました。その要求に

Microsoft が出した答えが Microsoft .NET だったのです。

Microsoft .NET は、インターネット上の様々なコンピュータで、セキュリティを保障しながら分散処

理させることを目的としています。そのため、異なるコンピュータ上にOSの代わりとなるプラットフォー

ムが必要でした。そのプラットフォームとして登場したのが「.NET Framework」です。

.NET Framework は、開発ツールとして「クラスライブラリ」を持ち、実行環境には「共通言語ランタ

イム」を利用します。「クラスライブラリ」とは、共通言語ランタイム上で動作するプログラムを作るため

の部品の集まりです。したがって.NET Framework のクラスライブラリを扱うことができれば、プログラ

ム言語に制限はありません。現在.NET Framework のプログラムを開発できる言語には、「Visual

Basic」、「Visual C++」、「Visual C#」などがあり、最新の Visual Studio 2010 では「F#」と呼ばれる関数

型プログラミング言語も利用できるようになりました。

そして.NET Framework は、すでに複数のバージョンが登場しています。2002 年に最初のリリース

である「.NET Framework 1.0」が発表されましたが、その後 2005 年に 2.0、 2006 年に 3.0、2007 年

に 3.5 が発表され、現在は「. NET Framework 4.0」が最新のバージョンになっています。

Page 11: ゲーム作りで学ぶVisual Basic 2010入門 - scc-kk.co.jp · PDF fileさらにVisual Basic 2008では、「LINQ(リンク)」と呼ばれる「クエリ

第1章 Visual Basic 2010 の概要

4

1.3 .NET Framework と VB2010

前述したように、VB2010 の実行ファイルは「.NET Framework」と呼ばれるプラットフォームにある

「共通言語ランタイム」という仮想マシン上で動作します。

この「共通言語ランタイム」は「共通言語基盤(CLI [Common Language Infrastructure])」と呼ばれる

仕様に基づいて実装されています。

共通言語基盤は、共通中間言語(CIL [Common Intermediate Language])と呼ばれる仕様に基づ

いて生成されたコード(Microsoft は、これを「マージコード」と呼んでいます)を実行します。そのため、

VB2010 に限らず、C#や C++など、共通中間言語のコードが生成できれば、言語は何でもかまいま

せん。

このような仕様により、VB2010 のプログラムは共通言語基盤の仕様に基づいたプラットフォームさ

え用意できれば動作します。したがって OS も Windows である必要はなく、「Mono」と呼ばれる Linux

や Unix 系の OS で動作する「.NET Framework 互換」のオープンソースも開発が進んでいます。

Visual Basic

ソースコード

Visual C#

ソースコード

Visual C++

ソースコード

共通中間言語 共通中間言語 共通中間言語

共通言語ランタイム(共通言語基盤)

各言語のソースコードは、コンパイラで、同じ

共通中間言語のコードに変換されてから共通

言語ランタイム上で実行される。

コンパイル

コンパイル

コンパイル

Page 12: ゲーム作りで学ぶVisual Basic 2010入門 - scc-kk.co.jp · PDF fileさらにVisual Basic 2008では、「LINQ(リンク)」と呼ばれる「クエリ

第1章 Visual Basic 2010 の概要

5

JIT(Just In Time)コンパイラ

共通言語ランタイム上でマージコードが動作するといっても、実際には OS 上で動作するコード

(ネイティブコード)に変換しなければいけません。この変換プログラムを「JIT(Just In Time)コンパ

イラ」といいます。

JIT コンパイラの特徴は、ネイティブコードが必要になるまで、コンパイルしないことと、最初の変

換時にのみコンパイルすることです。コンパイル後はコンパイル済みのコードを再利用するため、

マージコードの動作は、ネイティブコードと遜色ない速さで動作します。

ガベージコレクション

共通言語ランタイムには、ガベージコレクションという機能があり、プログラムが確保したメモリー

領域を自動的に開放してくれます。

そもそもC言語やC++言語は、プログラムの実行中にメモリを確保して利用することができます。

しかし確保した領域を開放し忘れると「メモリリーク」という問題が発生します。

メモリリークとは、解放し忘れた領域で利用可能なメモリが埋め尽くされてしまい、他のプログラ

ムがメモリを利用しようとしてもできなくなる状態をいいます。しかし共通言語ランタイムの場合は、

メモリリークはおきません。それは、メモリ管理に「ガベージコレクション」という機能を採用している

ためです。ガベージコレクションは、定期的にアプリケーションから参照されているメモリ領域を調

べ、利用されていないメモリ領域があれば、その領域を解放して再利用します。

またアプリケーションが、メモリの確保と解放を繰り返すと、利用できるメモリの範囲が、歯抜け状

態なり、一度に大きな領域を確保できなくなります。そこでガベージコレクションは、アプリケーショ

ンが確保しているメモリ領域を自動的に移動することもあります。

このガベージコレクションによって、プログラマはメモリ管理をする必要が無くなり、プログラムの

安全性が高まります。

Page 13: ゲーム作りで学ぶVisual Basic 2010入門 - scc-kk.co.jp · PDF fileさらにVisual Basic 2008では、「LINQ(リンク)」と呼ばれる「クエリ

第1章 Visual Basic 2010 の概要

6

1.4 オブジェクト指向

VB2010 は、完全な「オブジェクト指向言語」です。ここでいう「オブジェクト」とは特定の役割をもっ

たプログラムのことです。オブジェクト指向で作られたアプリケーションは、多くのオブジェクトが連携

して 1 つの処理を行うという特徴を持ちます。

たとえば C 言語などでは「構造化」という手法でプログラムの構成を考えます。「構造化」とは、複

雑なプログラムを簡単な処理単位に分解してから組み合わせるという手法です。

しかし構造化には、プログラムが利用する「データ」と「その操作方法」を、まとめて管理する決まり

はありませんでした。そのためデータと処理は、プログラマが独自に決めたルールに従って結び付

けられるため、他のプログラマが、そのプログラムを再利用するのが難しいという問題がありました。

ところがオブジェクト指向では、データ(オブジェクト指向では「属性」と呼びます)とその操作方法

を「オブジェクト」という単位で管理するように決っています。そのため、他のプログラムからもオブジェ

クト単位での利用がしやすくなり、プログラムの再利用性を高めることができるようになりました。

画面オブジェクト

オブジェクト指向アプリケーション

画面管理

オブジェクト

データベース管理

オブジェクト

データ

オブジェクト

Page 14: ゲーム作りで学ぶVisual Basic 2010入門 - scc-kk.co.jp · PDF fileさらにVisual Basic 2008では、「LINQ(リンク)」と呼ばれる「クエリ

第1章 Visual Basic 2010 の概要

7

1.5 Visual Basic 2010 のインストール

VB2010 は、「Visual Studio 2010」と呼ばれる統合開発環境から利用することができます。この

Visual Studio 2010 には、プログラマの用途に合わせて、以下のエディションが用意されています。

Visual Studio 2010 Ultimate

Visual Studio 2010 Premium

Visual Studio 2010 Professional

Visual Studio 2010 Express(無償)

エディションの最上位に位置するのが「Ultimate」です。Ultimate は、Visual Studio 2010 のすべて

の機能が利用できるだけでなく、大規模な開発向けにテスト環境から設計ツールまで全ての機能が

統合されています。次の「Premium」は、設計に用いるモデリング機能などに一部制限はありますが、

通常の開発に必要な全ての機能を有します。「Professional」は、Visual Studio 2008 の「Standard」エ

ディションの後継にあたるエディションで、利用できる言語を全て搭載し、基本機能を提供するエデ

ィションとなっています。実はこの「Professional」に、テスト環境である「Visual Studio 2010 Test

Professional」を追加することで、「Ultimate」に近い環境にすることもできるようになっています。

そして最後の「Express」は、評価、学習用という位置づけになり、それぞれ利用したい言語別にダ

ウンロードする形で無償で提供されます。

そこで本書では、Visual Studio 2010 Express を利用することにします。今回は、VB2010 を利用す

るので Microsoft のサイトから「Visual Basic 2010 Express 」をダウンロードしてインストールすることに

します。

注意 本書に掲載されている画面は、Windows 7 Ultimate 32bit に対するインストール画面です。Windows

XP/Vista にインストールスする場合は、画面が異なる場合があります。

Page 15: ゲーム作りで学ぶVisual Basic 2010入門 - scc-kk.co.jp · PDF fileさらにVisual Basic 2008では、「LINQ(リンク)」と呼ばれる「クエリ

第1章 Visual Basic 2010 の概要

8

1.6 Visual Basic 2010 Express のインストール

Visual Basic 2010 Express 日本語版は、以下のサイトからダウンロードすることができます。

Visual Studio 2010 Express 日本語版

http://www.microsoft.com/japan/msdn/vstudio/express/

上記のサイトにアクセスすると、各言語の

Express エディションへのインストールリンク

が表示されます。

注意 ダウンロード先のアドレスやダウンロード

方法は、変更される可能性があります。

目的のページが見つからない場合は、

Visual Studio 2010 Express で検索して

ください。

Visual Basic 2010 Express にある[Web イン

ストール(ダウンロード)]をクリックします。

[Web インストール(ダウンロ

ード)]をクリックします。

Page 16: ゲーム作りで学ぶVisual Basic 2010入門 - scc-kk.co.jp · PDF fileさらにVisual Basic 2008では、「LINQ(リンク)」と呼ばれる「クエリ

第1章 Visual Basic 2010 の概要

9

[Web インストール(ダウンロード)]をクリック

すると、vb_web.exe をダウンロードしようとす

るため、左のようなダイアログボックスを表示

します。

ここで[実行]ボタンをクリックすると、ダウンロ

ードとファイルの展開が始まりますので、ダ

ウンロードが始まったら、ブラウザは閉じても

かまいません。

ユーザーアカウント制御が表示された場

合は、[はい]をクリックします。

注意 Windows Vista では、上記の[実行]ボタンをクリックすると、セキュリティを警告するダイアイログが出る場

合があります。その場合は[実行する]をクリックし、さらにユーザーアカウント制御が表示された場合も[続

行]をクリックします。

注意 Windows XP SP3 では上記の[実行]ボタンをクリックすると、ファイルをロードした後で、「セキュリティの警

告」ダイアイログが出る場合があります。その場合は[実行する]をクリックします。

コンポーネントの読み込みが終わると、

Visual Basic 2010 Express の「セットアッ

プへようこそ」画面が表示されます。

セットアップに関する情報を Microsoft に送信す

るかどうかのチェックボックスが表示されるの

で、任意でチェックをつけます。

[実行]をクリック

[次へ]をクリック

Page 17: ゲーム作りで学ぶVisual Basic 2010入門 - scc-kk.co.jp · PDF fileさらにVisual Basic 2008では、「LINQ(リンク)」と呼ばれる「クエリ

第1章 Visual Basic 2010 の概要

10

ライセンス条項の画面では[同意する]をクリ

ックして[次へ]ボタンをクリックします。

Microsoft SQL Server 2008 Express のイン

ストールオプションは、よほどハードディスク

に余裕がない場合を除いて、チェックした

方がよいでしょう。

同じように、「Microsoft Silverlight」のチェック

が表示される場合も、オンにしてください。

[次へ]ボタンをクリックします。

[同意する]にチェック

[次へ]をクリック

Microsoft SQL Server 2008 Express とは

Microsoft のデータベースソフトです。製品としての SQL Server 2008 ありますが、Express エディ

ションは無償で利用可能です。詳しくは、以下のサイトを参照してください。

Microsoft SQL Server SQL Server 2008 R2

http://www.microsoft.com/japan/sqlserver/2008/r2/default.mspx

[次へ]をクリック

Page 18: ゲーム作りで学ぶVisual Basic 2010入門 - scc-kk.co.jp · PDF fileさらにVisual Basic 2008では、「LINQ(リンク)」と呼ばれる「クエリ

第1章 Visual Basic 2010 の概要

11

インストール先のファイルダと、インストール

する項目が一覧表示されます。

[インストール]ボタンをクリックします。

注意 すでに他の Visual Studio 製品がインスト

ールされている場合には、インストール先

を選ぶことができない場合もあります。

インストール中に、左にあるようなダイアログ

を表示して、再起動を求められる場合があ

ります。その場合、すぐに再起動してもよけ

れば[今すぐ再起動]をクリックして再起動し

ます。

正常にインストールが終了すると、図のよう

な表示になります。

[終了]ボタンをクリックします。

[インストール]ボタンをクリック

[終了]ボタンをクリック

Page 19: ゲーム作りで学ぶVisual Basic 2010入門 - scc-kk.co.jp · PDF fileさらにVisual Basic 2008では、「LINQ(リンク)」と呼ばれる「クエリ

第1章 Visual Basic 2010 の概要

12

1.7 プログラムの作成と実行

VB2010 がインストールできたら、簡単なプログラムを作ってみましょう。

1.7.1 Visual Basic 2010 の起動

まず VB2010 を起動します。デスクトップのスタートメニューの[すべてのプログラム]に[Microsoft

Visual Studio 2010 Express]が追加されているので、展開して[Microsoft Visual Basic 2010 Express]

クリックします。VB2010 が起動します。

製品の登録

30 日以内に製品の登録を行います。製品の登録は

メニューの [ヘルプ]→[製品の登録] より行います。

「オンラインで登録キーを取得する」ボタンをクリックす

ると、登録用の Web サイトが開きます。登録が終了

すると、Web ページに "登録キー" が表示されるの

で、この"登録キー"をコピーしてダイアログにある[登

録キー]の欄に貼り付けます。その後、[今すぐ登録]ボ

タンをクリックします。

メニューと

メニューバー

ソリューション

エクスプローラ

作業領域

Page 20: ゲーム作りで学ぶVisual Basic 2010入門 - scc-kk.co.jp · PDF fileさらにVisual Basic 2008では、「LINQ(リンク)」と呼ばれる「クエリ

第1章 Visual Basic 2010 の概要

13

1.7.2 プロジェクト作成

まず、Window アプリケーションのプロジェクトを作成します。

プロジェクトとは、ウインドウ画面のデザイン、画像、データ、ソースコードなど、プログラムを構成す

るさまざまな要素をまとめて管理する単位です。さらにその上には、ソリューションという単位が存在

し、複数のプロジェクトで構成されたアプリケーションを開発することもできます。

VB2010 のメニューの [ファイル]→ [新しい

プロジェクト] を選択します。

すると、[新しいプロジェクト]ダイアログボック

スが表示されます。

この中から[Windows フォームアプリケーシ

ョン]を選択します。プロジェクトの「名前」は

変 更 す る こ と も で き ま す が 、 今 回 は

[WindowsApplication1]のままにして、[OK]

ボタンをクリックします。

[Windows フォーム アプリケーション]

をクリック

[OK]をクリック

[ファイル]→[新しいプロジェクト]

をクリック

Page 21: ゲーム作りで学ぶVisual Basic 2010入門 - scc-kk.co.jp · PDF fileさらにVisual Basic 2008では、「LINQ(リンク)」と呼ばれる「クエリ

第1章 Visual Basic 2010 の概要

14

Windows アプリケーションを作成するための画面に変化します。

ソリューションエクスプローラに追加された Form1.vb というファイルは、新しく作成された Form

(フォーム)のためのファイルです。この Form が、実行時にウインドウとして画面に表示されます。

Form は、作業領域が[デザイン]タブになっているとき、ウインドウのデザインをすることができます。

この状態で「ボタン」や「ラベル」など、アプリケーションの部品を Form に追加することでプログラムを

構築していきます。

Windows フォームアプリケーションのプロジェクトを作成すると、「Form」が追加されます。この

Form というオブジェクトの属性が「プロパティウインドウ」に表示されます。「プロパティ」とは、VB2010

でオブジェクトの「属性」を表現する言葉です。VB2010 では Form やボタンのような機能をもったもの

を「オブジェクト」と考えます。これらオブジェクトには、表示する文字列や大きさ、色などの「属性」が

あり、その属性を変更することで表示する文字列や大きさなどを変更します。

プロパティウインドウでは、選択したオブジェクトのプロパティ一覧が表示され、同時にそのプロパ

ティに設定されている「属性値」を表示します。この値は、変更することもできます。

実はこの状態でもプログラムを実行することができます。ただし表示されているFormと同じウインド

ウが画面に現れるだけです。そこで、オリジナルの文章を、Form に追加してみましょう。

ソリューションエクスプロー

ラには、ファイル情報が表

示される

プロパティウインドウに

は、オブジェクトの属性

が表示される

[デザイン]タブが現れ、

作業領域で Form の

デザインができる

Form

Page 22: ゲーム作りで学ぶVisual Basic 2010入門 - scc-kk.co.jp · PDF fileさらにVisual Basic 2008では、「LINQ(リンク)」と呼ばれる「クエリ

第1章 Visual Basic 2010 の概要

15

1.7.3 コントロールの利用

Form に文字を表示する方法はいくつかありますが、ここでは「コントロール」を Form に追加して表

示させてみましょう「コントロール」とは、ウインドウを構成する部品オブジェクトのことです。

コントロールを Form に追加するには、ツールボックスを使います。

ツールボックスを表示させるには、作業領

域の左端にある[ツールボックス]をクリック

するか、もしくは、メニューの [表示]→[そ

の他のウインドウ]→[ツールボックス] を選

択します。

ツールボックスを表示したら[コモンコントロ

ール]にある[Label]をクリックします。

この Label(ラベル) が、コントロールです。

注意 もし[コモンコントロール]が展開されていな

い場合は、クリックして展開します。

[コモンコントロール]にある

[Label]をクリック

[ツールボックス]をクリックするか、もしく

は、メニューの [表示]→[その他のウイ

ンドウ]→[ツールボックス] を選択

Page 23: ゲーム作りで学ぶVisual Basic 2010入門 - scc-kk.co.jp · PDF fileさらにVisual Basic 2008では、「LINQ(リンク)」と呼ばれる「クエリ

第1章 Visual Basic 2010 の概要

16

Form の適当な場所でクリックすると、Form

に「Label1」という表示が現れ、ツールボッ

クスが自動的に閉じます。

Label1 の位置は、マウスでドラッグすること

で移動することができます。Form の中央に

移動させます。

参考 ツールボックスで Form が隠れてしまう場

合は、Form の外で一度クリックするとツ

ールボックスが閉じます。

ここでプログラムを起動してみましょう。プロ

グラムを起動するには、ツールバーの[デバ

ッグ開始]ボタンをクリックします。

すると、中央に Label1 と表示されたウインドウが表示されます。

プログラムを終了させるには、表示されたウインドウのクローズ

ボタンをクリックします。

適当な場所でクリック

すると Label が Form に

表示される

[デバッグ開始]

ボタンをクリック

[クローズ]

ボタンをクリック

Page 24: ゲーム作りで学ぶVisual Basic 2010入門 - scc-kk.co.jp · PDF fileさらにVisual Basic 2008では、「LINQ(リンク)」と呼ばれる「クエリ

第1章 Visual Basic 2010 の概要

17

1.7.4 プロパティの変更

ウインドウに文字を表示させるプログラムは完成しましたが、表示する文字が Label1 では面白くあ

りません。そこで Label コントロールのプロパティを変更して、表示する文字を変更してみましょう。

Label コントロールが表示する文字列を保持しているのが、Text プロパティです。この Text プロパ

ティの内容を変更するには、プロパティウインドウを使います。

まず、Form 上の Label1 をクリックします。す

ると、枠が表示されます。この枠のある状態

を「アクティブ」といいます。

次に、プロパティウインドウを見ます。プロパ

ティウインドウは、アクティブなコントロール

のプロパティを表示するので、Label1のプロ

パティが表示されています。

このプロパティの中から、Text を探すと、右

横に Label1 と表示されています。ここを「は

じめての VB」と上書き入力して変更したら

[Enter]キーを押します。

すると、Form 上の「Label1」という表示も

「はじめての VB」に変わります。

ラベルコントロールをドラッグして位置を調

整したら[デバッグ開始]ボタンをクリックし

て実行します。

注意 プログラムを終了するには、クローズボ

タンをクリックします。

クリックしてアクティ

ブにする

Text プロパティを

書き換える

はじめての VB

Page 25: ゲーム作りで学ぶVisual Basic 2010入門 - scc-kk.co.jp · PDF fileさらにVisual Basic 2008では、「LINQ(リンク)」と呼ばれる「クエリ

第1章 Visual Basic 2010 の概要

18

1.7.5 プロジェクトの保存と再読み込み

プログラムの作成をやめる場合は、プロジェクトを保存します。VB2010 を終了すれば、プロジェク

トは自動的に保存されます。

VB2010 を終了させるには、VB2010 のクロ

ーズボタンをクリックするか、[ファイル]メニュ

ーの[終了]をクリックします。

プロジェクトが作成されていない状態で、

VB2010を終了しようとすると、作成中のプロ

ジェクトを、保存するか破棄するかを選択す

るダイアログが表示されます。

その場合は、[上書き保存]をクリックします。

すると、プロジェクト名やプロジェクトを保存

する場所を確認するダイアログが表示され

るので、特に変更する必要がなければ、そ

のまま[上書き保存]をクリックします。

プログラムがまだ動作している状態で終了

しようとした場合は、[デバックを中止します

[終了]をクリック

[上書き保存]をクリック

[上書き保存]をクリック

Page 26: ゲーム作りで学ぶVisual Basic 2010入門 - scc-kk.co.jp · PDF fileさらにVisual Basic 2008では、「LINQ(リンク)」と呼ばれる「クエリ

第1章 Visual Basic 2010 の概要

19

か?]というメッセージボックが表示されます。

その場合、[はい]をクリックすると、デバック

を終了して VB2010 の終了へ進みます。

すでにプロジェクトが存在する場合に終了

しようとした場合は、左の図のような、変更

があったファイルを一覧表示するダイアログ

が表示される場合があります。その場合[は

い]をクリックすると、すでに保存されている

ファイルを上書きして保存します。

注意 変更するファイルが無い場合は表示され

ません。

再び VB2010 を起動すると、[最近使ったプ

ロジェクト]の中に、保存したプロジェクトの

名前が表示されています。この中から、開き

たいプロジェクトをクリックすれば、作業を再

開できます。

変更があったファイルの一覧

[はい]をクリック

最近使ったプロジェクトの

一覧に先ほど保存したプ

ロジェクトがある

Page 27: ゲーム作りで学ぶVisual Basic 2010入門 - scc-kk.co.jp · PDF fileさらにVisual Basic 2008では、「LINQ(リンク)」と呼ばれる「クエリ

第1章 Visual Basic 2010 の概要

20

1.8 コンソールアプリケーション

VB2010 を使えば、プログラムを入力しなくても簡単なウインドウを表示するプログラムが作成でき

ることはわかりました。それでは早速 Visual Basic の文法を勉強しましょう・・・と言いたいところなので

すが、ウインドウを表示するプログラムは、実は簡単に見えてかなり複雑なコードが自動生成されて

動いています。そのためウインドウを表示するプログラムで Visual Basic の勉強をはじめると、習って

いない概念やコードが次々に出てきてしまい、文法に集中できません。

そこで、文法を学ぶためにコンソールアプリケーションの作り方も知っておくと、文法のチェックが

やりやすくなります。

コンソールアプリケーション

コンソールとは、Windows の場合、コマンドプロンプト画面を指します。スタートメニューの[アクセ

サリ]の中に[コマンドプロンプト]というメニューがあるので、クリックしてコマンドプロンプトのウインド

ウを表示させることができます。

[コマンドプロンプト]をクリック

コマンドプロンプトのウインドウ

Page 28: ゲーム作りで学ぶVisual Basic 2010入門 - scc-kk.co.jp · PDF fileさらにVisual Basic 2008では、「LINQ(リンク)」と呼ばれる「クエリ

第1章 Visual Basic 2010 の概要

21

1.8.1 コンソールアプリケーションのプロジェクト

コンソールアプリケーションを作るには、コンソールアプリケーション専用のプロジェクトを作ること

から始めます。

VB2010 を起動したら、[ファイル]→[新しい

プロジェクト]をクリックします。

[新しいプロジェクト]ダイアログボックスが表

示されたら、 [コンソール アプリケーション]

を選択します。

プロジェクト名は[ConsoleApplication1]のま

までかまいません。

[OK] ボタンを押すと新たなプロジェクトが

作成されます。

[ファイル]→[新しいプロジェクト]を

クリック

[コンソールアプリケーシ

ョン]をクリック

[OK]をクリック

Page 29: ゲーム作りで学ぶVisual Basic 2010入門 - scc-kk.co.jp · PDF fileさらにVisual Basic 2008では、「LINQ(リンク)」と呼ばれる「クエリ

第1章 Visual Basic 2010 の概要

22

Windows アプリケーションと違い、Form は表

示されません。その代わり、ソースコードを入

力するエディタが作業領域に表示されます。

エディタは、プログラムコードをキーボード

から入力するために使用します。Windows

アプリケーションの場合も、プログラムコード

を追加する際には利用します。

表示されるエディタ画面には、VB2010 によ

って自動的に生成されたコードが表示され

ています。

Module Module1

Sub Main()

End Sub

End Module

Sub Main と、End Sub の間に、以下のコードを追加します。

Module Module1

Sub Main()

Console.WriteLine("はじめての VB")

End Sub

End Module

エディタ

VB2010 が自動的に生成したコードがエディタに表示されている

この 1 行を追加する

Page 30: ゲーム作りで学ぶVisual Basic 2010入門 - scc-kk.co.jp · PDF fileさらにVisual Basic 2008では、「LINQ(リンク)」と呼ばれる「クエリ

第1章 Visual Basic 2010 の概要

23

Console.WriteLine というコードは、コマンドプロンプトに一行文字列を表示させる命令です。この

ような命令を「メソッド」と言います。

プログラムを実行してみましょう。[デバッグ

開始]ボタンをクリックします。

するとコマンドプロンプトが一瞬表示されま

すがすぐに閉じてしまいます。

これでは実行されているかどうかわからない

ので、今度は[Ctrl]キーを押しながら[F5]キ

ーを押してみます。

今度はコマンドプロンプト画面が閉じずに、

はじめての VB

と表示されていることが確認できます。

さらに何かキーを押せば、コマンドプロンプ

トのウインドウは閉じてプログラムは終了し

ます。

コンソールアプリケーションのプロジェクトを

終了する方法は、Windows アプリケーション

のときと同じです。VB2010 のクローズボタンをクリックするか、メニューで終了すると、上書き保存の

ダイアログや変更後保存されていないファイルの一覧が表示されるので[上書き保存]もしくは[はい]

をクリックして、プロジェクトを保存すれば終了します。

これが、コンソールアプリケーションの作り方です。Windows アプリケーションと見た目は違います

が、どちらも同じ Visual Basic のプログラムです。この 2 つのプロジェクトを使い分けて、効率よく

VB2010 を学習していくことにしましょう。

[デバッグ開始]ボタンをクリックす

ると、コマンドプロンプトの画面は

すぐに閉じてしまう

[Ctrl]キーを押しながら[F5]キーを押した場

合は、コマンドプロンプトの画面がすぐに

は閉じずに、プログラムが正しく動作して

いるか確認できる。

Page 31: ゲーム作りで学ぶVisual Basic 2010入門 - scc-kk.co.jp · PDF fileさらにVisual Basic 2008では、「LINQ(リンク)」と呼ばれる「クエリ

第1章 Visual Basic 2010 の概要

24

1.9 サンプルプログラムのダウンロード

最後に、第 2 章以降で利用するサンプルコードを以下の Web サイトからダウンロードしておきま

しょう。

http://www.scc-kk.co.jp/scc-books/support/B-351/support.html

ダウンロードするファイルは Projects.zip です。ダウンロード先は、適当なフォルダでかまいません。

ダウンロードに成功したら解凍しておきます。解凍先もどこでもかまいません。

たとえばCドライブのルートにMyVBフォルダを新規作成してそこに解凍する場合は、Projects.zip

をダブルクリックして開き、表示される Projects フォルダを MyVB フォルダにコピーするだけで解凍さ

れます。

注意 Windows のデフォルト仕様では、ファイルの

拡張子は表示されません。プログラム作成に

おいて、拡張子が表示されないのは不便な

ので表示するように変更しておきましょう。

Windows 7 の場合は、まずエクスプローラを

開きコマンドバーにある[整理]メニューから

[フォルダーと検索のオプション](Windows

Vista では[検索とフォルダのオプション])を

選択します。フォルダオプションダイアログが

表示されるので、[表示]サブを選択し[登録さ

れている拡張子は表示しない]のチェックを

はずします。

WindowsXP の場合は、エクスプローラの[ツ

ール]メニューに[フォルダオプション]がある

ので、そこからダイアログを開きます。

[登録されている拡張子は表示しない]の

チェックを外す

Page 32: ゲーム作りで学ぶVisual Basic 2010入門 - scc-kk.co.jp · PDF fileさらにVisual Basic 2008では、「LINQ(リンク)」と呼ばれる「クエリ

第1章 Visual Basic 2010 の概要

25

1.10 第 1 章のまとめと練習問題

第 1 章で説明してきた内容のまとめと、正しく理解しているか簡単な三択のテストをしてみましょう。

1.10.1 第 1 章のまとめ

1.VB2010 は、Microsoft 社が開発した、オブジェクト指向プログラミング言語です。

2.コード入力から実行、デバッグまでできるツールを「統合開発環境」といいます。

3.VB2010 の実行ファイルは、共通言語ランタイム (CLR[Common Language Runtime])で動作

します。

4.「共通言語ランタイム」は「共通言語基盤(CLI [Common Language Infrastructure])」に基づいて

実装されています。

5.共通言語基盤は、共通中間言語(CIL [Common Intermediate Language])に基づいて生成され

た「マージコード」を実行します。

6.オブジェクト指向は、オブジェクトが連携してアプリケーションを構成します。

7.オブジェクト指向は、データとその操作方法を「オブジェクト」単位で管理します。

8.VB2010 でアプリケーションを作る場合、最初に「プロジェクト」を作成します。

9.ウインドウを表示するプログラムは「Windows アプリケーション」のプロジェクトを作ります。

10.VB2010 では、ウインドウは Form から作ります。

11.ウインドウに文字を表示するには、Label コントロールを利用します。

12.FormやLabelなどのオブジェクトには表示する文字や形を決める「プロパティ」という属性があり

ます。

13.プロパティは VB2010 のプロパティウインドウで変更できます。

14.コマンドプロンプトで動作するプログラムは「コンソールアプリケーション」のプロジェクトを作成し

ます。

Page 33: ゲーム作りで学ぶVisual Basic 2010入門 - scc-kk.co.jp · PDF fileさらにVisual Basic 2008では、「LINQ(リンク)」と呼ばれる「クエリ

第1章 Visual Basic 2010 の概要

26

1.10.2 練習問題

問題は、三択です。解答は問題の次のページにあります。ぜひトライして頭の中を整理しましょう。

■ 問題 1

VB2010 のように、コードの入力から、デバック、実行までを行える開発環境を、なんと言いますか。

1.統合データベース

2.統合開発環境

3.統合開発言語

■ 問題 2

プログラムの命令を 1 行単位で解釈しながら実行していく方式は、次のうちどれですか。

1.インターネット

2.インターポール

3.インタープリタ

■ 問題 3

プログラムの命令をあらかじめマシン語に変換しておいて実行する方式は次のうちどれですか。

1.コンパイル

2.コマンドライン

3.ランタイム

Page 34: ゲーム作りで学ぶVisual Basic 2010入門 - scc-kk.co.jp · PDF fileさらにVisual Basic 2008では、「LINQ(リンク)」と呼ばれる「クエリ

第1章 Visual Basic 2010 の概要

27

■ 問題 4

Microsoft .NET で、OS の代わりとなるプラットフォームは、次のうちどれですか。

1.Java

2..NET Framework

3.Windows

■ 問題 5

.NET Framework の共通言語ランタイムは、どの仕様に基づいて実装されていますか。

1.共通中間言語

2.マージコード

3.共通言語基盤

■ 問題 6

VB2010 で Windows アプリケーションを作るとき、Form に追加することができる部品オブジェクトを

なんと呼びますか。

1.コンシューマ

2.コントロール

3.フレーム

■ 問題 7

VB2010 の Form やコントロールなどのオブジェクトにある属性は、次のうちどれに相当しますか。

1.プロパティ

2.プロファイル

3.プロジェクト