★変数を使おう
 

 うまくイチゴの横の数量と合計が入りましたね。

が。。。。しかし何かおかしい?気付きました?

そう5も500も数値なのに文字列として表示されているではないですか?
結果的に数量の合計も金額の合計も0のままですよね。
これは使えない!!!

ここで登場するのが、変数ってやつなんです。
この変数をうまく使って、5も500も数字ですから、数値として扱ってやって下さいって頼むのです。
回りくどくなりますが、
1.変数を適当にひとつ作る。ここでは「数値の変数」って名前の変数にします。
2.「数値の変数」は数値だってことを宣言する。宣せ〜〜〜って
3.テキスト数量の値「5」を「数値の変数」に一度移して(代入して)から、アクティブセルは「数値の変数」の中にある数値ですよってことで「5」を表示させる。

これを合計の方も同じようにするわけです。

では


Dim 数値の変数 As Long

これを変数の宣言というのですが、これで「変数として名前を付けた「数値の変数」という変数は、Long型という変数なんですよ!」ってことになります。
Long型というのは、数値を表すときに使うデータ型です。
変数のデータ型についてはいろいろ種類があるので、また後日解説しますが、
ここでは

Dim 変数名 As 変数のデータ型

という形式が一般的ですので覚えておきましょう。

さてプログラムはこんな感じに変えてましたよ。

Private Sub テキスト数量_AfterUpdate()
Dim 数値の変数 As Long

   テキスト合計 = テキスト単価 * テキスト数量

 'シート上のセルへ数量と合計を転記します。
   数値の変数 = テキスト数量
   ActiveCell = 数値の変数

   数値の変数 = テキスト合計
   ActiveCell.Offset(, 1) = 数値の変数

End Sub

  ActiveCell = テキスト数量

このコードも変数を一度通すことによってテキストボックスの数字を文字から数値に変換することができます。

  数値の変数 = テキスト数量

これでテキスト数量に入力した「5」という数字は、「数値の変数」という入れ物に入れられたことになります。ですから「数値の変数」=5 ということになり、その5は数値であるということになります。
そして

  ActiveCell = 数値の変数

とすることで、ActiveCellに「数値の変数」の「5」を入れなさいってことになります。
そして続いて同じ変数を使って

  数値の変数 = テキスト合計

とすることによって、今度は「数値の変数」にはテキスト合計の「500」という数字が入れられ、数値として扱われます。
これを

 ActiveCell.Offset(,1) = 数値の変数

とすることで、ActiveCellの1列右横のセルに「数値の変数」の「500」を入れなさいってことになります。
これで一応出来上がりです。
さてでは実行してみましょう。

これできちんと数量と金額の合計のところも数字が表示されるようになりましたね。
しかしまだいくつか問題点があります。

まず、カーソルの移動の順番をきちんとしたいと思います。タブインデックスってヤツです。
それともうひとつの問題は、思わぬエラーが起こった時の回避方法についてです。では次回で

[トップ][前へ][コンボボックス][次へ]