Comments
Description
Transcript
プログラミング演習 講義ノート 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 を計算し、その結果をマイドキュメントに保存し、提出するこ と。