マクロ 変数と代入 Dimステートメント

変数とDimステートメント

Excel 2013 マクロ講座 12回

Dimステートメント

変数を宣言するDimステートメントについて学習します。
変数には、整数、文字、実数、日付など値に合わせて、いろいろな種類があり、それをデータ型といいます。
(サンプルファイルは、こちらから 2013マクロ講座12回サンプルデータ
Excelバージョン:Excel2016201320102007

変数を宣言する~Long(長整数型)

コピーしたマクロにコードを追加します。
見積書のナンバーは連番になっているので、
MitumoriNo という変数を宣言することにします。
なぜ、変数として宣言するかというと、コンピューターにわからせるためです。
「MitumoriNumという変数だから、覚えておいてね!」というワケ。

型の種類については次回説明しますが、
MitumoriNumは、ちょっと長めの数字なので、Longという型

Dim MitumoriNum As Long 
と入力します。

入力の途中で支援機能が働くので、Dimステートメントで指定する「変数の型」が入力候補として表示されます。


変数の型というのは、よく変数を入れる箱と例えられますが、
変数にあわせた箱を用意してやると考えるとわかりやすいですね。

あるいは、中身を表すラベルと思っていもいいでしょう。


見積書の番号を覚えさせておいて、
新規見積書のセルB2に +1して入力させています。

Sub 見積書作成2()
' 見積書をコピーしてクリアし新規見積書を作る
    Dim MitumoriNum As Long         '見積書ナンバーを宣言した!
    MitumoriNum = Range("B2").Value '値の取得
    
    Sheets("見積書").Select
    Sheets("見積書").Copy Before:=Sheets(1)
    Range("B2:B3,A8:A13,D8:D13").ClearContents
    
    Range("B2").Value = MitumoriNum + 1     '新規見積書の番号
        
    Range("D2").Value = Date     '今日の日付を入力
    Range("A8").Select

End Sub    
    

ステップ実行で、実行してみましょう。


VBEのコードとエクセルを並べて確認しながら、実行しています。
終了しました。

変数の型、わからない時は、Variant

整数を代入するためのlnteger型とLong型、
実数(小数部分がある数値)を代入するためのDouble型、
文字列を代入するためのString型、
日付を代入するためのDate型を覚えておきましょう。
lnteger型は、-32,768~32,767の範囲の整数しか扱えません。
それ以上は、Long型を使いましょう。
どうして変数の宣言をした方が良いのでしょうか?
コンピューターは、データの型を判断できないので、変数の宣言によって教えてやっているのです。

なんでも代入できるVariant型もあります。
わからない時は、Variantで行きましょう。
何度もやっているうちに、自然とわかってきます。
きっちりしたいなら、その都度、調べたっていいじゃないですか?

よく処理が遅くなると言われますが、最近のPCなら、問題ありません。
型がわからないから、マクロを使わない方が、もったいないです。