EXCEL、VBAプログラミング入門(5)~変数について~

以下は当記事に関連する動画です。本動画に関連する動画はすべてニコニコチャンネルにて閲覧可能です。
https://ch.nicovideo.jp/ai-light

本講座のシリーズは以下にて閲覧可能です。
https://www.nicovideo.jp/series/231329

本文に関連する動画は以下にて閲覧可能です。

●目次
はじめに
変数について
変数のデータ型とその宣言様式
変数のデータ型について
変数のデータ型の宣言様式について
整数型変数入りプログラムの動作確認
整数型データの格納範囲
整数型変数入りプログラムの動作確認
整数型変数に浮動小数点データを格納
整数型変数に文字を格納
まとめ

●はじめに
それでは、Excel VBA のプログラミングについて、ご説明をさせていただきたいと思います。

前回の入門4講座では、「Range」という関数をご紹介して、「セル」のデータを取得することについて解説させていただきました。その時に説明しましたプログラムは、次の図に示す2行でした。前回は「ワーク」という変数については詳しい解説をしませんでしたが、今回はこの「ワーク」と書いている部分についてご説明させていただきたいと思います。

変数について
この「ワーク」というのは何かと言いますと、いわゆる「変数」と言われるもので、一時的に値を保存する領域のことです。例えば、次の図に示すプログラムは、セル”B3” の値すなわちRange(“B3”).Valueを一時的に変数「ワーク」に代入して、更に、その変数「ワーク」の値に、文字 ”1” を結合して、その値をセル”B3” に代入します。この時、一時的に値を保存する領域が変数「ワーク」です。

「変数」は高度なプログラミングには無くてはならないものですが、簡単なプログラムでは、「変数」が無くてもプログラミングはできます。以下にその例題を解説しますので、「変数」についてのご理解を深めていただきたいと思います。
今回のプログラムに関しましては、実は変数「ワーク」は別に必要ないのです。例えば、次の図に示すように、「ワーク」のところに、Range(“b3”).Valueを入れれば同じことになります。つまり、Range(“b3”).Valueに ”1” を結合して、その結果をRange(“b3”).Valueに代入すればよいのです。

それでは、このプログラムを動かしてみます。
次の左図で、セル”B3”には “111” が入っています。右図のプログラムコードの画面で、ボタンを押して、プログラムを一時止めます。ここで計算機のExcel画面のボタン(1)を押して、プログラム「cmd1_Click」を起動します。

次に、キーボードの ”F8” ボタンを押して、プログラムのステップ実行の準備をします。次の図のように、黄色い部分がプログラムであり、現在このプログラムを実行中です。ここで、Range(“b3”)のところにカーソルを合わせますと、どちらにも、三つの ”1” すなわち “111” が入っています。

更に、キーボードの ”F8” ボタンを押して、プログラムのステップ実行をすると、セル”B3” の値 (”111”) に更に”1”を足して、”1111”となり、”1” が四つになります。このように、いわゆる変数「ワーク」使わなくても、プログラムとして正しく動作することを確認できました。

今回は、計算機という一つのプログラムです。上に述べましたように、変数を使わなくても、プログラムはできるのです。いろいろな要素を盛り込んでプログラムを作り、プログラミングの基礎を学んでいただきたいと考えましたので、今回のプログラムの例題ではこのような「ワーク」という変数を取り入れたのです。

変数のデータ型とその宣言様式
実際のプログラミングで、変数を使用する場合には、変数のデータの型を定義して、それをプログラムの最初に宣言する必要があります。以下に、変数のデータ型の種類及び変数のデータ型の定義と宣言方法について解説いたします。

変数のデータ型について
変数とは何かについて、次に示す「Excelの真髄」というWEBサイトの情報を参考にしていただきたいと思います。
*「Excelの真髄
・変数とは、数値や文字列などを一時的に格納する入れ物である。
・この入れ物には、いろいろなタイプの入れ物がある。
・変数にも、そのタイプによって、入れられるものと、入れられないものがある。
・この入れ物のタイプを、データ型と言う。

上の「Excelの真髄」に示しますように、変数には、次のようにInteger, Long, Stringなどのいろいろなデータ型があります。


※これで全部ではありません、まだまだありますが、上記はよく使われるものだけです。

変数のデータ型の宣言様式について
次の図に示しますように、変数「ワーク」のデータの型は ”String” であり、”String” というのは先程出てきた「文字列型」なので、変数「ワーク」を「文字列型」として定義し宣言しています。
変数「ワーク」のデータ型の宣言の様式は、次の図のように、「Dim 変数名 As データ型」という形で、変数のデータ型を定義して宣言いたします。

整数型変数入りプログラムの動作確認
前回の入門4講座では、変数「ワーク」を「文字列型」としてプログラムを作成し、その動作を確認していただきました。
今回は、プログラミングの知識として欠かせない「変数」への理解を更に深めていただくために、変数「ワーク」の型を「文字列型」ではなく、「整数型」と定義したプログラムの例題で、以下にその動作を確認していただきます。

