プログラミング入門Ⅰ (No.10)

Ⅰ10-1
プログラミング入門Ⅰ (No.10)
[1]Excel VBA を使ってみる
VBA とは Visual Basic for Applications の略で、Microsoft 社が自社の Office 製品(Word, Excel、
PowerPoint、Aceess, Outlook など) で簡単にマクロを作れるように開発したプログラミング言語です。名
前のとおり、Visual Basic (VB)という言語に非常によく似たものになっています。
上に出てきたマクロとは、Word や Excel などのアプリケーションで、複雑な操作や定型的な作業を人間
の手動でなく自動的に実行させる機能のことです。マクロは VBA というプログラミング言語で書かれたプ
ログラムです。そのため、VBA で書いたプログラムのことをマクロということもあります。企業や事務所な
どビジネスの場面では、Excel や Access を使う際にマクロ機能を利用することが多々あります。VBA を知
っておくことは、そういう場面でも役に立つでしょう。
VBA は厳密には Office 製品ごとに違うところがありますが、この授業では、ビジネスでも最もよく使わ
れている Excel VBA を使うことにします。Excel に組み込みの機能ですから、Excel が入っているパソコン
であれば、どれでも利用することができます。Excel VBA は、本来は Excel の操作を強化するものですから、
Excel の機能と組み合わせて使うものなのですが、この授業の最初のうちは Excel 自身の機能とは別に使っ
てみることにします。ですから、Excel 操作に慣れていない人でも安心しておいてください。
(1-1) VBE を開く
Visual Basic Editor(VBE)とは、Visual Basic でプログラムを作成するための専用ウィンドウです。
① [スタート]ボタン>「Microsoft Excel 2010」を選ぶ。
⇒ Excel が開く。
② Excel のリボンの[開発]タブ > [コード]グループ > [Visual Basic]を選ぶ。
Ⅰ10-2
③ Visual Basic Editor のウィンドウが開く。
④ さしあたり Excel は使わないので、Excel のウィンドウは邪魔にならないように最小化しておく。
⑤ Visual Basic Editor の[挿入]メニュー > 「ユーザーフォーム」を選ぶ。
⑥ フォームウィンドウが現れる。
Ⅰ10-3
(1-2) VBE のウィンドウ
メニューバー
フォーム ウィンドウ
ツールバー
プロジェクト
エクスプローラ
フォーム
ツールボックス
プロパティ
ウィンドウ
テキストボックス
(TextBox)
(1-3) コントロールの貼り付けと変更
プログラムを作る土台 → フォーム(Form)
 色々な部品をフォームに貼り付けて使う。
部品 → コントロール(control)
ツールボックス
ラベル
(Label)
コマンドボタン
(CommandButton)
色々なコントロールがツールボックスにある。
 ツールボックスのサイズによって、
コントロールの位置が変わるので注意する。
イメージ
(Image)
コントロールの貼り付け
 ツールボックスでクリックしてフォーム上でドラッグするとそのコントロールが貼り付けられる。
 貼り付けた後、フォーム上でクリックしてドラッグすると位置を変更できる。
また、ハンドル()をドラッグするとサイズを変更できる。
 フォーム上でクリックして、 Delete キーを押すと削除できる。
Ⅰ10-4
[2]プログラムを入力する
(2-1) フォームのデザイン
① フォームにコマンドボタン(Command Button)を貼り付ける。
(2-2) コードウィンドウを開く
プログラム(コード:code)を入力するためのウィンドウをコードウィンドウと呼ぶ。
② コマンドボタンをダブルクリックする。
→ コードウィンドウが現れ、「Private Sub CommandButton1_Click( )」と「End Sub」という
2 行が自動的に入っている。
コード ウィンドウ
 「Private Sub CommandButton1_Click( )」とは、「CommandButton1 をクリックしたとき」に
実行させたいプログラム…という意味である。フローチャートの
に相当すると思えば
はじめ
よい。
 「End Sub」とは、1 つのプログラムの終わりを表し、フローチャートの
と思えばよい。
おわり
に相当する
Ⅰ10-5
(2-3) プログラムを入力する
③「Private Sub CommandButton1_Click( )」と「End Sub」の間の行に次のプログラムを入力する。
dim a as integer
dim b as integer
dim c as integer
a=20
b=35
c=a+b
msgbox(c)
[入力のしかた]
 プログラム部分は、半角のアルファベット・数字・記号で書く。
 入力は小文字でよい。
 改行は Enter キーを押す。
 改行すると自動的に大文字に変更されたり、色が変わる部分がある。
これは VB の予約語(VB で決まっている言葉)である。変わらないときはスペルを間違ってい
る可能性がある。
 式や書き方がおかしいときは、赤字になって教えてくれる。
 式の間など、自動的にスペースが入れられることもある。
 キーボードから入力していると、次に入力する言葉の候補がリストに表示されることがある。
