EXCEL、VBAプログラミング入門(3)~ボタンを作る~

■EXCEL、VBAプログラミング入門 3 ~ボタンを作る~

●目次
  ●はじめに
    ★プログラム言語と会話言語の違い
    ★Excelとアクセスの違い
  ●イベントとプログラミング
  ●ボタンの作成、オブジェクト名、キャプション
  ●ボタンテストプログラムのコードを表示
  ●ボタンテストプログラムの実行
  ●まとめ

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

★プログラム言語と会話言語の違い
今回は、 Excel の VBAのプログラミングについて、ご説明させていただきます。いわゆるWindows で作るプログラムでは、例えば、Visual Basicや、C# など、いろいろなプログラム言語がありますが、基本的なところは共通なのです。従って、一つのプログラム言語を覚えますと、ほぼ他のプログラム言語もできるようになります。
しかし、話し言葉の言語には日本語や英語などかありますが、そのような言語では日本語をしゃべることはできても、英語は全く話せません。それに比べると、いろいろなプログラム言語は結構似ているので、話し言葉で言うと方言のような感じの違いになるのではないかと思います。従って、一つのプログラム言語をしっかりと覚えることによって、他のプログラム言語もほぼできるようになりますので、何か一つのプログラム言語をしっかりと覚えていただきたいと思います。特にこのエクセルVBAなどは手軽に勉強できますので良いと思います。

★Excelとアクセスの違い
ちなみに、当社の動画講座の中でアクセスの講座が沢山あります。Excel の VBA とアクセスの VBA も非常に共通項が多いので、Excel の VBA を勉強していただけると、アクセスの方も明瞭になるのではないかと思います。エクセルとアクセスの違いと言いますと、アクセスはいわゆるデータベースへアクセスをして沢山のデータを取扱います。そのため、データベースに対する取扱いや処理をどうするか、テーブルの設計などを行う必要がある点がExcelとは少し違うところです。

●イベントとプログラミング
前回の入門2の講座では、例えばボタン(1) を押したときに、「メッセージボックス」により、Excelの画面に ”メッセージ” が出ることを説明しました。プログラミングとは、何かのアクションがあり、それに伴ってプログラムを組むことです。つまり、何かのイベントが起きたことによって、プログラムが動作する形になっています。次の図は、実際に作ったExcelプログラムの画面です。

●ボタンの作成、オブジェクト名、キャプション
「ボタン」を最初から作ってみたいと思います。次の図に示しますように、「開発」のボタンを押していただいて、「デザインモード」にしていただきます。ボタンを配置するのは、「挿入」→「ActiveXコントロール」→「コマンドボタン」を押して、次の図のように ”CommandButton1” を配置します。

その時に「プロパティ」を出していただきます。「プロパティ」の「オブジェクト名」と「キャプション(Caption)」は同じ ” CommandButton1”となっています。

「キャップション (Caption) 」とは操作ボタン等を識別するためのラべル(名前)に用いる文字列です。
Excel画面の ”CommandButton1” ボタンの「プロパティ」で「キャップション (Caption) 」の ” CommandButton1”のところで、例えば、”ボタンテスト” と記入すると、この「キャプション」に記入した値 ”ボタンテスト” がExcel画面に表示されます。

前回の「入門2」講座で解説しましたように、例えば、ボタン(1)の「オブジェクト名」は ”cmd1” です。
次の図のように、ボタン(1)を右クリックし、「プロパティ」を選択してクリックすると、「プロパティ」の画面が表示され、「オブジェクト名」は ”cmd1” であることがわかります。また、「Caption」は “1” となっています。

ここで注意しなければいけないのは、「オブジェクト名」は、処理がどこで起こるかの一つのキーワードになりますので、同じオブジェクト名を付けることはできないのです。例えば、「ボタンテスト」ボタンのオブジェクト名は、”CommandButton1”ですが、これを変更して、ボタン(1) のオブジェクト名と同じオブジェクト名 ” cmd1” を付けてみますと、ExcelのVBAから「名前が適切ではありません」という「エラーメッセージ」が出てきます。このように同じオブジェクト名は付けられないので注意が必要です。

「キャプション(Caption)」のところでボタンの名前「ボタンテスト」としまして、ここで「オブジェクト名」は、コマンドボタン1(CommandButton1)と書いてあります。

「オブジェクト名」には日本語も使えるので、日本語で、”ボタンテスト” と記入していただきますと、オブジェクト名が ”ボタンテスト” で、「キャプション」も ”ボタンテスト” となります。

「オブジェクト名」と「キャプション」の値は、同じ値にする必要はありません。先ほど見たように、ボタン(1)について確認してみますと、オブジェクト名が ”cmd1” で、キャプションが ”1” となっています。

●ボタンテストプログラムのコードを表示
ここで、「ボタンテスト」タブを右クリックして、「ボタンテスト」の「コードの表示」を見ていただきますと、次の図のように、「ボタンテスト_Click」という形のプログラムが表示されます。ちなみに、これが 一つの「procedure」(プロシージャ)すなわち「処理」の単位になるのです。

先程出てきたボタン(1)のコードは、次の図に示しますように「Cmd1_Click」であり、コマンド1をクリックするプロシージャです。

●ボタンテストプログラムの実行
ここで、次の図に示しますように、「ボタンテスト_Click」プログラムの中に、”ボタンテスト” という「メッセージボックス」を挿入してみます。ちなみに、その下に出ているのは英語なのでわかりにくいかもしれませんが、この「メッセージボックス」の説明です。
この「ボタンテスト_Click」プログラムを実行しますと、次のところで解説しますように、ダブルコーテーション (” ”) で囲まれた ”ボタンテスト” というメッセージがExcel画面のメッセージボックスの中に出てくるのです。

このプログラムを動かしてみます。プログラムを動かす時には、先程も言いましとおり、Excel画面が「デザインモード」であると、「ボタンテスト」ボタンを押しても、プログラムは動かないのです。「デザインモード」タブを1回クリックしてもらい、「デザインモード」を外した (OFF) 状態で「ボタンテスト」ボタンを押すと、ボタンテストプログラムが動作して、Excel画面のメッセージボックス画面の中に、”ボタンテスト” というメッセ―ドが出されます。

「ボタンテスト」は「クリック」という一つのイベントなのです。
例えば、次の図に「オブジェクト」として、「ボタンテスト」が出ています。「ボタンテスト」のイベントには、クリック( Click )、ダブルクリック (DbClick) 、マウスダウン (MouseDown) など、いろいろなイベントがありますが、例えばダブルクリック (DbClick) を押すと、Excel画面の「ボタン」をダブルクリックした時に、この「ボタンテスト_DbClick」というプログラムが動作するのです。

「ボタン」に対してもいろいろなイベントを作れるのです。例えば、「ボタンテスト」の「ダブルクリック」のイベントで、「ダブルクリックされました」という「メッセージボックス」を入れていただきます。

ここで、Excelの画面に戻って、「デザインモード」を外して、「ボタンテスト」ボタンを「ダブルクリック」すると、プログラムが動作して、次の図のように、”ダブルクリックされました” というメッセージがExcel画面のメッセージボックス画面に出てきます。

●まとめ
以上、説明しましたように、「オブジェクト名」(“ボタンテスト”) とそれに対する何かのアクション (“Click”) を選んで「イベント」を作ります。これは「プロシージャ」と言われ、この「プロシージャ」の中にプログラムを書くことになっています。


弊社は、主に中小企業様向けの業務システム開発ホームページ制作パソコンサポートコンサルティングなど、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