コンピュータシミュレーション 演習(2009年度) 東洋大学工学部環境建設学科 吉野 隆 2009年度から休日も授業 • カレンダーによれば来週(10/12)と11/23は休 日ですが,今年度から講義日になっています. • 今のところ,両日とも授業を行う予定です. 第一週 Excel VBA はじめに • 春学期の「コンピュータシミュレーション」とは 異なり,「コンピュータシミュレーション演習」で は,コンピュータを操作して実際にシミュレー ションの結果を得る作業を行う. • 最初の数回は Excel のマクロを用いた数値計 算の方法について学ぶ.マクロの使用方法を 学ぶことで,作業効率があがるはずである. • 後半は Mathematica を用いたシミュレーショ ンについて検討する. マクロ • Excel にはユーザーが複雑なマクロ(ユー ザーが定義した手続き)を構築するための環 境が準備されている. • この環境を Visual Basic Editor (VBE)という. • この環境のもとで使用するマクロ言語を Visual Basic for Applications (VBA) という. 文法について • この授業はプログラミング言語を学ぶ授業では なく,プログラミング言語を用いて計算結果を出 す授業である. • そのために,言語の文法や慣用的な使い方につ いてはほとんど触れない. • 若干まとめた資料として,少し古くなりつつある が2007年度までの演習Ⅲで用いてたものがある. 必要ならばそれを参考にすること(PDFファイル は http://endeavor.eng.toyo.ac.jp/~yoshino/lecture/ enshu3/ex3-VBA.pdf). VBE を使用する(Excel 2007) • Excel 2007 で VBE を用いる場合には,以下の 3つの手順を実行しなければならない. 1. Office ボタンをクリックして「Excel のオプション」 をクリックする. 2. 「開発タブをリボンに表示する」をチェックして窓 を閉じる. 3. 「開発」タブをクリックして,「Visual Basic」ボタン をクリックする. VBE を使用する(Excel 2003) • Excel 2003 で VBE を用いる場合には,「ツー ル」メニューから「マクロ」の「Visual Basic Editor」を選択する. VBAによるマクロの制作(1) • 標準モジュールを追加 することによって,新し いプロシージャ(マクロ のこと)が作成できる状 態になる. • そのためには,「ユー ザーフォームの挿入」ボ タン脇の▼をクリックし て,「標準モジュール」を 選ぶ. ここをクリッ クする. VBAによるマクロの制作(2) • 新たに出現したテキスト入力窓(赤い枠)にマ クロを記述する. 簡単なマクロの制作 • 以下に示すような,簡単なマクロを作ってみよ う.ただし以下のことに注意. • 英語とスペースは半角で.2行目の行頭のス ペースはTABキーで. Sub あいさつ() MsgBox ("こんにちは") End Sub マクロの実行 • VBE から実行する場合には,「Sub/ユー ザーフォームの実行」ボタンをクリック. • Excel から実行する場合は以下のとおり. – Excel 2007の場合. 1. 「開発」タブまたは「表示」タブで「マクロ」ボタンをク リック 2. 「マクロの表示」をクリックして実行したいマクロを選 び「実行」ボタンをクリック. – Excel 2003 からは,「ツール」メニューの「マクロ」 で「マクロの実行」(だったと思います). マクロの定義文 • マクロは「Sub マクロの名前()」と表示された行 から始まり,「End Sub」を表示された行で終了 する. • 上の2行の間に, Excel にさせたい命令を1行 ずつ記述してゆく. • 今回は「MsgBox “文字列”」とすることで,窓に 文字列を表示するマクロを作成した. 練習問題 1. “こんにちは” を “おはよう” に変えてみなさ い. 2. MsgBox 関数(関数ってなんだ?)をもう1行 加えて何が起こるのか確かめなさい. 繰り返し計算 • VBA では繰り返し計算に For ステートメントを 用いることが多い.以下はその例. Sub くりかえし() For i = 1 To 10 ActiveCell.Offset(i - 1).Value = i Next i End Sub For ステートメント • 「For 変数=初期値 To 終了値 Step 増分」とい う行で始まり,「Next 変数」で終わる部分を For ステートメントと呼ぶ. • For ステートメントは,変数を初期値から増分 ずつ増やしながら終了値になるまでステート メント内の処理を繰り返す作業である. • 今回はアクティブなセルから順に下のセルに 向けて1から10まで設定するマクロを作成した. ActiveCell.Offset(i).Value • ActiveCell とはクリックしたセルのこと. • ActiveCell.Offset(i) とは ActiveCell の下の i 番 目にあるセルのこと. • ActiveCell.Offset(i).Value とは, ActiveCell.Offset(i) のセルの値のこと. • ActiveCell.Offset(i).Value = i とは,クリックした セルから i だけ下にあるセルの値を i に設定 すること. 練習問題 1. 繰返しを 1 から 20 までに変えなさい. 2. 繰返しを 0 から 20 までの偶数に変えなさい. 3. 繰り返しの 3 から 30 までの3の倍数に変え なさい. 4. 繰返しを 0 から 1 まで 0.05 おきになるように 変えなさい.
© Copyright 2024 Paperzz