Visual Basic 初級講座 [改訂版]
VB2005 VB2008 VB2010 VB2012 VB2013 VB2015 VB2017 VB2019

第1回 Visual Basicの位置づけ

2020/1/11

この記事が対象とする製品・バージョン (バージョンの確認方法)

VB2019 Visual Basic 2019 対象です。
VB2017 Visual Basic 2017 対象です。
VB2015 Visual Basic 2015 対象です。
VB2013 Visual Basic 2013 対象です。
VB2012 Visual Basic 2012 対象です。
VB2010 Visual Basic 2010 対象です。
VB2008 Visual Basic 2008 対象です。
VB2005 Visual Basic 2005 対象です。
VB.NET 2003 Visual Basic.NET 2003 対象外ですがほとんどの説明があてはまるので参考になります。
VB.NET 2002 Visual Basic.NET (2002) 対象外ですがほとんどの説明があてはまるので参考になります。
VB6対応 Visual Basic 6.0 × 対象外です。

 

目次

 

1.初級講座の目標

 

Visual Basic初級講座ではプログラミング言語 Visual Basicを体系的に説明し、一通りの知識が身につくことを目標とします。Visual BasicやVisual Studioが初めてという方はまず入門講座を先に読むことをお勧めします。

Visual Basic 入門講座 第1回 はじめてのプログラム

 

この初級講座を終えれば、初級プログラマーであると堂々と名乗って、IT系の会社の就職・転職するのであれば「基本的なプログラムのスキルはある」と言えるレベルになることを目指します。

 

プログラムを勉強する方法には大きく分けて2つあります。1つは、とにかくよくわからなくても実際に動くものをどんどん作っていくという実践的方法です。現代ではインターネットで検索すればプログラムのサンプルはたくさん見つけられますから、この実践的方法で上達していくこともできます。上述の入門講座はどちらかというと実践的方法です。

もう1つの方法は、基本的なことから理解して、その基本をもとに次の応用を理解するという段階的方法です。この段階的方法で勉強すると、新しい説明を読むときには、前に勉強した知識だけが前提となっており、勉強していない知識を求められることはありません。小学校・中学校・高校の教科書はこの段階的方法で記述されています。初級講座では段階的方法でVisual Basicを学習します。

段階的方法を採用する理由は、世の中に段階的にプログラミングを説明しているサイトがかなり少ないように思うからです。

ただ、この方法だと学習は少し退屈になります。早くプログラムしたいと思ってもその前にまず説明を読んで理解するところからはじめる必要があるからです。実際、初級講座第5回まではあまり面白いプログラムが登場せず、退屈に感じるかもしれません。そこで、次回以降ところどころ選択式の練習問題を用意して気分転換できるようにしてみました。もし、練習問題の成績が悪くてもあまり気にしすぎないでください。中学校の数学の授業でもマイナスとマイナスのかけ算がプラスになる理由がわからなくても、先に進めばなんとかなります。「プラスになる理由が納得できるまで次の勉強をしないぞ!」というスタンスは初心者向けのプログラム学習としてはお勧めできません。

プログラミングの知識はなかなか複雑なもので、完全に段階的に説明することは私の力量ではかなり難しいものです。そのため、ときおり「これは現段階では理解しなくて良いです。後で説明します。」のようなただし書きが付くことになると思いますし、私はあとでこっそり前の方の説明を書き換えて段階的になっているようにつじつまを合わせてしまうかもしれません。ある程度大きい変更はトップページで告知します。

私の記事を見て、疑問や質問・感想などがあれば掲示板に書き込んでください。私はハンドル名「るきお」でフォローします。

Visual Basic 中学校 掲示板

 

2.プログラミング言語としてのVisual Basicの位置づけ

そもそも、私たちが勉強しようとしているVisual Basicとは何なのでしょうか?

世の中にあるほかのプログラミング言語と比較してVisual Basicの特徴を明らかにしてみましょう。(以下 Visual Basicのことを VB と省略する場合があります。)

プログラミング言語にはほとんどどんな分野でも扱える汎用のプログラミング言語と、対象の分野が限定されている専門のプログラミング言語があります。

