プログラミング演習 講義ノート 02(2012/10/10) 文責

プログラミング演習 講義ノート 02(2012/10/10)
文責 鈴木良尚
#この講義ノートは若山芳三郎著「学生のための Excel VBA」(東京電機大学出版局)およ
び寺坂宏一著
「化学系学生のための Excel/VBA 入門」
(コロナ社)を参考に作成しています。
1. ボタン(フォーム)の復習
Excel には、マクロを実行するためのボタン等のフォームが用意されている。これをオブ
ジェクトという。また、セルやワークシート等マクロの対象になるものもオブジェクト。
使用手順は以下の通り(他のフォームでも共通することが多い)
。
(1) デフォルトでは出ていない開発リボンを表示→ファイル→オプション→リボ
ンのユーザー設定
(2) メインタブの中の開発チェックボックスにチェックを入れる→OK
(3) 開発→挿入→フォームコントロールからボタンを選択
(4) 貼付けと同時に表示されるダイアログボックスでマクロの登録
(5) ボタン上で右クリックし、テキストの編集でボタン名作成
2. (課題 02-01)
121003suzuki01.xls で作成した学年昇順、学年降順、学年降順&経験年数降順のマクロ以
外に、独自のマクロを二つボタンに登録し(ボタンに名前もつけて)
、121010suzuki01.xls
としてマイドキュメントに保存し、かつ [email protected] 宛に送信して下さい。
3. オブジェクト・コレクション・メソッド・プロパティ
(1) ブック、シート、セルや、ボタンなど様々なフォーム→オブジェクト
(2) オブジェクトの集まり→コレクション
(3) VBA→オブジェクトに対して何らかの処理を実行するプログラム
(4) オブジェクトに指示を行うもの→メソッド
(5) オブジェクトの状態の設定を行うもの→プロパティ
(6) 例えば、先週入力したコードのうち、
Range(“B2”). Value = “化学応用工学科”
Range(“B3”). Select
という部分では、Range(“B2”)、Range(“B3”)→オブジェクト、Select→メソッド、
Value→プロパティ、“化学応用工学科”→値となる。
4. プロシージャ、モジュールとプロジェクト
(1) VBA コードの集まり→プロシージャ
(2) それを管理する部分→モジュール(プロシージャはこの中に収められる)
(3) VBA のプロシージャが作成されている Excel のシートや、モジュール全体→
VBA プロジェクト(プロジェクトエクスプローラ内表示)
5. プロシージャの構造
(1) プロシージャの種類
Sub プロシージャ→単独で実行するプログラム作成に利用
Function プロシージャ→呼び出したプロシージャに処理結果を返す
Property プロシージャ→作成したプロパティの設定や値の取得を行う
(2) Sub プロシージャの構成
例えば、[ ]内は省略できるとして、以下のようになる。
[適用範囲][Static]Sub プロシージャ名([変数1 As データ型, 変数2 As データ型])
ステートメント群
End Sub
[適用範囲]
Public→他のプロシージャから呼び出し可能
Private→他のプロシージャから呼び出し不可能
#指定なければ Public を指定したことになる。
[Static]
宣言した変数をプロシージャ実行後も保持
プロシージャ名
(a) 英数字、漢字、ひらがな、カタカナ、アンダースコアの
み使用可能 #アンダースコアとは→ _
(b) 数字と_は先頭の文字として使えない
(c) 英字の小文字と大文字に区別なし
(d) 文字数は半角で 255 文字以内
(e) あらかじめ VBA で定義された文字列は使用不可
変数
特に指定しなくても、()というように、括弧を入れておく。
<変数の詳細についてはまた改めて。。>
ステートメント
例えば、
Range(“B2”). Value = “化学応用工学科”
といった、何らかの処理を行う一つの完結した命令
: で区切れば、一行に複数のステートメントを記述できる→
マルチステートメント
Range(“B2”).Value=“東京” : Range(“B2”).Value=“大阪”
(3) Function プロシージャの使用例
<ユーザー定義関数の登録>
「水素イオン濃度から pH を求めるユーザー関数を作成する」
a. Visual Basic Editor を起動する。
b. VBE のメニューバーの「挿入」から「標準モジュール」を選択する→Module1 の
コーディング画面が挿入される。
c. 「挿入」から「プロシージャ」
を選択し、プロシージャを追
加する。その時、追加ダイア
ログで名前を pH、プロシー
ジャの種類として Function プ
ロシージャを選択する。
d. 以下のコードを入力する。
Public Function pH(HConc)
pH = - Log(HConc) / Log(10)
End Function
e. Excel の画面に戻り、HConc / M と pH を計算するシートをつくる。
f.
pH の横のセル内で=を挿入し、数式を入力するところで関数アイコン fx をクリッ
クし、関数の挿入ダイアログから「ユーザー定義」を選択し、関数名として pH を
選択する。
g. 後は、
水素イオン濃度 HConc が入力されたセルを選択して OK をクリックすれば、
水素イオン濃度に対応する pH が計算できる。
6. (課題 02-02)
121003suzuki02.xls で作成した Sub プロシージャのステートメント部分をマルチステート
メントで一行に書き換え、121010suzuki02.xls としてマイドキュメントに保存し、かつ
[email protected] 宛に送信して下さい。
7. (課題 02-03)
121010suzuki03.xls として、
pH をユーザー関数として定義したデータシートを作成して、
好きなイオン濃度で pH を計算し、その結果をマイドキュメントに保存し、提出するこ
と。