「Excel」VBAでプログラムを動かす箱の仕組み

( ノ゚Д゚)こんばんは、こんにちは、おはようございます。おやすみなさい! とっちーです。

本日は、VBAの変数を宣言する仕組みのご紹介です、楽しくお話をしたい!と思います。

変数の宣言って何?

 

変数、”かわるかず”なのですが、オブジェクトやメソッドが作業する上で必要な値を、一時的に保管するためのいわば金庫とでもしておいてください。

 

「箱」になります。プロシージャを正常に動作させるために必要な宣言です。省略をしないように心がけましょう。

 

基本、プロシージャ内で宣言している変数は、そのプロシージャでのみ使用可能な変数になります。

 

 

複数のプロシージャで宣言をしたいときは、Option Explicitで作成をしましょう。

 

記述方法は、簡単ですが。

 

Option Explicit

dim a As Integer

Sub Q()

      a=1

      a=a+1

    Msgbox a

End_Sub

Sub W()

      a=10

      a=a/5

    Msgbox a

End_Sub

上記のように一度宣言すれば、同じ中にあるプロシージャに活用できます。

 

今回は、一つのプロシージャの中での変数宣言をお知らせします。

 

Sub S()

  dim a As Integer  変数「a」を整数型「Integer」で宣言します。
  a=1  変数「a」に1が代入されている状態になります。
  a=a+1  変数「a」に1を足したものを変数「a」に代入します。1+1になりますので、変数「a」は2が代入されている状態になります。
  Msgbox a 変数「a」に代入されている値をMsgbox(表示)で代入されている値を表示させています。

  End_Sub

変数を宣言する時、Dimを使用します。Dimは、宣言ステートメントになります。

 

宣言する時の注意点

 

変数を宣言する時に代入する変数名には注意が必要です。

 

適用したプロシージャ内では、同じ変数名は指定できません。
VBAで設定されている関数名やステートメント及びメソッド(プロパティ)と同じ名前は指定できません。RangeなどすべてのVBAで設定されているもの
変数名の大文字小文字は区別されません。Eur EURもだめです。
「!」「”」「#」「%」「$」「&」「@」「.」などの記号は指定できません。
変数名は、半角255文字以内(全角は換算しましょう)
以上に注意しましょう。

 

変数を代入するときに使用する演算子

 

代入する際は、「=」イコールを使用します。

変数は同時に宣言できる

 

Dim A As String,B AS Integerなどのように「,」で区切って指定できます。

変数に代入できる値の種類

 

代入する変数の入れ物を作成するためには、代入する値にあった箱を用意しなくてはなりません。

 

お札しか入らないお財布に小銭を入れるとどうなるでしょう。

 

また、冷蔵庫に暑いものを入れたらどうなるでしょう。冷蔵庫が壊れるように変数も正常に機能を果たすことが出来なくなるんです。

 

そこでプログラムを正常に動作させるための設定に必要な変数のデータ型一覧をお伝えします。

事務処理でよく使うデータ型の3つの注意点

 

1.日付や時刻を代入する時は、Dateで宣言しましょう。

 

2.整数型のIntegerを許容範囲外で宣言すると、オーバーフローでプログラムが停止します。

 

3.文字列を代入する場合は、VariantでなくStringで宣言しましょう

 

以上の3点を守りましょう。

 

オーバーフローのプログラム

以下の動画は、Integerの整数型では、オーバーフローしてしまうプログラムをLongの長整数型に変更すると、どうなるかを作成しています。

 

 

取り扱えることが出来る数値を超えてしまうと、出てくるお知らせになります。同様なものを見られたときは、まずデータの型を見直してみましょう。

 

 

まとめ

 

 

今回は、VBAの変数を宣言する仕組みについてお話してみました。

変数を宣言せずにも作成可能な一面もありますが必ず宣言を行うようにしましょう。ちなみにOption Explicitは大変便利です。私だけかも・・・

作成するときは、こまめな保存と確認をしてからSub/ユーザーホームの実行をするようにいたしましょう。

 

確認作業は、保存の後を守りましょう。泣いちゃいますよ。

今日も安心してプロシージャを作成できるように

そんな、お手伝いが出来ることを願っています。

 

 

楽しくお仕事できたらなって。そう思っていただけたら幸せです。

 

ま、何でも楽しくしていただけたら、うれしいです。ものすごく。