授業計画書 14.アプリケーションの作成 アプリケーションの作成を通したプログラムの理解 14.1 確認・提出事項 ・第13回レポート提出 ・全レポート(提出遅れ分)提出 14.2 授業内容 総復習 14.3 エクセルの基本 各部名称他 14.4 VBA によるプログラミング 条件判断 繰り返し命令 コントロール オブジェクトとプロパティとメソッド 14.5 プログラムによる解析 移動平均法 ピーク解析への応用 14.6 知っておくと便利な小技 14.7 その他 試験は 2 月 1 日(火)の 1 限、123 号教室で行います。 出題範囲は配布したプリントです。 語句、演習、例題、レポートをよく見直しておいてください。 ※これまでの授業用資料、レポート課題等は http://ace.cen.kagoshima-u.ac.jp/bunseki/proex/proex.htm にアップロードしてあります。 「=」を押した後 A2をクリック 「=」を押した後A2をクリックし、 F4キーを押す =A2 オートフィルを行った場合、 相対セル参照はこれに合わせて 変化するが、絶対セル参照は 常に同じセルを参照し続ける。 =$A$2 =A2~A6 =$A$2 【条件判断、繰り返し命令】 ●条件判断 ※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を加算 ●繰り返し命令 【For~Next命令】●教科書pp.70~71 あらかじめ決まった回数だけ同じ命令を繰り返す場合に有効。 文法:For [カウンタ]=[初期値] to [終了値] step [増加値] Next 【例題1】 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を使うことで、ループから強制的に抜けることができる。 【文法:Do While 条件~Loop】・条件が成立する限り繰り返す ●教科書pp.74~75 【文法:Do~Loop While 条件】 Do While~LoopやFor~Nextは 「前判断」と呼ばれる。 Do WhileやForに来た時点で 繰り返しの条件から はずれていれば、 繰り返しを一度も実行せずに 次の処理に移る。 Do~Loop While 「後判断」と呼ばれる。 Loop Whileに来た時点で 繰り返しの条件判断を行うので、 最低1回は構文が実行される。 【演習】For~Next命令を用いて、1~100までの数字をA1~A100に表示する プログラムを作成せよ。 ただし、10ループごとにInputboxを表示させ、”終了”と入力がされたら そこでFor~Next文から脱出するプログラムを作成せよ。 For i = 1 To v For ii = 0 To 7 Cells(i + 1, 23 + ii).Value = score(i, ii) Next Next ii = 1 Do While True ii = ii + 1 a = Cells(ii, 21).Value If a = "" Then Exit Do v=0 For i = 26 To 29 v = v + Cells(ii, i).Value Next Cells(ii, 31).Value = v Loop 左は、化学生命工学科が申請する予定の Jabeeの書類を作るための学習時間の 計算プログラムのごく一部です。 実用プログラムでも、データの集計程度なら For~NextとIf~Then、ちょっとした工夫で 十分事足りることが多いです。 【コントロールまとめ】 ●教科書p.108 コントロールとは、フォーム等に配置して使う部品のこと。 コントロールツールボックスから、デザインモードで配置する。 セルやフォームに視覚的な効果をつけることができる。 【ボタン】 コマンドボタン :押すことで処理を実行できる。 【ボックス】 テキストボックス :文字入力を受け付ける チェックボックス :オン、オフを設定する。 コンボボックス :リストの中から一つ選択するか、直接入力する。 リストボックス :リストの中から一つ選択する。 【他】 ラベル :文字を表示する。 【オブジェクトとプロパティとメソッド】 ●教科書pp.86~89,92~93 【Excelに限らず、Windowsでプログラムを作る上で必ず出てくる言葉が 「オブジェクト」と「プロパティ」と「メソッド」です。】 【オブジェクト】 操作の対象となるもの → ワークシート、セルなど 【プロパティ】 値や属性 → セル内の数値やフォントの大きさなど 基本的には [オブジェクト].[プロパティ]=値 変数=[オブジェクト].[プロパティ] といった表記をする 1行1列のCellオブジェクトの Valueプロパティに「月曜日」を設定 【例1】:Cells(1,1).Value = "月曜日" 値 A1に「月曜日」と表示 Valueプロパティ セルに入力されている内容を示す オブジェクト (正確にはCellsはCellオブジェクトが集まったコレクションという→教科書p.89) 【メソッド】●教科書pp.94~97 オブジェクトを操作したり、動作させたりする → 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 'カウンタ(Do~Loop内で使用) i = 1 '変数の初期化、一段下から始める Do i = i + 1 a = Cells(i + 1, 1).Value 'セルのチェック If a = "" Then Exit Do '空白だったら終了 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 '平均を注目点の隣のセルに書き込み Loop 科学にエクセルを利用する利点は、大量のデータを統計的に処理出来る点である。 計算精度はMathmatica等よりも劣るが、簡単にデータを視覚化することができる。 また、データを入出力できるセルがはじめから用意されていることは、 エクセルでプログラムを作る上での最大の利点である。 おまけ
© Copyright 2024 ExpyDoc