変数は宣言してから使いましょう
本記事では変数の定義、データ型について解説してきます。
変数を使うにあたって決まりがありますのでここで紹介させていただきます。
本記事を読むとコード内で変数を定義する方法、変数のデータ型の種類について学ぶことが出来ます。
前回記事で変数について学習しました。今回も変数について学習してもらいます。
柔軟な使い方が出来る変数には一定の決まりがあります。
前回の記事
前の記事では変数という機能を使ってコードを書いてみました。
コードの中でうまく使う事でセルの範囲や値がどんな値でも一旦受けてくれます。
これで都度範囲が違うデータに対しても柔軟に対応出来るようになります。
本記事での課題
今回の課題です。重要度高い記事です。頑張って理解してください。
変数を宣言する:Dimとは
前回記事の最後に Dim が出てきました。続きを説明させていただきます。
Dimは以下の様に使います。
Dimは「変数を使いますよ」という宣言です。
Dimの後に続く〇〇は変数です。変数はほぼどんな言葉でも(日本語でも英語で)OKです。
変数にも一定の決まりがある
変数を設定する際はもともとVBAで設定されているワードはNGですのでご注意ください。
続いてAsのあとに続く△△に入るのは型です。数値とか文字とか日付等々あります。
変数を使う時は型を指定してから使うのが決まり(例外有)だと考えてOKです。
最後のシングルクォーテーション以降はコメントです。コメントは書いても書かなくてもOKです。
書いた方が自分にも他人にも優しいので出来るだけコメントを書くクセをつけてください。
なぜ自分にも他人にも優しいかは後程説明します。
変数の型を提示
では具体的な型の説明に入ります。
勉強初期に使いそうな型だけ並べました。値の範囲は各々勉強の進度に応じて調べてください。
番号 | コード | データ型 | 値の範囲 |
---|---|---|---|
1 | String | 文字列 | 文字列 |
2 | Boolean | ブール | TrueまたはFalse |
3 | Integer | 整数 | 一定の範囲の整数 |
4 | Long | 長整数 | Integerより広い範囲の整数 |
5 | Single | 小数 | 一定の範囲の小数 |
6 | Date | 日付 | 日付 |
7 | Variant | なんでもOK | なんでもOK |
桁が多い変数はその分メモリを消費する
Integer と Long はどちらも整数(数値)です。
Integer は -32,768 ~ 32767 の整数。 Long は-20億~+20億ぐらいの数値を扱う事が出来ます。
数値を見た時に2進法が分かる人は思いつくと思います。
Integer型は2バイトで16ビット、Long型は4バイトで32ビットだなと想像されると思います。
今回はこれ以上掘り下げませんのでこのぐらいにしておきます。
重要なことは「桁を多く持てる型を定義するときはそれだけ大きな領域を使う」という事です。
理屈上は上記のような建付けなのですが現在はPCのレベルも上がっています。
使用者側がメモリの心配をする必要はないと言われています。
よって実務ではメモリの容量を気にせず使い勝手を考えて変数を選択していただくことをおすすめします。
ここで私がどうやって変数の型を選択しているのかについてひとつの例を紹介します。
整数はLong型一択
私は整数を使うときはLong型ばかりです。
私が知らないぐらい古いパソコンでは不要に桁数を多く確保すると処理速度が遅くなったようです。
先ほど申し上げた通り最近のパソコンではメモリの使用量を気にしなくてよいとの事ですのでLong型を使っています。
Long型を使うのにはもう1つ理由があります。
対象としているデータが増えてIntegerの範囲ではまかないきれない時にエラーが出てしまいます。
よってできるだけ桁数の変化に対応し易い様にLong型を使っています。
Option Explicitについて
続いて「Option Explicit」の解説をします。シリーズ2番目の記事で触れましたがその時は説明しませんでした。
説明する機会がきましたので解説します。これは「変数の宣言を強制する」という事を謳(うた)っています。
「Option Explicit」を書くと変数を使う際Dim・・・という様に変数を宣言しないとエラーが出ます。
なんとなくですが「なんか不便になってませんか?」と考えたこともありました。最初は確かに不便です。
ただしスキルアップした時や複数人で作業する機会が増えてくると不便さを超えるメリットを感じる事になります。
変数を宣言する際は冒頭に「Option Explicit」を書いてDim・・・を使って変数を宣言した方が良いです。
メリット含め以降で解説していきます。
Option Explicitの表示方法
VBEに文字を直書きしてもOKですがVBEからの操作を紹介しておきます。
まずは「ツール」タブを押下。その後「オプション」を押下。
「オプション」というタイトルのダイアログボックスが立ち上がります。
「変数の宣言を強制する(R)」にレ点を付けてください。
これでこのダイアログボックスでの操作は終了です。
「OK」ボタンを押下しダイアログボックスを閉じてください。その後コードウインドウを確認します。
これでコードウインドウの先頭に「Option Explicit」が表示されます。
表示されない方は上記設定が出来たらデータを保存してから一旦Excelを閉じましょう。
再度Excelを起動させてVBEを確認してください。これで表示が入るはずです。
変数の宣言をする事のメリット
変数の宣言におけるメリットは大きく分けて2つです。
- エラーチェック
- 他の人の書いたコードを読む時や自分のコードを他の人に読んでもらう時に便利に働く
エラーチェック
定義した型と違う型の値が入力された際エラーを出してくれます。
エラーで間違いを教えてくれます。リカバリーしやすい環境を作る事ができます。
もう1つのチェック機能として自動変換の機能も追加されます。
例えば「ABE」という変数を設定した際 「abe」と入力しEnterを押すと自動で「ABE」に変換されます。
入力間違いが起きにくくエラーが出ないように助けてくれます。
他の人の書いたコード・・・便利に働く
続いて他人のコードを読むとき・・・便利に働くについて説明します。
変数は自由に設定出来るのでコード内でいろんな変数が設定出来ます。
たくさん変数が使われると「この変数は何のこと?何に使っているの?」といった事が起きます。
自分でも思考が制御出来なくなり読みにくいコードを書くことになってしまいます。
当たり前ですが書いた人でも理解するのに苦労する変数(コード)は書いてない人が読むと非常に難解です。
数ヵ月すると書いた本人も忘れてしまいます。
メンテしたくてもリカバリーできず結局コードを全部書き直すという事が起こるかもしれません。
誰もが読みやすくする為には作法が重要です。
参考:Option Explicitの表記はおすすめですが強制はしません
「Option Explicit」を書いた後型を定義しコメントで内容を説明するという作法を守りましょう。
後で自分が見る時、他者が見る時もある程度見当がつくようなコードを書くことが出来ます。
ただし自由度が大きいVBAですのでこれが絶対ではないです。
少ない量のコードであったり使用する変数の数が3~5個程度であれば説明は不要かもしれません。
ここは慣れですので各自の状況で判断してください。
応用:変数の定義を用意する際の具体例
あくまで私の使用例ですが変数を定義する際はコメント含めこんな感じで書いてます。
一例として他のデータから画像だけ取ってきましたので内容は全く分からなくて大丈夫です。
フォーマットとしてこんな感じなんだなと思ってください。
この場合はコードの量としては少なく変数の数も4つだけでした。
しかし説明がないと他者に伝わらないかもしれない考えコメントを残すようにした次第です。
*(アスタリスク)を使って仕切りを作るなど見易さを考えてコーディングしてあげるのもおすすめですよ。
まとめ
作法を守ってコードを書くとトレーサビリティの要素を備えた変数を用意する事が出来ます。
よって変数は宣言してから使いましょう。
- 変数はいろんな型がある
- 変数は宣言してから使おう
- コメントで変数の説明をしよう
Enjoy Excel
次は罫線を書いたりコードをセル画面から実行できる様ボタンを設定するための説明をします。
ボタンを押したらメッセージボックスを出して処理をするか?の確認も付けたいです。
メッセージボックスもセットしたいですね。 次回説明以降でしていきます。
参考:関連記事
本シリーズはこちらの記事とも連携しています。