VBは汎用のプログラミング言語です。汎用の言語にはVBのほかに、C#、C++、Javaなどがあります。

専門のプログラミング言語には、データベースを専門に扱うSQLや、Web上の文書を専門に扱うHTMLがあります。

 

他の分類方法として、人間に近い発想でプログラムするのか、コンピューターに近い発想でプログラムして動作するのか という軸があります。

人間は、日本語や英語などの言葉をしゃべります。この言葉に近いプログラミング言語を高水準言語と呼びます。一方コンピューターは主にCPUが1秒間に何億回も命令を実行して動作しており、1 と 0 の組み合わせでデータを扱います。この発想に近い仕組みでプログラムして動作するのが低水準言語です。「低水準」というのは機能や性能が悪いという意味ではありません。

 

高水準/低水準、汎用/専用で概略を示すと下記のようなグループに分かれます。

 

 

 

メモ メモ  -  図の補足
・これ以外にもたくさんの言語があるのですが、私には把握しきれないので省略しています。
・ この図はプログラミング言語の優劣を表していません。プログラミング言語は適材適所であり、ここに掲載されている言語はどの言語もプロが実際の現場でシステム構築やアプリケーション構築に使用しているものです。
・PHP・Perl・RubyはWeb指向が強いため、ここでは「準汎用」と分類しました。

Visual Basicは高水準の汎用言語のグループに属しており、つまり、いろいろなことができて人間に近い発想でプログラミングできることを意味しています。

このグループの中でVisual BasicとC#はマイクロソフトが手厚く支援・展開している言語であり、最も人気のある開発環境(IDE)であるVisual Studioによって強力にサポートされています。そのため、初心者がひとまずプログラミングをはじめてみたいという場合、私はVisual BasicかC#を強くお勧めします。

※「手厚く支援」や「強力にサポート」を実体験してみたい場合、ためしにJavaでシンプルなプログラムをやってみると良いでしょう。はじめるには何をインストールすればよいのか、インストール後実際にプログラムして実行するにはどうしたらよいのかという点で、Visual BasicやC#との差が実感できます。

Visual BasicとC#はとてもよく似た言語で、片方を習得すればもう片方の習得は容易です。マイクロソフトはVisual BasicとC#の両方を主流の言語として今後も発展させていきます。方針ではVisual Basicは親しみやすいプログラミング言語にする、C#は最新の技術を扱えるプログラミング言語にするということを聞いたことがあります。新しい最先端の技術はまずC#で使えるようになることが多いです。その後、技術の普及とともにVisual Basicで簡単に扱えるようになっていきます。初心者は最先端の技術を学ぶことんはありませんので、親しみやすいVisual Basicからはじめて、必要であればその後(または並行して)C#を勉強するのがよいでしょう。

 

プログラムに何か特別な目的がある場合は、Visual BasicやC#は最適な選択ではないかもしれません。たとえば、本格的なゲームが作りたいならば C++ の方をお勧めします。VBやC#でもそれなりのゲームは作れますが、がんばってもスーパーファミコンか、せいぜい初代Playstationレベルです。

転職の募集を見るとプログラミング言語の需要が想像できます。今(2019年12月)2つの転職サイトで検索してみると、求人のうち26%と33%がVBでした。C#は93%と37%でした。需要は十分にあります。

