授業計画 15.アプリケーションの作成 アプリケーションの作成をとおしたプログラムの理解 15.1 確認・提出事項 全レポート(提出遅れ分含む)提出 15.2 授業内容 総復習 15.7 その他 試験は2月5日(火)の1限、第二端末室で行います。 出題範囲は配布したプリントです。 印刷されていないもの(パワーポイントのみで紹介したテクニックなど)は、 テスト範囲に含みません。 語句、演習、例題、レポート等をよく見直しておいてください。 最初のExcelに関する部分も復習しておくこと。 15.3 エクセルの基本 各部名称他 15.4 VBA によるプログラミング 条件判断、分岐、繰り返し命令 コントロール オブジェクトとプロパティとメソッド 15.5 プログラムによる解析 移動平均法 ピーク解析への応用 15.6 知っておくと便利な小技 ※これまでの授業用資料、レポート課題等は http://ace.cen.kagoshima-u.ac.jp/bunseki/proex/proex.htm にアップロードしてあります。 【条件判断、繰り返し命令】 ●条件判断 ※IF文は、「条件」が満たされていたら、 Then以降の「命令」を実行する。 なお、条件が満たされていない場合は、 ※Excelの関数とは文法が異なるので注意! Thenの後ろは実行されない。 【IF文】 If [条件] Then [命令] ●[条件]の例 > ※数学の場合、「以上」は と表現されるが、 = a=1 :aが1なら コンピュータの場合は >= と表記する。 a>0 :aが0より大きいなら a<=0 :aが0以下なら a="演習" :aが文字列"演習"なら 例:If flag="OK" Then a=a+1 :文字列変数flagの内容が"OK"だったら、 aに1を加算 ●分岐 【GoTo文】 ラベル名: (ラベル名の後にコロン(:)) GoTo ラベル名 (ここではコロンは不要) 【例題1】 ※GoTo文はラベルとセットで使う。 If文と組み合わせることが多い 多用しすぎるとプログラムが 読みにくくなる ラベル名は何でも良いが、 Sub 条件判断と分岐() プログラムコマンド(IfやGoToなど)と Dim a As String かぶらないこと。 looptop: a = InputBox("なにか入力してください") If a = "" Then GoTo looptop End Sub 変数aが空白なら、GoTo looptopが実行される ●繰り返し命令 【For~Next命令】●教科書pp.70~71 あらかじめ決まった回数だけ同じ命令を繰り返す場合に有効。 文法:For [カウンタ]=[初期値] to [終了値] step [増加値] Next 【例題2】 Sub 繰り返し() Dim i As Integer For i = 1 To 3 MsgBox i & "回目" Next カウンタはあらかじめ宣言しておく。 iが1から3になるまで、(step [増加値]省略時は) iを1ずつふやす。 iが3になるまで繰り返す。 End Sub ※Exit Forを使うことで、ループから強制的に抜けることができる。 【演習】For~Next命令を用いて、1~100までの数字をA1~A100に表示する プログラムを作成しなさい。 ただし、10ループごとにInputboxを表示させ、”終了”と入力がされたら そこでFor~Next文から脱出するプログラムを作成しなさい。 【オブジェクトとプロパティとメソッド】 【Excelに限らず、Windowsでプログラムを作る上で必ず出てくる言葉が 「オブジェクト」と「プロパティ」と「メソッド」です。】 【オブジェクト】 操作の対象となるもの → ワークシート、セルなど 【プロパティ】 値や属性 → セル内の数値やフォントの大きさなど 基本的には [オブジェクト].[プロパティ]=値 変数=[オブジェクト].[プロパティ] といった表記をする 1行1列のCellオブジェクトの Valueプロパティに「月曜日」を設定 【例1】:Cells(1,1).Value = "月曜日" 値 A1に「月曜日」と表示 Valueプロパティ セルに入力されている内容を示す オブジェクト (正確にはCellsはCellオブジェクトが集まったコレクションという→教科書p.89) 【メソッド】 オブジェクトを操作したり、動作させたりする → InputBoxなど 【例3】:Application.InputBox("InputBoxメソッド") Applicationオブジェクト「入力ウィンドウを開け」というメソッド [省略可能] 2 【移動平均法】 以下のようにデータが分散していたとする。 Y 2 2' 1 7 3 3' 5 4' 5' 4 6' 6 X 1、2、3の平均をとって、これを2'とする。 2、3、4の平均をとって、これを3'とする。 ・ ・ ・ これを繰り返すことによって、ランダムノイズを減少させることができる。 移動平均法のサンプルプログラム A列に並んでいるデータを3点移動平均法によって平滑化し、 B列に表示するプログラム Dim a As String 'セルのチェック用 Dim aa As Single, bb As Single, cc As Single, ave As Single 'aa,bb,cc セルの読み込み用、ave 平均用 Dim i As Integer 'カウンタ For i = 2 To 3000 a = Cells(i + 1, 1).Value If a = "" Then Exit For aa = Cells(i - 1, 1).Value bb = Cells(i, 1).Value cc = Cells(i + 1, 1).Value ave = (aa + bb + cc) / 3 Cells(i, 2).Value = ave Next '|1行下(i=2)からはじめて '|注目点の1行下(i+1)をチェックする '|これは注目点の上下の行を使用するため '注目点のひとつ上 '注目点 '注目点のひとつ下 '平均算出 '平均を注目点の隣のセルに書き込み 科学にエクセルを利用する利点は、大量のデータを統計的に処理出来る点である。 計算精度はMathmatica等よりも劣るが、簡単にデータを視覚化することができる。 また、データを入出力できるセルがはじめから用意されていることは、 エクセルでプログラムを作る上での最大の利点である。 おまけ
© Copyright 2024 ExpyDoc