そのリストの中から選びたいときは、
マウスでダブルクリックするか、
↑・↓キーでカーソルを合わせて、 Tab キー(改行なし)か、
Space キー(空白+改行なし)か、
Enter キー(改行あり)
を押す。
Ⅰ10-6
[入力ができた状態]
 うまく入力できましたか??
Ⅰ10-7
(2-4) プログラムを実行する
④ プログラムを実行してみよう。
 [実行]メニュー>「Sub/ユーザーフォームの実行」を選ぶ。
または、ツールバーの ボタンをクリックしてもよい。
 Visual Basic Editor のタイトルバーに[実行中]と表示されると、実行状態である。
 注意 
⑤ 実行状態になったら、コマンドボタンをクリックする。
[実行]を指定する際に、ウィン
ドウフォーカスがユーザーフォ
ームやコードウィンドウにない
と、「マクロ実行のダイアログボッ
クス」が現れる。それを避けるに
は、一度ユーザーフォームをク
リックしておいてから[実行]を
指定するとよい。
 どんな結果が出力されますか?
(2-5) プログラムの実行を終了する
⑥ プログラムを終了してみよう。
 [実行]メニュー>「リセット」、またはツールバーの ボタンを選ぶ。
ユーザーフォーム右上のボタンをクリックしてもよい。
(Visual Basic ウィンドウ右上のではない!)
 プログラムを修正するときは、一旦、実行を終了してから行う。
Ⅰ10-8
[入力したプログラム]
[このプログラムのフローチャート]
はじめ
a = 20
b = 35
c=a+b
c 出力
おわり
(2-6) プログラムの説明
変数の宣言
 プログラムの先頭部分で、そのプログラムの中で使う変数について、変数名と型を宣言しておく。
 変数の名前(変数名)は、次の規則に従って自由に付けることができる。
 変数名に使用できるのは、半角英字、半角数字、日本語、アンダースコア( _ )。
 名前の先頭は、半角英字または日本語で始まること。
 長さは最大半角 255 文字分。大文字・小文字に区別はない。
 VB で決まっている予約語(dim, as, if, ・・など VB の命令で使う単語)は使えない。
 変数やデータには、 型 (type) がある。
《型の種類》
型 名
書き方
サイズ
値の範囲
整数型
Integer
2 バイト
-32768~32767 の整数
長整数型
Long
4 バイト
-2147483648~2147483647 の整数
実数型
Single
4 バイト
-3.402823×1038 ~ -1.401298×10−45(負の数)
0(零)
1.401298×10−45 ~ 3.402823×1038(正の数)
文字列型
String
文字列に
よる
文字を入れる
(単精度浮動小数点型)
 この他にも、倍精度浮動小数点型(Double)、通貨型(Currency)、バイト型(Byte)、
ブール型(Boolean)、日付型(Date)、バリアント型(Variant) などがある。
変数の宣言 
Dim 変数名 As 型名
(例)
Dim a As Integer → a という変数を整数型として使う と宣言している
(整数型変数 a を使う)
Ⅰ10-9
代
入
 変数に値を代入するには「=」を使う。
 「=」の右辺の値を左辺の変数に代入する。
値の代入 
変数名 = 値 や 数式
《フローチャート》
S=0
N = N+1
《プログラム》
S = 0
(0
N = N + 1
(N+1
= S
は間違い!)
= N
は間違い!)
 フローチャートもプログラムも、「=」の左右が重要。
計算式
 計算式を書くとき、掛け算・割り算では計算記号(演算子)に注意する。
《演算子の種類》
計算
出
数学記号
VB で使う記号
足し算
+
引き算
-
+
-
掛け算
×
*
割り算
÷
/ (スラッシュ)
(星印、アスタリスク)
力
 変数の値を出力するには「MsgBox」関数を使う。
 MsgBox はメッセージボックス(message box) の略である。
値の出力 
MsgBox ( 変数名 )
《フローチャートとの関係例》
W 出力
MsgBox (W)
A, B 出力
MsgBox (A)
MsgBox (B)

2 つの変数 A と B の値を出力したいとき、MsgBox (A,B)と書くのはダメ。
一度に複数の変数の値を出力する方法は、No.13 の授業で説明する予定です。

出力しないと計算結果は表示されないことに注意!
Ⅰ10-10
(2-7) 練習問題
問題 1
変数 d,e,f を追加し、それぞれ a と b の引き算・掛け算・割り算を計算して、答を出力させてみよう。
まず、手で書いて考える。
Dim a As Integer
Dim b As Integer
Dim c As Integer
Dim d
a
b
c
d
= 20
= 35
= a + b
=
MsgBox (c)
 どんな結果が出力されますか?
