検索

キーワード


目次

【Excel VBA】プログラム開発で使用する変数と定数について

  • 公開日:2023-06-19 10:14:25
  • 最終更新日:2023-06-18 20:48:34

Workteria(ワークテリア)では難易度の高いものから低いものまで、スキルや経験に合わせた案件を多数揃えています。会員登録は無料ですので、ぜひ会員登録してご希望の案件を探してみてください!

フリーランス/正社員のエンジニアとして活躍するには、ご自身のスキルや経験に合わせた仕事を選ぶことが大切です。ご希望の案件がみつからない場合はお気軽にお問い合わせください!ユーザ満足度の高いキャリアコンサルタントが在籍していますので、希望条件や悩み事などなんでもご相談ください。ご希望にピッタリの案件をご紹介させていただきます。

皆さんこんにちは、エンジニアのIMMRです。


ここでは「変数」と「定数」について説明します。


変数」とは

プログラム中に使用するための値を格納しておくものです。

変数に格納されている値はプログラム中に呼び出すことが可能です。


定数」も

プログラム中に使用するための値を格納しておくもので

定数に格納されている値はプログラム中に呼び出すことが可能です。


ではなにが違うかというと

変数」はプログラム中に値の変更が可能だが、

定数」はプログラム中に値の変更が出来ないことです。


図1 説明図

図1 説明図


図1のように「変数」なら一度、111を格納した後でも333のように値を何回でも再入力することができますが

「定数」の場合は一度入力してしまうと2回目以降の入力が出来なくなってしまいます。


何度も数値等を入れ替えて使用するものなら「変数

1度、数値等を入れてそのまま使用するものなら「定数」がよいのです。


1.「変数」と「定数」の宣言方法について

「変数」の宣言方法

変数の宣言方法は、Dim ステートメントで宣言します。

そしてAsの後ろに

Integer:整数型

Long:長整数型

Single:単精度浮動小数点数型

Double:倍精度浮動小数点数型

String: 文字列型

といった型を宣言します。


宣言方法(変数)

Dim AAA As String
Dim BBB As Double


変数名「AAA」で型は文字列型で宣言しています。

変数名「BBB」で倍精度浮動小数点型で宣言しています。


これにより、

AAA=”あああ”

AAA=”いいい”

BBB=123

BBB=246.9

等の値を格納することが出来ます。

しかし、

倍精度浮動小数点型でしました「BBB」に文字である ”ううう” を格納するとエラーになります。


「定数」の宣言方法

定数の宣言方法は、Constステートメントを使います。

そしてAsの後ろに型を宣言します。ここは変数と同じです。

しかし、値を格納するところが違います。


変数の場合は、変数を宣言して、それから値を格納するのですが、

定数は宣言の時に値も決めてしまうのです。


宣言方法(変数)

Const CCC As Double = 987.6


定数名「CCC」で宣言しています。

そして、値(987.6)も宣言時に格納を行います。


定数の場合、宣言時に値を格納しないと・・・

変数のように名前の宣言だけして、値は後で入力しようとすると

下記のようなエラーが表示されます。


図2 定数のエラー

図2 定数のエラー


そのため、値の格納が必要になります。


そして、一度宣言した値の変更はできません。

一度、定数を宣言(値を含めて)から

変数のように値を格納しようとすると今度は、下記のようなエラーが発生します。


Const CCC As Double = 987.6と宣言した後に

CCC246.8 と値を格納をしようとすると


図3 定数のエラー2

図3 定数のエラー2


ではサンプルプログラムを見ていきましょう。


2.「変数」と「定数」を使用したサンプルプログラム

使用するのは下記、ブックを使用します。


図4 サンプルブック

図4 サンプルブック

C列に記載してある金額(税抜き)から税(10%)を含んだ金額を計算して、計算結果を隣のD列に算出します。


下記がサンプルプログラムです。


サンプルプログラム1

Sub test1()

    Dim i As Long
    Dim price As Double
    Const tax As Double = 1.1

    For i = 3 To 6
        price = Cells(i, 3)
        Cells(i, 4) = price * tax
    Next

    For i = 10 To 12
        price = Cells(i, 3)
        Cells(i, 4) = price * tax
    Next

    For i = 16 To 18
        price = Cells(i, 3)
        Cells(i, 4) = price * tax
    Next

End Sub


「変数」priceは、毎回セルに記載してある値を格納していますが、

「定数」taxは、一度1.1を入力した後は変更してないです。


また、下記のようなプログラムでも同じ動作をしますが、


サンプルプログラム2

Sub test2()

    Dim i As Long
    Dim price As Double

    For i = 3 To 6
        price = Cells(i, 3)
        Cells(i, 4) = price * 1.1
    Next

    For i = 10 To 12
        price = Cells(i, 3)
        Cells(i, 4) = price * 1.1
    Next

    For i = 16 To 18
        price = Cells(i, 3)
        Cells(i, 4) = price * 1.1
    Next

End Sub


もし、税が変化した場合、   ※上がってほしくないが・・・


サンプルプログラム2では、 1.1の箇所を直す必要があります。 ※ここでは3箇所

しかし、サンプルプログラム1では定数宣言箇所のConst tax As Double = 1.1

の1っ箇所だけで済むので修正も安易に行うことができます。


3.「変数」と「定数」を使用したサンプルプログラムの実行

上記プログラムを実行した結果です。


図5 実行結果

図5 実行結果


正しく、価格(税込み)の値が記載されています。


「変数」「定数」を使用して、正しく出力を行うことができました。


【著者】

Imamura

「挑戦心」を忘れずに、新しいことにチャレンジしています。 資格:VBAエキスパート Excel VBA(ベーシック/スタンダード) 等

編集した記事一覧

正社員/フリーランスの方でこのようなお悩みありませんか?

  • 自分に合う案件を定期的に紹介してもらいたい
  • 週2、リモートワークなど自由な働き方をしてみたい
  • 面倒な案件探し・契約周りは任せて仕事に集中したい

そのような方はぜひ、Workteriaサイトをご利用ください!

  • 定期的にご本人に合う高額案件を紹介

  • リモートワークなど自由な働き方ができる案件多数

  • 専属エージェントが契約や請求をトータルサポート

よく読まれている記事