Microsoft Access Club >VBA物語 >このページ >次頁 < 前項  サイト内検索


変数の定義_[文字列]:VBA物語13



今まで、データ型についていろいろと見てきましたね。それも「数値型」を主に取り上げました。Integer型やLong型といったものです。それと、万能型としてVariant型も少しお話しました。

今回は、「文字列型」を取り上げてみたいと思います。数値型と文字列型はデータ型の双璧をなすものです。一方だけなら、片手落ちですので、ビシッといきますよ。では、下記プロシージャをご覧ください。


 

文字列には、可変長文字列と固定長文字列の 2 種類があります。

  1. 可変長文字列には、2GB (2^31) までの文字を格納することができます。
  2. 固定長文字列には、1 〜 2GB (2^31) の文字を格納することができます。

このサンプルでは、変数を全て「String型」つまり「文字列」としています。そして、あえてこの文字列に数字を代入しています。数値型との対比のためです。普通は、stra="あきら" のように文字を用いるのですが…。

strc=stra + strb の構文をご覧ください。結果として、1015 になります。加算記号である + が、この文字列では、"接続記号(&)"の役割をします。このことが、文字列型の最大の特徴なんです。

strc=stra & strb の構文でも同じく、1050 となります。一般的に、変数同士を結びつけるのは、& を用いるのが基本です。例えば、

Function SamplePro()

    MsgBox "今日は、" & Date & "です。"

End Function

と記述すれば、下記のメッセージが表示されます。

DateはDate関数です。現在の日付を返します。

  • テキストボックスのコントロールソースに、このDate関数を配置するときは、=Date() とするのを忘れないでください。

このように、変数を文字列と定義していれば、変数に数値を代入してもその数値は、"文字列"です。足し算や引き算はできませんと言いたいのですが、断言ができないのがVBAの良さと悪さなのです。

strc=stra - strb の構文を考えて下さい。純粋に文字列と考えれば、この構文はエラーになる筈です。が、実際はエラー表示されません。皆さん、この結果が判りますか? 

この結果は、何と -5(10-15) なのです。+では1015で、-では-5とは驚きでしょう?Accessは、この瞬間に文字列であった10と15をVariant型に自動変換し、結果を-5の文字列で返しています。

下記プロシージャをご覧ください。

strcとstrdをInteger型(整数型)と敢えて定義しました。受け皿のstrcとstrdが文字列ではない整数型であっても 1015 の値を返します。
当然これは"文字列"です。これは前段と同じく、Accessが内部でデータ型変換を自動的に行っているからです。この柔軟性がVBの特長で、Accessもその流れを汲んでいます。

数値を扱うのは、数値型とは限りません。よく用いられるのは連番の対応の時です。

例えば、皆さんの職場で8桁の社員IDがあるとしてください。00001201てな具合です。これをテーブルデータとして用いる場合、数値型なら長整数型(Long型)ですが、1201とだけ表されます。当然ですよね。数値は先頭に0をつけませんから…。よって、このような時には敢えて"文字列型(String型)"とする事が多いです。

なお、数値を文字列型のテーブルフィールドに格納しても、当然並び替えなどは可能です。

  • 並び替えは、アルファベット、数字、ひらがなの順に行なわれます。

2001/10/23

ページの先頭へ 前ページへ戻る


変数の定義_[文字列]:VBA物語13


 

-Microsoft Access Club-