Excelを勉強しましょう EnjoyExcel

アイコンの機能や関数の説明、VBA初心者向けの勉強方法について情報掲載しています。関数、VBAともに理解が進むように出来るだけ事例を交えて説明しています。

VBA-8 変数っていろんな型がある。万能ですが形にこだわります。

f:id:EnjoyExcel:20210627130807p:plain

 

前回の記事では変数ってどんなものなのか少しわかっていただいたかと思います。

enjoyexcel.hatenablog.com

 

Dim が出てきて記事が終わってました。続きを説明させていただきます。

 

Dimは以下の様に使います。

 

Dim ○○ As △△ ’○○に対する説明(コメント)

 

Dimは「変数を使いますよ」というコードの書き出しだと思ってください。

 

Dimの後に続く〇〇は変数です。変数はほぼどんな言葉でも(日本語でも英語で)OKです。もともとVBAで設定されているワードはNGですのでご注意ください。続いてAsのあとに続く△△に入るのは型です。数値とか文字とか日付等々あります。

 

そんなわけで変数を使う時は型を指定してから使うのが決まりだと思ってください。

 

最後のシングルクォーテーション以降はコメントです。書いても書かなくてもOKですが書いた方が自分にも他人にも優しいので出来るだけコメントで変数の内容について説明するクセをつけてください。なぜ自分にも他人にも優しいかは後程説明します。

 

では具体的な型の説明に入ります。上記の△△の部分に表の「コード」という列に居る値が入ります。「値の範囲」列で説明している内容が少々荒いのですが必要最低限の説明で最初に使いそうな型だけ並べました。値の範囲は各々勉強の進度に応じて調べてください。

f:id:EnjoyExcel:20210627134001p:plain

 

Integer と Long はどっちも整数(数値)です。

Integer は -32,768 ~ 32767 の整数。 Long は-20億~+20億ぐらいの数値を扱う事が出来ます。 

 

金額とかはLongでセルの行、列を追いかける時はIntegerって感じでしょうか。3万行を超える仕事の時はLongを使うことになりますね。

金額も小数が出てきたらSingleを使ったりここには書きませんでしたがさらに桁が多いDoubleを使う等様々です。

 

ちなみに私はセルを追いかける時も金額もほとんどLongばっか。説得力ないですよね。

前回書いたコードも Dim r As Long って書いてます。

 

rという一文字の英語が変数です。この変数rには数値が入るという事ですね。Integerで済みそうな仕事でも面倒なのでlongと書いてしまっています。

 

私が知らないぐらい古いパソコンでは不要に桁数を多く確保すると処理速度が遅くなるという事があったようですが最近のパソコンではそんなに大差もない事といつ大きいデータの処理に変更されるか分からないので変化に対応し易いい様にLongと書く様にしています。

 

あくまで私の理屈ですので本当は仕事にあった型の定義を行ってください。

 

続いて以前の記事のネタを回収しようと思います。「Option Explicit」の話をしたと思います。

enjoyexcel.hatenablog.com

 

これは「変数の宣言を強制する」という事を言ってます。(訳として合ってるかは?です)冒頭に「Option Explicit」を書いておくとDim・・・という様に変数を宣言してから使用しないとエラーが出るように設定出来ます。

 

「ん?」エラーが出るように設定・・・「なんか不便になってませんか?」と考えたこともありました。確かに不便です。ただし不便さを超えるメリットがあるので変数を宣言する際は冒頭に「Option Explicit」を書いてDim・・・を使って変数を宣言した方が良いです。

 

変数の宣言におけるメリットはエラーチェック他の人の書いたコードを読む時や自分のコードを他の人に読んでもらう時に便利に働くという事です。

 

エラーチェックというのは型を決めて定義した変数に定義した型と違う型の値が入力された際エラーを出して教えてくれるのでコード間違いの可能性に気付きやすくなります。

 

もう1つのチェック機能として自動変換の機能も追加されます。例えば「ABE」という変数を設定した際 「abe」と入力しEnterを押すと自動で「ABE」に変換されるので入力間違いが起きにくくエラーが出ないように助けてくれます。

 

続いて他人のコードを読むとき・・・便利に働くについて説明します。

 

変数は自由に設定出来るのでコード内でいろんな変数が設定出来ます。たくさん変数が使われると「この変数は何のこと?何に使っているの?」といった様に自分でも思考が制御出来なくなり読みにくいコードを書くことになってしまいます。

 

当たり前ですが書いた人でも理解するのに苦労する変数(コード)は書いてない人が読むと非常に難解です。

 

数ヵ月すると書いた本人も忘れてしまいメンテしたくてもリカバリーできず結局コードを全部書き直すという事が起こるかもしれません。

 

誰もが読みやすくする為には作法が重要です。「Option Explicit」を書いた後型を定義しコメントで内容を説明するという作法を守ることで後で自分が見る時、他者が見る時もある程度見当がつくようなコードを書くことが出来ます。

 

ただし自由度が大きいVBAですのでこれが絶対ではないです。

 

少ない量のコードであったり使用する変数の数が3~5個程度であれば説明は不要かもしれません。ここは慣れですので各自の状況で判断してください。

 

あくまで例ですがコメントまで残す際はこんな感じで書いてます。一例として他のデータから画像だけ取ってきましたので内容は全く分からなくて大丈夫です。フォーマットとしてこんな感じなんだなと思ってください。

f:id:EnjoyExcel:20220226012841p:plain

この場合はコードの量としてはそんなに多くなかったし変数の数も4つなのですが説明がないと他者に伝わらないかもしれないと思ったのでコメントまで残すようにしました。

 

作法を守ってコードを書くとトレーサビリティの要素を備えた変数を用意する事が出来ます。よって変数は宣言してから使いましょう。

次は罫線を書いたりコードをセル画面から実行できる様ボタンを設定するための説明をします。

 

ボタンを押したらメッセージボックスを出して処理をするか?の確認も付けたいのでメッセージボックスもセットしたいですね。 次回説明以降でしていきます。