『Excel』 VBAでちょっと便利!?(その3)

2018年08月16日 社員のつぶやき

Excelでのプログラミング3回目です。

今回は、変数のお話しです。

 

■変数

変数とは、色々な値(計算結果の数字や文字列など)を入れておく箱のようなものです。

例えば、

X=1+2

この式では、1+2の計算結果が[X]という変数に入ります。

計算した後にXの値を表示すると[3]と表示されます。

 

■変数の型

変数には入れる値によって様々なタイプがあり、「変数Xには数字を入れます」とか「変数Sには文字を入れます」と始めに宣言しておきます。

 

では、前回のようにExcelを起動し、「開発」タブ→「Visual Basic」を選択してVBEを開き、「標準モジュール」を追加します。

右側の空白部分をクリックし以下のように入力してください。

————————————————————

Option Explicit

Sub test2()

Dim X As Integer
Dim S As String

X = 1 + 2

S = “ABC” & “DEF”

MsgBox X

MsgBox S

End Sub

————————————————————

① Option Explicit は、変数のタイプ(数字を入れる変数とか文字を入れる変数など)をきちんと宣言してから使いますというおまじないのようなものです。

※VBAでは変数のタイプを宣言しないで使うと、どんな型の値でも入れることのできるVariant型というタイプの変数になります。これは便利なようですが、意図した値が入らなくてもエラーにならないので、プログラムのミス(バグと言います)に気づきにくくなります。

Sub test2()  ~  End Subまでが test2というプログラムです。

② Dimは変数を宣言しますというコマンドです。

・Dimのあとの[X]や[S]が変数の名前です。(変数名は分かり易い名前を付けることができ、[NAMAE]や[KEKKA]、[名前]みたいな漢字でもOKです。)

※先頭に[int]や[str]を付けて、intXやstrSのような変数名にするとプログラムが見やすくなり、あとで修正しやすくなります。

・変数名のあとのAsは変数のタイプを後ろに書きますという意味です。
・Integer、Stringは、それぞれ「整数」、「文字列」という意味で、
Dim X As Integer  → [X]を[Integer(整数)]を入れる変数として使います。
Dim S As String   → [S]を[String(文字列)]をいれる変数として使います。
という宣言を行っています。

※変数Xには整数を入れることはできますが、文字列を入れるとエラーになります。
同じく、変数Sには文字列は入れることができますが、文字列以外の値を入れるとエラーになります。

③ それぞれの式にある[=]は等しいという意味ではなく、[=]の左の変数に右の計算結果を入れます(代入)という意味になります。

上は「Xという変数に1+2の結果を代入する」
下は「Sという変数にABCとDEFをつなげた文字列を代入する」という意味になります。
※ 数字の場合は[+]や[-]といった計算式が使えます。
※ 文字の場合は[&]で文字と文字をつなげます。
※ [=]の右の式の部分にも変数を使うことができます。
※ 例えば、X=X+1はXの値に1を足したものをXの値とする、ということになります。

④ MsgBoxは文字を表示するコマンドで、それぞれ<Xの値>、<Sの値>が表示されます。

では、Sub test2()からEnd Subの間の行にカーソルがある状態(test2というプログラムを選択しています)で、実行ボタンを押してください。

※それ以外だと、下のようなダイアログが表示されるので、[実行]ボタンを押してください。

【実行結果】

  

 

正しく表示されましたか?

 

次回からは、Excelの表にVBAで文字列や計算結果を書き込むプログラムを作っていきます。

 

Copyright © syshan.jp all rights reserved.