(C#の求人が93%と言うのは高すぎる気がして、何らかの検索のトリックのように思えますがひとまず検索してヒットした結果をそのまま書いておきます。)

 

ここまでの要点をまとめてみましょう。Visual Basicとはどういう言語でしょうか?

 

3.フレームワークと機能

 

3−1.プログラミング言語の役割

VBを含め、ほとんどのプログラミング言語にはそれ自身にはユーザー向けの具体的な機能はほとんど含まれていません。

たとえば、何か表示したり、通信したり、ファイルを読み書きしたり、音を出したり、こういった具体的な機能はプログラム言語には含まれていないことが多いのです。そのため、プログラミング言語「だけ」詳しくなってもほとんど何もできません。

こういった具体的な機能を持っているものはフレームワークやライブラリ、またはパッケージ・モジュールなどと呼ばれます。

VBとC#には、非常に強力なフレームワーク・ライブラリが用意されており、プログラミング言語からはこのライブラリを呼び出すことになります。このライブラリに含まれていない機能はダウンロードしてきたり自作することができます。

プログラミング言語とライブラリの関係

 

プログラミング言語はこういったフレームワークやライブラリを効率よく制御する命令を記述するためのものだと理解してください。この初級講座ではフレームワークやライブラリについても適宜扱いますのでご安心ください。

プログラミング言語からライブラリを制御

 

発展 発展学習  -  フレームワーク

発展学習では意欲的な方のために現段階では特に理解する必要はない項目を解説します。

上の図ではプログラム言語から一方的にフレームワーク・ライブラリに命令していますが、フレームワークは逆にプログラミング言語に命令(呼び出し)を行ってくるのが特徴です。

たとえば、入門講座ではボタンをクリックしたらボタンのClickイベントが呼び出されましたね。あれはフレームワークが呼び出しているのです。このようにプログラミング言語とフレームワークには双方向の関係があります。

 

3−2.Visual Basicが使用するフレームワーク

Visual Basicで使用するフレームワークは通常次のどちらかです。これらのフレームワークはVBだけでなく、C#やPython(の亜種のIronPython)などでも使用できます。

・.NET Framework (ドットネット フレームワーク)

・.NET Core (ドットネット コア)

.NET Frameworkと.NET Core

もともとは.NET Frameworkしかなかったのですが、2016年に.NET Coreが登場し、2020年には.NET Coreの方に一本化されます。名称からは「Core」(コア)が取れて、単に .NET (ドットネット) と呼ぶことになるそうです。

この図を見ると2019年現在は.NET Core 3.1を使用すると良いように見えますが、Visual Studioでの.NET Core 3.1のサポートがまだ完全ではなく初心者は .NET Framework 4.7.2 を使用するのが良いと思います。本当は.NET Framework 4.8といいたいところなのですが、.NET Framework 4.8はまだ一部日本語されておらず初心者には使いにくいのです。

.NET Frameworkと.NET Coreは互換性が高いため.NET Frameworkで学習したことは.NET Coreでも無駄になりません。

2020年11月には.NET 5が登場する予定なので、このとき、Visual Studioが手厚く.NET 5をサポートするようであれば乗り換えるタイミングだと思っています。

 

.NET Frameworkまたは.NET Coreを使うことで、VBではいろいろな種類のアプリケーションを扱うことができます。

VBは汎用のプログラミング言語なので究極的には、フレームワークの制御のすべてを自分で記述すれば(そのフレームワークで実現可能な)あらゆる種類のアプリケーションが作成できるのですが、実際には、用意されているテンプレートを使ってアプリケーションの土台となる部分を自動的に構築し、そのあと、そこに自分のプログラムを追加していく形で開発していくことになります。

アプリケーションの種類によって機能や動作・見かけはかなり変わります。テンプレートから作成できる代表的なアプリケーションの種類には次のようなものがあります。

以下で説明するアプリケーションの種類は.NET Frameworkと.NET Coreの両方で使用することができます。.NET Frameworkで作成するとWindowsでしか動作しませんが、.NET Coreで作成するとWindowsの他、Mac, Linuxで動作するものもあります。

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

基本的には文字で入力し、文字で出力するアプリケーションです。黒いウィンドウとして表示されるのが特徴的です。.NET Coreで作成するとWindows・Mac・Linuxで動作します。

アプリケーションの中には画面の表示が一切なく、ユーザーの目に見えないものがあります。こういったアプリケーションはこのテンプレートから作成します。

最もシンプルなテンプレートのため勉強用にもよく使われます。

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

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

Windowsで良く見るGUIをもったアプリケーションです。Windowsで見かけるようないろいろなアプリケーションを作成することができます。.NET Coreで作成してもWindowsでのみ動作します。

サンプルや勉強用で良く見かける典型的な外見は次の通りです。

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

外見はいろいろとプログラムで変更できます。たとえば、次のゲームはWindowsフォームアプリケーションでできています。(私がVBで作ったゲームです。)

町 戦闘
ウィンドウ操作 シューティングゲーム

また、下記の編集ソフトもWindowsフォームアプリケーションでできています。(これも私がVBで作りました。)

Web Image Genrator

入門講座ではWindowsフォームアプリケーションを前提にしていましたが、これはここで説明しているに.NETのフレームワークが提供するアプリケーション機能の一部に過ぎません。汎用言語であるVBはもっといろいろな種類のアプリケーションが作成できるのです。Windows フォーム アプリケーション = VB というわけではないことを覚えておいてください。

Webアプリケーション

Webアプリケーションはブラウザー内に表示され、ブラウザーで操作するアプリケーションです。ブラウザーを利用するのでOSと問わずWindows, Mac, Linux, iPhone, Andoroid等で使用できます。

プロが仕事で扱うアプリケーションとしては最も一般的なアプリケーションです。

Webアプリケーション

ブラウザー内であればさまざまな見かけや外見を実現することができます。

本格的なものを作るにはHTMLやCSS、JavaScriptの知識など関連する分野の知識が必要なので初心者向けではありません。

Webアプリケーションは作り方によって細かく種類が分かれており、種類によっては.NET Frameworkだけで使用できるもの、.NET Coreだけで使用できるものがあります。そのため.NET FrameworkでWebアプリケーションを勉強すると.NET Coreではあまり役に立たない場合があります。2019年現在Webアプリケーションの構築を勉強する場合は、.NET Coreを使って勉強するのが良いです。

 

WPFアプリケーション

WPFアプリケーションはWindowsフォームアプリケーションのようなアプリケーションです。.NET Coreを使用してもWindowsでのみ動作します。

外見の制御が得意で、回転や拡大縮小などの表示上の処理がWindowsフォームアプリケーションよりも高性能に行えます。

プログラミングの内容はWindowsフォームアプリケーションとは大きく異なります。初心者向けではないように思います。

発展 発展学習  -  アヴァロニア

発展学習では意欲的な方のために現段階では特に理解する必要はない項目を解説します。

有志が作成しているWPFから派生したプロジェクトとしてAvalonia(アヴァロニア)があります。AvaloniaはWindows・Mac・Linux・Andoroid・iOSなど複数のOS上で動作することを目指しています。「有志」によるプロジェクトのため今のところマイクロソフトの手厚い支援はありません。上級者向けです。

https://github.com/AvaloniaUI/Avalonia

 

4.歴史と派生言語

 

Visual Basicは現役のプログラミング言語の中では歴史が古いほうであり、過去のバージョンと現在のバージョンは別の言語と呼べるほど大きく違います。

バージョン6であるVisual Basic 6.0(通称VB6)までが古いVBで、2002年に登場したVisual Basic.NET以降が現在(2019年)のVBです。

VBの歴史

この初級講座ではもちろん現在のVBを扱います。現在のVBに変わるときにマイクロソフトが製品名に「.NET」(ドットネット)をつけたため、これ以降のVBのことを「VB.NET」(ブイビードットネット)と呼ぶことがあります。その後のバージョンで「.NET」という名称ははずされたので、現在のVBのこと全体を「VB.NET」と呼ぶことは正確ではないのですが、バージョン6以前の古いVBと区別するために「VB.NET」と呼ぶことがあります。

VB5, VB6は1998年頃大ヒットした製品で、これを使って大量のシステム・アプリケーションが作成されました。2019年現在でもそれらのシステム・アプリケーションで生き延びているものがあり、いまだにVB6を仕事にしている技術者もいるのです。そのため、「私がやっているのは新しいほうのVBですよ」と強調したい場合は「VB.NET」と呼ぶことがあります。

それから、VBから派生したVBA(Visual Basic for Applications)とVBS(VBScript)と呼ばれる言語もあります。VBAは今でもExcelのマクロとしてよく使われています。VBSは気軽に動かせる軽量なVBだったのですが現在はほとんど使われていないようです。VBAとVBSは古いVBに似せて作られているので、現在のVBとはぱっと見は似ていますが大きくことなる言語です。