(チェックポイント) 割り算の答が小数点付きになっていますか?
問題2
a,b の値を色々変えて実行してみよう。
[a=
[a=
[a=
b=
b=
b=
]とすると ⇒[
]とすると ⇒[
]とすると ⇒[
]
]
]
発展問題
ユーザーフォームの色やコマンドボタンを変えてみよう。
 ユーザーフォームの色は、フォームを選択しておいて、プロパティウィンドウの「BackColor」で設
定できる。BackColor 欄のをクリックし、現れるウィンドウで[パレット]タブを指定する。
 コマンドボタンの色は、コマンドボタンを選択しておいて、プロパティウィンドウの「BackColor」
で設定できる。BackColor 欄のをクリックし、現れるウィンドウで[パレット]タブを指定する。
Ⅰ10-11
[3]プログラムを保存する
せっかく作ったプログラムなので、保存しておこう。
 Excel VBA では作成したプログラムは、Excel のファイル(ブック)の中に保存される。
 今回保存するファイル名は「prog1-10」とすることにする。
(3-1) VBA プログラムの保存
① 実際に保存する前に、自分の[ドキュメント]内に「プログラミング入門」用のフォルダーを作っておく。
 [ドキュメント]を開き、ウィンドウ上部のメニューから「新しいフォルダー」を選ぶ。
 フォルダー名を「プログラミング入門」としておく。
フォルダーの名前を
「プログラミング入門」と
する。
※ 学内の PC では「ドキュメント」と個人用フォルダー「111xxxx (ckgfile\ckc-home) (Z:)」は同じものになっ
ている。どちらから開いても同じものが見える。
② Visual Basic のウィンドウに戻り、プログラムを保存する。
 Excel のウィンドウを開く。(Visual Basic Editor の
ウィンドウから Excel のボタンをクリックするとよい。
 リボンの[ファイル]タブ>「名前をつけて保存」を選ぶ。
 保存する場所を「プログラミング入門」フォルダーにする。
「 ドキュメン ト」 に
しておく。
「プログラミング入門」フォルダー
をダブルクリックして、開く。
Ⅰ10-12
 [ファイルの種類]ボックス右端のをクリックして、種類を「Excel マクロ有効ブック」に変更する。
[ファイル名]ボックスに、保存するファイル名(今回は「prog1-10」)を入力して保存する。
「プログラミング入門」フォルダー
になっていることを確認する。
ファイル名を
入力する。
[ファイルの種類]が「Excel マクロ
有効ブック」になっていることを確認
する。
③ 保存できたかどうか確認する。
 [ドキュメント]で保存したフォルダを開いてみる。
 今保存した Excel のファイルがあることを確認する。
今保存した、VBA プログラムが
入った Excel のファイル
(3-2) VBE の終了と Excel の終了
④ Visual Basic ウィンドウ右上のをクリックする。
または、[ファイル]メニュー>「終了して Microsoft Excel へ戻る」を選ぶ。
⑤ Excel のウィンドウを元に戻して、Excel ウィンドウ右上のをクリックする。
または、[ファイル]タブ>「閉じる」を選ぶ。
※ 忘れずに Excel も終了しておくこと!
Ⅰ10-13
(3-3) ファイルの形式について
マクロ有効ブック
 Excel2010 では、VBA プログラム(マクロ)を含んだ Excel ファイルは、セキュリティのために
特別扱いをすることになっている。これはマクロを利用してコンピュータウィルスが作られること
があるので、マクロが入ったファイルをはっきりと区別できるようにするためである。
 VBA プログラム(マクロ)を含んだ Excel ファイルはマクロ有効ブックとして保存する。
マクロ有効ブックは、ファイル名の後に「.xlsm」の拡張子が自動的につけられる。
 VBA プログラム(マクロ)を含まない通常の Excel ファイルは、ただのブックとして保存
する。通常のブックは、ファイル名の後に「.xlsx」の拡張子がつけられる。
 Excel2003 まではどちらのファイルも、ただのブックとして保存され、ファイル名の後に「.xls」
の拡張子がつけられる。
保存形式を間違えた場合
 VBA プログラム(マクロ)を含んだ Excel ファイルを保存する際に、間違えて
[ファイル]タブ > 「名前をつけて保存」 > 「Excel ブック」
を選ぶと、[保存]ボタンをクリック後に警告が表示される。
 [はい]ボタンをクリックすると、プログラムは削除され通常の Excel ブックとして保存される。
 プログラムを消さずに保存したいときは、[いいえ]ボタンをクリックして、
[名前をつけて保存]ダイアログボックスに戻り、
[ファイルの種類]を「Excel マクロ有効ブック」に変更して保存し直す。