整数型データの格納範囲
変数「ワーク」を「文字列型」ではなく、「整数型」として定義し宣言することもできます。「整数型」には整数しか入りません。「整数型」の変数には、-32,768 ~ +32,767までの値しか格納できません。例えば、35,000という大きな数値は格納できません。

整数型変数入りプログラムの動作確認
変数「ワーク」を「整数型」として宣言し、Excel画面で計算機のボタン(1)を押して、プログラムを動かすと、セル”B3” のデータ ”1111” がデータ ”11111” となり、プログラムは正常に動作します。
このプログラムでは、整数型の変数「ワーク」と文字 ”1” を結合するので、プログラムのエラーとなるのではないかとの懸念がありますが、プログラムは問題なく動作してエラーとはなりません。

このプログラムのステップ実行をして、プログラムコードを順番に表示しますと、次の図のようになります。各プログラムコードの「ワーク」と Range(“b3”)にカーソルを置いて、その値を見て行きますと、プログラムが正常に動作していることがわかります。

整数型変数に浮動小数点データを格納
整数型の変数「ワーク」に 浮動小数点付きの数値データとして ”1.1” を入れて、Excel画面で計算機のボタン(1)を押してプログラムを起動すると、エラーにはなりませんが、小数点付きの ”1.1” は整数となり ”1” が「ワーク」に入ります。この「ワーク」(“1”) と文字 ”1” を結合して、Range(“b3”) は ”11” となり、セル”B3” の値は ”11” となります。

整数型の変数に小数点のデータを入れてもエラーにはなりません。昔のプログラム言語であれば、これはエラーになるのですが、最近のプログラム言語はとても賢いので、勝手に解釈してくれるのです。プログラミングの専門家同士でよく話をすることなのですが、プログラムが間違っていても、場合によっては、正しい結果が出てくることがあるのです。これにより、プログラムの「バグ」あるいは「エラー」に気づかないことがあるので、この点には特に注意する必要があります。

整数型変数に文字を格納
整数型の変数「ワーク」に文字の ”a” を入れて、Excel画面で計算機のボタン(1)を押してプログラムを動かしますと、「型が一致しません。」という「エラーメッセージ」が出ます。このように、整数型変数に文字を入れると必ずエラーとなります。

まとめ
以上のように、プログラミングする場合には、まず変数のデータの型を意識しなければいけません。この点をよく覚えていただきたいと思います。


弊社は、主に中小企業様向けの業務システム開発ホームページ制作パソコンサポートコンサルティングなど、ITに関する様々なサービスを格安で提供しております。
特に小規模な業務システム開発の分野では、主にAccess(アクセス)を利用した柔軟で効率的な開発を得意としており、関西でダントツの実績があります。

業務システム開発に関しては、以下のような内容で対応しております。
・顧客管理などの単機能なシステムは20万円~50万円が多い。
・受注から入金まで業務全体システムで100万円~350万円ぐらいが多い。
・Access(アクセス)-SQLserverで大規模システム開発は350万円~1500万円が多い。

詳細は、Access(アクセス)、Excel(エクセル)、WEBサイト製作による小規模システム開発のページをご参考ください。

大阪商工会議所からの推薦を受けて、中小企業庁運営の中小企業支援事業に専門家として登録されました。
通称ミラサポ。3回まで無料でのコンサルティングが可能です。ご興味がある方はご連絡ください。
https://www.mirasapo.jp/


(近畿大学にて非常勤講師も務めたバリバリの技術屋が経営する会社)

Access(アクセス)Excel(エクセル)SQL server バーコード Webシステムを使った業務システムのシステム開発の無料相談を受付中

株式会社 アイライト 担当:内藤 響(Naito Ko)
〒550-0005 大阪市西区西本町1丁目5番9号 日清ビル 5F
(四つ橋線 本町駅 24番出口すぐ)
まずは、メール・電話でご相談ください。
TEL : (06) 6599-8890 E-mail : info@ai-light.com
お電話が混んでいる場合が多いので、つながりにくい場合は
TEL : (06) 6535-5117までお願いします。


株式会社アイライト公式HP
https://www.ai-light.com/
(Access・Excelでシステム開発会社を探されている法人様はこちら)

無料から学べる講座
https://www.ai-light.com/itkeiei/

ITでお困りのことがございましたら、まずはご相談(コンサルティング)
https://www.ai-light.com/itconsulting.html

格安ホームページ制作所
https://www.ai-light.com/hp2

YouTubeチャンネル(無料動画配信中)
https://www.youtube.com/user/ailightcom

ニコニコチャンネル(月額固定で見放題)
http://ch.nicovideo.jp/ai-light