The following two tabs change content below.




taka
あることがキッカケでVBAを独学で勉強しました、今ではブログを通してVBAでできることを解説しつつ、VBAや他の言語の勉強、ブログ運営の勉強をしています(^^♪



最新記事 by taka (全て見る)
- 『雑記』最近の私の話~ - 2019年9月26日
- 【動画】自作パソコン構成変更!ケースをNZXT H500に交換しました! - 2019年6月5日
- VBA 『Array関数』指定した要素で配列を作成する - 2019年5月23日
- 「動画」初完全ワイヤレスイヤホン『Jabra Elite Active 65t』 - 2019年5月17日
- VBA 日付で令和を簡単に判定してみよう - 2019年5月7日
どうも、taka(@takabou63)です(^^♪
さて、皆さんは【定数】という言葉を聞いたことがありますか?
VBAでよく解説・使用されるのは変数ですが【定数】を使ったことがない方は多いかもしれません。
今回はVBAで【定数】とはないか?から使用方法までご紹介していきます(^^)/
そもそも定数とはなにか?
さて、定数に似た名前として皆さんご存知なものが【変数】です。変数と定数の大きな違いそれは【値を変更できるかどうか】です。
名前を見てもらえばお分かりかかと思います(笑)
- 変数・・・【変更ができる数値】
主に途中で値を入れる【入れ物】として使用することが多い。 - 定数・・・【定められている数値】
税率など特定の決まった数値を入れておくための入れ物として使用することが多い。
ただ変数を定数代わりに使うことも可能なため使用頻度・認知度が低い
です。
VBAで定数を利用する方法
VBAで定数を利用するには変数と同じく宣言をする必要があります。
VBAで定数を宣言するにはConstを使用する。
さて、VBAで定数を宣言するには【Constステートメント】を使用します。
また定数の宣言には
- Const 定数名 = 値
- Const 定数名 As 型 = 値
の2つの宣言方法があり、変数と同じようにデータの型が存在します。この型の宣言を省略すると値から最適と判断された型が割り当てられます。
定数のデータ型
データ型 | データ型名 | 説明 |
---|---|---|
Byte | バイト型 | 0~255 |
Integer | 整数型 | -32,768~32767 |
Long | 長整数型 | -2,147,483,648~2,147,483,647 |
Single | 単精度・浮動小数点型 | (負の値) -3.402823E38 ~ -1.401298E-45 (正の値)1.401298E-45 ~ 3.402823E38 |
Double | 倍精度・浮動小数点型 | (負の値) -1.79769313486232E308 ~ -4.94065645841247E-324 (正の値)4.94065645841247E-324 ~ 1.79769313486232E308 |
Currency | 通貨型 | -922,337,203,685,477.5808 ~ 922,337,203,685,477.5807 |
String | 文字列型 | 最大約20億文字ほど |
Date | 日付型 | 西暦100 年1月1日~西暦9999年12月31日 |
Boolean | ブール型 | True またはFalse。初期値はFalse |
Variant | バリアント型 | すべての基本データ型を格納できる |
変数で使用できる型で【Object】というデータ型がありますが、定数では使用ができません。
定数を使用例と使用するメリット
定数のメリット、それはプログラム内で特に変更しない数値(税率など)を名前を付けて管理ができるという利点です。
例えばですが、下記のようなコードがあったとします。
Sub Sample() Range("A1").Value = 100 * 0.08 Range("A2").Value = 1000 * 0.08 Range("A3").Value = 10000 * 0.08 Range("A4").Value = 100000 * 0.08 End Sub
法改正で消費税が10%に変更になった場合、上記のコードだと【0.08】という税率をすべて手作業で手直さなければいけません。
ですが、定数を使用すると
Sub Sample() Const tax As Double = 0.08 'ここだけを0.1に変更するだけで済む Range("A1").Value = 100 * tax Range("A2").Value = 1000 * tax Range("A3").Value = 10000 * tax Range("A4").Value = 100000 * tax End Sub
定数で宣言している【定数、tax】の値だけを変更するだけで済むんです。
このように、仕様変更時に無駄な作業を極力減らし、また可読性も上がるのでぜひ導入していきましょう!
上記の内容は変数でも使用可能です。ですが、変数を使用して間違った値を代入してしまうなど、値が変わってしまう可能性もあるので使いどころを考えて使用しましょう。
フォロー・チャンネル登録お願いします
VBA以外についてのブログはこちら↓
https://yb-log.com/■Twitterフォロー
Follow @taka_pc1027■YouTubeチャンネル登録
コメントを残す