エクセルによる数値計算と化学への応用 群馬大学工学部 応用化学 生物化学科 平成 21 年 4 月
前期に PC を使った文書作成 表計算 プレゼンテーションを習得しました 後期には主に表計算を より高度に利用するための手法を勉強します 第 1 章計算の基礎 1.1 文字の表示 文字 ABC 1.2 四則計算 8 + 2 = 10 8-2 = 6 8 2 = 16 8 2 = 4 1.3 数列の和 1 から 10 間での数列の和は 55 たとえば上のような表計算を考えてみましょう 上の表では文字の表示という項に必要な文字を入力して 2つの数からその四則演算を行い 1からnまでの数列の和を計算しています 文字の表示の部分の入力は簡素化しようがありませんが 四則計算の部分ではたとえば最初の加算の部分に数値を2つ入力すれば加減乗除算を自動で行うことはできます また 数列の和も一番右下のセルに公式を入力しておけば自動的に計算してくれます この計算を何回も日常的に行い 印刷することを考えましょう エクセルを起動して数値を入力して結果を印刷する動作を行います 入力は表示文字と3つの数値 ( 四則演算とn) です 後は自動で計算してくれます 印刷は印刷範囲を一度設定しておけば印刷のアイコンを押すだけです たいした操作ではありません もし 間違ったセルに数値を入力してしまったらどうでしょう 作った本人であれば問題ありませんが 全く知らない人がセルを書き換えてしまうと計算できなくなってしまいます エクセルにはマクロ ( エクセル中の一連の操作をまとめてひつつのコマンドで行うことのできる機能 ) としてVBA(Visual Basic for Application) を持っています これはBASIC( プログラム言語のひとつ ) をエクセルの操作や処理の自動化ができるようにしたものです その意味でVBAはプログラムの作り方として Visual Basic と同じであり 習得しておくと非常に便利であり 将来的に Visual Baisc を使う場合にも役に立ちます この授業ではこれまで勉強したエクセルの使い方による数値計算の方法と VBA を用いた数値計算の方法を勉強します VBA を使って作るマクロの例を下に示します
このボタンを押すと元のワー クシートへ戻る エクセルのワークシート上のコマンドボタンを押すとマクロのウィンドウが開き 実行される 実行 結果はもとのワークシートに反映される 次にこのマクロの作り方を説明します 順を追って説明しま すから自分で試してください
VBA 作製の準備 ( 一回設定するだけでよい 次回以降は丌要 )
1 元となるシートの作成 元となるシートを作成してください この際に 図にあるものと同じにしてください 特にセルの位置 に注意してください コマンドボタンの追加 1 コマンドボタンの追加 開発メニューの挿入ボタンの下向きの をクリッ クすると上の図に示したようなフォームコントロールが現れる その中のコマンドボタンの追加を押す するとカーソルが細い十字に変わるのでドラッグして 必要な大きさのボタンを作成する マウスのボタンから手を離すと同時に下のような画面が現れる 作製したボタンをこれでマクロに登録する そのため 新規作成を押す すると プログラムを書き込むコード画面が現れる 2 プログラムコードの記述 計算の基礎 操作が画面へのコマンドボタンをダブルクリックするとコード記述画面が現れます コード画面には Private Sub と End Sub と2 行のコードがあります この2つのコードの間に自分が実行させたい命令を記入するとワークシート上のボタンを押したときにその動作がなされ
ます ここでは操作画面を起動することを記入します 計算の基礎.show と記述されています これは計算の基礎と名前を付けられたウィンドウ ( プログラム ) を画面に示しなさいという意味です 3 ユーザーフォームの作成つぎに VBA の本体であるウィンドウの作成およびコードの記述を行います ウィンドウは VBA ではユーザーフォームと呼ばれます 先ほどコードを記述した画面のメニューで挿入 ユーザーフォームを選択してください 選択すると下のように新しいウィンドウが作成されます このボタ ンで小さ くする
このままではプログラムを作りにくいので下記のような状態にしましょう 画面右上のウィンドウを元に戻すのボタンを押して 最大化を解除します その後 プロジェクトエクスプローラ プロパティウインドを表示し 適当な位置に配置します もし プロジェクエクスプローラやプロパティウインドが画面上に現れていなかったら 表示をクリックして画面上に表示してください ツールボックスのツ ールを選択して画 面を作成する プロジェク トエクスプ ローラ 計算の基礎 プロパティ ウインド この部分にボタンやラベルを配置する ユーザーフォームをクリックしユーザフォームのプロパティウインドの一番上のオブジェクト名を UserForm1 から計算の基礎に変更してください ツールボックスを使ってボタンやラベルを配置します それぞれのツールが何を意味するかはマウスカーソルをツールの上に移動すると説明が現れます ラベルを8 個 テキストボックスを4 個 コマンドボタンを5 個使って次の画面を作成してくこれと同じようにすださい る オブジェクト名を変更する
プログラムコードの記述 プログラムコードの記述は先ほどと同じように各オブジェクトをダブルクリックして行います 次のページにあるコードを記入してください 各コードについて簡単に説明します Private Sub Commandbutton1_Click() コマンドボタンの 1 をクリックしたときに行う動作を記述することを意味している Worksheets(" 基礎計算 ").Activate 基礎計算と名前を付けたワークシートを使うことの宣言 Set WS = Worksheets(" 基礎計算 ").Application 選択したワークシートを WS という略称に設定している これで WS を使うことで基礎計算のワークシートを指していることになる WS.Range("b7") = TextBox1.Text Range() 命令は括弧内のセルを選択するという意味です その前の WS はセル指定を行うワークシート名です この命令は選択したセルに TextBox1.txt の内容を代入するという意味です TextBox1.txt とはテキストボックスの 1 番目 ( これはプロパティのオブジェクト名です ) の内容 (Text) を代入するという意味です プログラミングでは =( イコール ) は代入水るを意味します Dim aa As Double プログラミング ( コーディング ) では使う変数 ( 値や文字を格納する器 ) を必ずどの様な類のものか を定義して使います この場合 aa という名前の変数を倍精度 ( 有効数字の多い数 ) と定義して います For m = 1 To cc sum = sum + m Next この命令は繰り返しを意味します つまり For から Next までを繰り返すことを意味しています 繰り返す回数は m という変数が 1 から cc までです この場合に 1 から cc までは 1 刻みでという意味です つまり m 回繰り返すことを意味します Unload Me この命令はウィンドウを閉じる ( 作成したユーザフォームを終了する ) ことを意味しています
Private Sub CommandButton1_Click() Worksheets(" 基礎計算 ").Activate Set WS = Worksheets(" 基礎計算 ").Application WS.Range("b7") = TextBox1.Text End Sub Private Sub CommandButton2_Click() Worksheets(" 基礎計算 ").Activate Dim aa As Double Dim bb As Double Set WS = Worksheets(" 基礎計算 ").Application WS.Range("B10") = TextBox2.Text WS.Range("B11") = TextBox2.Text WS.Range("B12") = TextBox2.Text WS.Range("B13") = TextBox2.Text aa = TextBox2.Text WS.Range("d10") = TextBox3.Text WS.Range("d11") = TextBox3.Text WS.Range("d12") = TextBox3.Text WS.Range("d13") = TextBox3.Text bb = TextBox3.Text WS.Range("f10") = aa + bb WS.Range("f11") = aa - bb WS.Range("f12") = aa * bb WS.Range("f13") = aa / bb End Sub Private Sub CommandButton3_Click() Worksheets(" 基礎計算 ").Activate Dim cc As Double Dim m As Double Dim sum As Integer Set WS = Worksheets(" 基礎計算 ").Application WS.Range("D16") = TextBox4.Text cc = CLng(TextBox4.Text) sum = 0 For m = 1 To cc sum = sum + m Next WS.Range("G16") = sum End Sub Private Sub CommandButton4_Click() Worksheets(" 基礎計算 ").Activate Unload Me End Sub Private Sub CommandButton5_Click() Worksheets(" 基礎計算 ").Activate Unload Me End Sub
マクロが できたら一度保存して エクセルを終了してして下さい そして もう一度マクロを含んだエ クセルのファイルを開いて下さい すると セキュリティの警告が現れます この中のオプションをクリ ックして下さい そして このコンテンツを有効にするをチェックして下さい マクロを実行するにはシート上に作製したボタンをクリックして下さい
このボタンを押して マクロを実行する 実行すると作成した画面が現れます ( もし画面が現れずエラーが出たらこれまでのところを見直 してください この画面に文字 数値を入力して文字の表示 四則計算 数列の和などを試してみる マクロの実行後はワークシートの内容が変わっています 確認してください
マクロのボタンの名前を変更しましょう ボタンの上で右クリックす ると右のようなメニューが現れます この中のテキスト編集を選択 して下さい すると ボタン上の文字を変更できます プログラムの修正を行いたいときには開発のメニューの一番右の Visual Basic を選択して下さい コード画面になります