Const(定数)
僕、高校は普通科、あまり真面目に勉強はしてこなかった方です。
初めて「定数」と聞いた時に何のことだかわかりませんでした。
ですが、知ってしまえば何のことはない。そのExcelBook内で永遠に変わる事のない不変の数字って事なんですね。
どういう時に使用!?
では、不変の数字をどういうときに使うのかというと…
例えばそのシート内でずっと変わらないものってありますよね?
簡単な例で言えば、シートの始まりの行や列などがそれにあたりますね。
月毎の営業成績のシートがあるとします。
シートの月次更新でやったように毎月シート内の同じ場所に同じような表が作り上げられるときなどがそうですね。
このようなときにConstは使用します。
使ってみましょう!
Sub Constを使おう() Const targetRow As Integer = 3 Const targetCol As Integer = 7 Cells(targetRow, targetCol).Select End Sub
今回の図を例に言うと入力の始まりとなる行と列は必ず一緒ですね。という事でConst(定数)に入れてみました。
そしてコードを見て頂ければ今まで使った変数とは違う事にお気付き頂けたはずです。
そうです。変数の様にConstに続いて定数名・定数の型を宣言しているのですが、その後にイコールで直接値を入れてしまっていますね。
宣言と同時にこの定数として宣言したものはこれしか使いません!と言い切ってしまいます。
もちろん数字だけではなく文字列でも大丈夫です。
Publicとして使用
そうです。Publicとしても使用できます。
僕がこれが一番使うのでPublicの後にConstをお伝えしたかったのです。
Subプロシージャの中でConstしてしまえば、いくら定数と言えどSubプロシージャの中でしか使用できません。
という事でSubプロシージャの外でPublic Constとして宣言してしまえばどこからでも呼び出せますので用途の幅が広がります。
逆に言うと僕はPublic変数は定数以外ではあまり使いません。
何故かと言うと…
- そもそもどこからでも呼び出せる変数とは言え中身はSubプロシージャの中で入れる
- どこかのSubプロシージャに値を渡したければ引数として他のSubプロシージャに渡してしまえば済む。
- そもそも、すべてのSubプロシージャで使用する汎用的な変数をあまり使わない(カウンタ変数除く)
- よく使用する(呼び出す)WorkBookのファイルのパスや外部ファイルと通信する為のIdなどを使用する時はConstの方が(予め値が入っていた方が)都合がいい。
という事で僕のPublic変数使用率は著しく低く、Public Const使用率が高いわけです。(※あくまでも個人的見解です)
Public Constしてみよう
Public Const TARGET_ROW As Integer = 3 Public Const TARGET_COL As Integer = 7 Sub Constを使おう() Cells(TARGET_ROW, TARGET_COL).Select End Sub
こうですね。ここでもPublicとして宣言する時は基本大文字を使用しております。
大分上が見えないプログラムの最中でもPublicの定数ですよ!ってすぐにわかりますからね。
ここまで勉強したらもう少し実践的にいけるのではないか。
という事で今回使用したシートを今までにお勉強したループ処理やら最終行の取得(Endモードの使用)やらを駆使して翌月作成と日々の入力をしてみましょう!