ExcelマクロVBA入門 | 第13回.定数と型宣言文字(Const) | Excelマクロの基礎と応用、エクセルVBAの入門・初級・初心者向け解説



最終更新日:2017-12-07

第13回.定数と型宣言文字(Const)


前回は、変数を説明しました、
今回は、定数について説明します。

変数があれば、当然のように、定数もあります。


つまり、変数は値が変わるもの定数は値が変わらないものです。

Const 定数名 [As データ型] = "定数の値"

このように宣言します。

変数との違いは、途中で値を変更できない事です。

一度宣言したら、ずっとその値のままで使用します。

Const strタイトル As String = "見出し"

Const int開始行 = 3

のように宣言し、

"見出し"という文字の代わりに、strタイトルを、

3という数値の代わりに、int開始行を使ったりします。

このようにすることで、

同じ文字や数値を、プログラム内で複数個所に記述しなくて済みます。

そして、定数を変更する場合は、このConstを修正すれば良いので、「保守性」が高まります。

変数でも同じ事が出来るが・・・

Dim int開始行
int開始行 = 3


このようにすれば、定数を使わなくても済みそうです。
わざわざ、Constを覚える必要がないのでは・・・

確かに、マクロの動作としては同じことになります。
ですが、マクロを処理手順を記載した文章として考えて下さい。

int開始行は値を変えることがあるのか無いのか・・・

マクロを見たときに一目でわかる方が、手順書として優れていることは間違いないはずです。
つまり、「可読性」の問題だという事です。
逆に言えば、見た目だけの違いなので、変数だけを使ったマクロでも、特に何も支障はないという事です。


ここまでの説明で、

文字は、"(ダブルクォーテーション)で囲みます。

数値は、そのまま書いていることは、気づきましたか。

これは理屈抜き、そのように指定するものだと理解して下さい。

ただし、VBAでは、数値を"で囲んでも問題ありません。

しかし、そのような書き方は決してしないようにして下さい。


前回の変数の説明では、データ型はまだ覚えなくて良いと説明しました。

これは正しいです。

しかし、ネット等のサンプルを見た場合に、意味が分からなくては困ります。

全てを記憶し、使いこなす必要はありませんが、

どんな型があるかくらいは、知っておく必要があるでしょう。

そして、データ型に関しては、もう一つの指定方法があります。

それが、型宣言文字です。

型宣言文字 >変数の型
Integer(整数型)
Long(長整数型)
String(文字列型)
Single(単精度浮動小数点型)
Double(倍精度浮動小数点型)
Currency(通貨型)


Dim i%Const j& = 123456

のように宣言することで、データ型を指定できます。

ただし、このような使い方をすることはあまりなく、

プログラム内において、リテラル値(定数値)を指定する場合に、

使う事がほとんどです。

123%
123&


のように、同じ数値でも、

Integer型の数値なのか、Long型の数値なのかを指定することが出来ます。

しかし、これも、もっとマクロを覚えてからで良いですし、

特に使わなければ出来ないと言うような事もありませんので、

このような指定もあるのだと、記憶の片隅に置いておけばよいです。


日付の定数に関する注意

Const 日付定数 As Date = 2011 / 12 / 28 '←ダメー

のように指定してしまう事がありますが、これは間違いです。

私もたまにやってしまいます。(笑)

2011 / 12 / 28 は、2011 ÷ 12 ÷ 28 の計算結果の数値となってしまいます。

日付の定数を指定する場合は、

Const 日付定数 As Date = #12/28/2011#

のように、#で囲みます。

#12/28/2011#の部分は、#2011/12/28#

と入力しても、自動的に、#12/28/2011#に変換されます。



型宣言文字については、そのようなものがあるのだとだけ覚えておけば十分です。

マクロの中で変化させる必要のない数値・文字は、
Constで定数として宣言できるということを覚えて下さい。




同じテーマ「ExcelマクロVBA入門」の記事

第14回.文字の結合と継続行(&アンパサンド)
第15回.四則演算と注釈
第16回.繰り返し処理(For Next)
第17回.繰り返し処理(Do Loop)
第18回.最終行の取得(End,Rows.Count)
第19回.総合練習問題1
第20回.条件分岐(IF)

新着記事 ・・・新着記事一覧を見る

大量VlookupをVBAで高速に処理する方法について|ExcelマクロVBA技術解説(12月12日)
オセロを作りながらマクロVBAを学ぼう|ExcelマクロVBAサンプル集(11月26日)
ScreenUpdating=False時にエラー停止後にシートが固まったら|ExcelマクロVBA技術解説(11月21日)
データクレンジングと名寄せ|ExcelマクロVBA技術解説(10月20日)
SUMIFの間違いによるパフォーマンスの低下について|エクセル関数超技(6月17日)
条件式のいろいろな書き方:TrueとFalseの判定とは|ExcelマクロVBA技術解説(6月15日)
空白セルを正しく判定する方法2|ExcelマクロVBA技術解説(5月6日)
フルパスをディレクトリ、ファイル名、拡張子に分ける|ExcelマクロVBA技術解説(4月15日)
テキストボックスの各種イベント|Excelユーザーフォーム入門(4月9日)
フォルダ(サブフォルダも全て)削除する、Optionでファイルのみ削除|ExcelマクロVBAサンプル集(4月4日)

アクセスランキング ・・・ ランキング一覧を見る

1.最終行の取得(End,Rows.Count)|ExcelマクロVBA入門
2.RangeとCellsの使い分け方|ExcelマクロVBA入門
3.変数とデータ型(Dim)|ExcelマクロVBA入門
4.Range以外の指定方法(Cells,Rows,Columns)|ExcelマクロVBA入門
5.セルのコピー&値の貼り付け(PasteSpecial)|ExcelマクロVBA入門
6.オセロを作りながらマクロVBAを学ぼう|ExcelマクロVBAサンプル集
7.マクロって何?VBAって何?|ExcelマクロVBA入門
8.定数と型宣言文字(Const)|ExcelマクロVBA入門
9.ひらがな⇔カタカナの変換|エクセル基本操作
10.繰り返し処理(For Next)|ExcelマクロVBA入門



  • >
  • >
  • >
  • 定数と型宣言文字(Const)

  • このサイトがお役に立ちましたら「シェア」「Bookmark」をお願いいたします。


    記述には細心の注意をしたつもりですが、
    間違いやご指摘がありましたら、「お問い合わせ」からお知らせいただけると幸いです。
    なお、掲載のVBAコードは自己責任で使ってください。万一データ破損等の損害が発生しても責任は負いません。

    ↑ PAGE TOP