毎週金曜日、プログラミングのちょっとした講座を記しています。
ここでは、小学校から「プログラミング」が必須項目になってしまったため、お父さん・お母さん・おじいちゃん・おねえちゃんが子供に「プログラミング」教えることができるように、ここでこっそりと勉強してしまおうという企画です。
今週は先週までの知識を踏まえ、いよいよ簡単なプログラムを作ってみましょう。
プログラムを始める前に、プログラムを作る画面を出さなければなりません。そのためには次のように行ってください。
まず、エクセルを起動します。起動したらメニューの「ファイル」から「オプション」を選択します。
これで、プログラムを入力する画面が出てきました。もし、右側の画面が白ではなくグレーになっている場合は、左側の「Sheet1(Sheet1)」という所をダブルクリックしてください。そうすると、右側が白くなります。
これでプログラムが入力できる画面になりました。それではここからプログラムを作ってみましょう。
まず、本日はプログラムの最初のド定番である「Hallo word」を表示させてみましょう。っとその前に余談になりますが、なぜ、プログラムを覚えるために、一番最初に「Hallo word」なのか?というトリビアですが、1978年に発刊されたC言語の本「プログラミング言語C」に書いてあったのが初めてと言われおり、C言語作者ブライアン・カーニハンとデニス・リッチーは「UNIX」と呼ばれる、今のWindowsやMacのOSを開発した張本人です。そのため、この「Hallo word」を表示させるといったことが、プログラミングの世界に今も影響を与えているのであります。
それはさており、さっそくこのド定番である「Hallo word」を表示させてみます。
まずは、プログラムというのは基本一方通行、上から下へということを覚えておりますか?プログラムは上から順番に1行ずつ命令を実行します。これを覚えておいてください。
最初に作るプログラムに名前を付けなければなりません。一番最初にプログラムの名前を入れます。VBAの場合は「Subプログラム名()」となります。また、同時にプログラムが「ここで終わりですよ
」といった標識もおかなければなりません。その命令は「End Sub」です
交通標識では
今回は文字を入れますので文字列の変数を定義しましょう。使用する変数を「moji01」とすると、
dim moi01 as string
となります。「moji01 は文字列」といった意味です。これをプログラムに入れてしまいます
次に、変数に「Hallo word!」の文字列を格納(変数に覚えさせる)します。格納には「=」を使いますが、ここでちょっと混乱するかもしれませんが、「=」の使い方は普通の数学の「=」の使い方と逆になるときことです。普通の数学の場合は「左」から「右」となっています。1+1は2となりますが、これを「=」で表すと、「1+1=2」ですが、プログラムの場合の「=」は「右」から「左」となります。つまり 「2=1+1」のような流れになります。
これを踏まえて変数に「Hallo word!」を入れます。
moji01 = "Hallo word!"
これもプログラムに入れましょう。
これで「F5」を押してください。先ほどと同じ結果が得られました。なぜ、ここで変数を使った方法をご紹介したかと言いますと、この「MsgBox」はプログラムの途中の状態を確認することによく使われます。プログラムの要所に「MsgBox」を入れることによって変数の中身の確認をすることができます。これによって実際の結果が合っているかどうかの検証ができるわけです。プログラムが出来上がった場合はこの「MsgBox」が不要になりますが、その場合、命令の前に「’」を入れれば「’」の後ろ1行が注釈とみなされ、命令は実行されません。
例えば、先ほどの「MsgBox moji01」の前に「’」を入れて「F5」を押してみてください。するとメッセージボックスは表示されないはずです。
では次に「Hallo word!」の次に「Hallo Japan!」を表示させてみましょう。先ほどと同じ要領で下にくっつければよいのです。
これを入力して「F5」を押すと、先ほどの「Hallo word!」の次に「Hallo Japan!」が表示されます。
これで「Hallo word!」の次に「Hallo Japan!」を表示することができました。
ここでちょっと、先ほど「プログラムの中身はあとで分かりやすいように上部側に変数の定義、そして実際のプログラムの命令というしていくのが一般的です。」と表記しました。この整理とはどんな感じかと言いますと、次のようになります。
これは先ほどのプログラムと同じ結果となります。(先程のプログラムは下記です)
プログラムの整理のコツとして、変数の定義は同じところにまとめるのと、始めから分かっている変数への値の代入もまとめてしまうということです。この整理は少々今の段階では難しいかもしれません。徐々に作っていくことによって分かってきますので焦らないでください。まずは自分のスタイルでプログラムを組みましょう。
今回はここまでです。来週は「条件」を説明していきます。
まず、エクセルを起動します。起動したらメニューの「ファイル」から「オプション」を選択します。
エクセルのオプションで「リボンのユーザー設定」で「開発」にチェックを入れます。
これで、プログラムを入力する画面が出てきました。もし、右側の画面が白ではなくグレーになっている場合は、左側の「Sheet1(Sheet1)」という所をダブルクリックしてください。そうすると、右側が白くなります。
これでプログラムが入力できる画面になりました。それではここからプログラムを作ってみましょう。
まず、本日はプログラムの最初のド定番である「Hallo word」を表示させてみましょう。っとその前に余談になりますが、なぜ、プログラムを覚えるために、一番最初に「Hallo word」なのか?というトリビアですが、1978年に発刊されたC言語の本「プログラミング言語C」に書いてあったのが初めてと言われおり、C言語作者ブライアン・カーニハンとデニス・リッチーは「UNIX」と呼ばれる、今のWindowsやMacのOSを開発した張本人です。そのため、この「Hallo word」を表示させるといったことが、プログラミングの世界に今も影響を与えているのであります。
それはさており、さっそくこのド定番である「Hallo word」を表示させてみます。
まずは、プログラムというのは基本一方通行、上から下へということを覚えておりますか?プログラムは上から順番に1行ずつ命令を実行します。これを覚えておいてください。
最初に作るプログラムに名前を付けなければなりません。一番最初にプログラムの名前を入れます。VBAの場合は「Subプログラム名()」となります。また、同時にプログラムが「ここで終わりですよ
」といった標識もおかなければなりません。その命令は「End Sub」です
交通標識では
これをプログラムにすると
Sub 表示1()End Sub
となります
この間がプログラムということになります。
次に、メッセージBOXを表示させる命令は「 MsgBox メッセージ」です。この「メッセージ」の部分に表示させるメッセージを入れます。今回、「Hallo word」と表示させますので、
MsgBox Hallo word となりますが、ここでちょっと待った!
命令と文字列を区別しなければ、コンピュータはバカですので、混乱します。そこで文字列の場合は、「これは文字列ですよ~」というために文字列をダブルコーテーション(”)で囲む必要があります。ですので、
この間がプログラムということになります。
次に、メッセージBOXを表示させる命令は「 MsgBox メッセージ」です。この「メッセージ」の部分に表示させるメッセージを入れます。今回、「Hallo word」と表示させますので、
MsgBox Hallo word となりますが、ここでちょっと待った!
命令と文字列を区別しなければ、コンピュータはバカですので、混乱します。そこで文字列の場合は、「これは文字列ですよ~」というために文字列をダブルコーテーション(”)で囲む必要があります。ですので、
MsgBox ”Hallo word!”
となります。
これを先ほどのプログラムの領域に入れちゃいましょう。
となります。
これを先ほどのプログラムの領域に入れちゃいましょう。
Sub 表示1()MsgBox ”Hallo word!”End Sub
これで「Hallo word!」を表示させるプログラムが出来上がりました。これを入力したら「F5」キーを押してみてください。
表示されました。これでプログラムを組むことができました。これを使って少し応用していきます。
次に変数を使って表示させてみましょう。
プログラムの中身はあとで分かりやすいように上部側に変数の定義、そして実際のプログラムの命令というしていくのが一般的です。
まず、変数の定義は「dim as」 という命令を使います。dimの次に使う変数(なんでも良い)、asの後ろに変数のデータ型を入れます。
前回に説明したコレです。
表示されました。これでプログラムを組むことができました。これを使って少し応用していきます。
次に変数を使って表示させてみましょう。
プログラムの中身はあとで分かりやすいように上部側に変数の定義、そして実際のプログラムの命令というしていくのが一般的です。
まず、変数の定義は「dim as」 という命令を使います。dimの次に使う変数(なんでも良い)、asの後ろに変数のデータ型を入れます。
前回に説明したコレです。
データ型 | VBA表記 | 値の範囲 |
---|---|---|
文字列型 | String | 文字列 |
ブール型 | Boolean | True または False |
バイト型 | Byte | 0から255の正の整数 |
整数型 | Integer | -32,768から32,767の整数 |
長整数型 | Long | -2,147,483,648から2,147,483,647の整数 |
単精度浮動小数点型 | Single | -3.40282×10の38乗~3.40282×10の38 |
倍精度浮動小数点型 | Double | -1.79769×10の308乗~1.79769×10の308 |
通貨型 | Currency | -922,337,203,685,477.5808から922,337,203,685,477.5807 |
日付型 | Date | 西暦100年1月1日から西暦9999年12月31日 (日付と時刻) |
オブジェクト型 | Object | オブジェクト参照するデータ型 |
バリアント型 | Variant | なんでも良い |
今回は文字を入れますので文字列の変数を定義しましょう。使用する変数を「moji01」とすると、
dim moi01 as string
となります。「moji01 は文字列」といった意味です。これをプログラムに入れてしまいます
Sub 表示1()dim moi01 as stringEnd Sub
次に、変数に「Hallo word!」の文字列を格納(変数に覚えさせる)します。格納には「=」を使いますが、ここでちょっと混乱するかもしれませんが、「=」の使い方は普通の数学の「=」の使い方と逆になるときことです。普通の数学の場合は「左」から「右」となっています。1+1は2となりますが、これを「=」で表すと、「1+1=2」ですが、プログラムの場合の「=」は「右」から「左」となります。つまり 「2=1+1」のような流れになります。
これを踏まえて変数に「Hallo word!」を入れます。
moji01 = "Hallo word!"
これもプログラムに入れましょう。
Sub 表示1()dim moi01 as stringmoji01 = "Hallo word!"End Sub
そしてメッセージボックスを表示させる命令「MsgBox」も入れます。変数の中身を表示させるには「MsgBox」の後ろに変数を指定します。つまり、
MsgBox moji01
先ほど文字列は「”」で囲みましたが、変数はそのまま「”」で囲みません。つまり、「”」で囲まないと、プログラムは「変数」として認識します。これもプログラムに組み込みます。
MsgBox moji01
先ほど文字列は「”」で囲みましたが、変数はそのまま「”」で囲みません。つまり、「”」で囲まないと、プログラムは「変数」として認識します。これもプログラムに組み込みます。
Sub 表示1()dim moi01 as stringmoji01 = "Hallo word!"MsgBox moji01End Sub
これで「F5」を押してください。先ほどと同じ結果が得られました。なぜ、ここで変数を使った方法をご紹介したかと言いますと、この「MsgBox」はプログラムの途中の状態を確認することによく使われます。プログラムの要所に「MsgBox」を入れることによって変数の中身の確認をすることができます。これによって実際の結果が合っているかどうかの検証ができるわけです。プログラムが出来上がった場合はこの「MsgBox」が不要になりますが、その場合、命令の前に「’」を入れれば「’」の後ろ1行が注釈とみなされ、命令は実行されません。
例えば、先ほどの「MsgBox moji01」の前に「’」を入れて「F5」を押してみてください。するとメッセージボックスは表示されないはずです。
Sub 表示1()dim moi01 as stringmoji01 = "Hallo word!"' MsgBox moji01 ←この部分が注釈とみなされるためプログラムでは無視されるEnd Sub
では次に「Hallo word!」の次に「Hallo Japan!」を表示させてみましょう。先ほどと同じ要領で下にくっつければよいのです。
Sub 表示1()dim moi01 as stringmoji01 = "Hallo word!"MsgBox moji01dim moi02 as stringmoji02 = "Hallo japan!"MsgBox moji02End Sub
これを入力して「F5」を押すと、先ほどの「Hallo word!」の次に「Hallo Japan!」が表示されます。
これで「Hallo word!」の次に「Hallo Japan!」を表示することができました。
ここでちょっと、先ほど「プログラムの中身はあとで分かりやすいように上部側に変数の定義、そして実際のプログラムの命令というしていくのが一般的です。」と表記しました。この整理とはどんな感じかと言いますと、次のようになります。
Sub 表示1()dim moi01 as stringdim moi02 as stringmoji01 = "Hallo word!"moji02 = "Hallo japan!"MsgBox moji01MsgBox moji02End Sub
これは先ほどのプログラムと同じ結果となります。(先程のプログラムは下記です)
Sub 表示1()dim moi01 as stringmoji01 = "Hallo word!"MsgBox moji01dim moi02 as stringmoji02 = "Hallo japan!"MsgBox moji02End Sub
プログラムの整理のコツとして、変数の定義は同じところにまとめるのと、始めから分かっている変数への値の代入もまとめてしまうということです。この整理は少々今の段階では難しいかもしれません。徐々に作っていくことによって分かってきますので焦らないでください。まずは自分のスタイルでプログラムを組みましょう。
今回はここまでです。来週は「条件」を説明していきます。
コメント