エクセルによる数値計算と化学への応用 - gunma...

12
エクセルによる数値計算と化学への応用 群馬大学工学部 応用化学・生物化学科 平成21 4

Upload: others

Post on 31-Dec-2019

2 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: エクセルによる数値計算と化学への応用 - Gunma …polymer.chem-bio.st.gunma-u.ac.jp/vba.pdfエクセルによる数値計算と化学への応用 群馬大学工学部

エクセルによる数値計算と化学への応用

群馬大学工学部

応用化学・生物化学科

平成21年 4月

Page 2: エクセルによる数値計算と化学への応用 - Gunma …polymer.chem-bio.st.gunma-u.ac.jp/vba.pdfエクセルによる数値計算と化学への応用 群馬大学工学部

前期に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 を使って作るマクロの例を下に示します。

Page 3: エクセルによる数値計算と化学への応用 - Gunma …polymer.chem-bio.st.gunma-u.ac.jp/vba.pdfエクセルによる数値計算と化学への応用 群馬大学工学部

エクセルのワークシート上のコマンドボタンを押すとマクロのウィンドウが開き、実行される。実行

結果はもとのワークシートに反映される。次にこのマクロの作り方を説明します。順を追って説明しま

すから自分で試してください。

このボタンを押すと元のワー

クシートへ戻る

Page 4: エクセルによる数値計算と化学への応用 - Gunma …polymer.chem-bio.st.gunma-u.ac.jp/vba.pdfエクセルによる数値計算と化学への応用 群馬大学工学部

VBA作製の準備(一回設定するだけでよい。次回以降は丌要)

Page 5: エクセルによる数値計算と化学への応用 - Gunma …polymer.chem-bio.st.gunma-u.ac.jp/vba.pdfエクセルによる数値計算と化学への応用 群馬大学工学部

① 元となるシートの作成

元となるシートを作成してください。この際に、図にあるものと同じにしてください。特にセルの位置

に注意してください。

コマンドボタンの追加

開発メニューの挿入ボタンの下向きの▽をクリッ

クすると上の図に示したようなフォームコントロールが現れる。その中のコマンドボタンの追加を押す。

するとカーソルが細い十字に変わるのでドラッグして、必要な大きさのボタンを作成する。マウスの

ボタンから手を離すと同時に下のような画面が現れる。作製したボタンをこれでマクロに登録する。

そのため、新規作成を押す。すると、プログラムを書き込むコード画面が現れる。

② プログラムコードの記述

「計算の基礎」操作が画面へのコマンドボタンをダブルクリックするとコード記述画面が現れま

す。コード画面には Private Sub・・・と End Sub と2行のコードがあります。この2つのコードの間

に自分が実行させたい命令を記入するとワークシート上のボタンを押したときにその動作がなされ

コマンドボタンの追加

Page 6: エクセルによる数値計算と化学への応用 - Gunma …polymer.chem-bio.st.gunma-u.ac.jp/vba.pdfエクセルによる数値計算と化学への応用 群馬大学工学部

ます。ここでは操作画面を起動することを記入します。

計算の基礎.show と記述されています。これは計算の基礎と名前を付けられたウィンドウ(プロ

グラム)を画面に示しなさいという意味です。

③ ユーザーフォームの作成

つぎにVBAの本体であるウィンドウの作成およびコードの記述を行います。ウィンドウはVBAで

はユーザーフォームと呼ばれます。先ほどコードを記述した画面のメニューで挿入→ユーザー

フォームを選択してください。

選択すると下のように新しいウィンドウが作成されます。

このボタ

ンで小さ

くする。

Page 7: エクセルによる数値計算と化学への応用 - Gunma …polymer.chem-bio.st.gunma-u.ac.jp/vba.pdfエクセルによる数値計算と化学への応用 群馬大学工学部

このままではプログラムを作りにくいので下記のような状態にしましょう。画面右上のウィンドウを元

に戻すのボタンを押して、最大化を解除します。その後、プロジェクトエクスプローラ、プロパティウイ

ンドを表示し、適当な位置に配置します。もし、プロジェクエクスプローラやプロパティウインドが画面

上に現れていなかったら、表示をクリックして画面上に表示してください。

ユーザーフォームをクリックしユーザフォームのプロパティウインドの一番上のオブジェクト名を

UserForm1 から計算の基礎に変更してください。ツールボックスを使ってボタンやラベルを配置し

ます。それぞれの

ツールが何を意

味するかはマウス

カーソルをツール

の上に移動すると

説明が現れます。

ラベルを8個、テ

キストボックスを4

個、コマンドボタン

を5個使って次の

画面を作成してく

ださい。

この部分にボタン

やラベルを配置

する。

ツールボックスのツ

ールを選択して画

面を作成する。

これと同じようにす

る。 オブジェクト名を

変更する

プロジェク

トエクスプ

ローラ

プロパティ

ウインド

計算の基礎

Page 8: エクセルによる数値計算と化学への応用 - Gunma …polymer.chem-bio.st.gunma-u.ac.jp/vba.pdfエクセルによる数値計算と化学への応用 群馬大学工学部

プログラムコードの記述

プログラムコードの記述は先ほどと同じように各オブジェクトをダブルクリックして行います。

次のページにあるコードを記入してください。

各コードについて簡単に説明します。

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

この命令はウィンドウを閉じる(作成したユーザフォームを終了する)ことを意味しています。

Page 9: エクセルによる数値計算と化学への応用 - Gunma …polymer.chem-bio.st.gunma-u.ac.jp/vba.pdfエクセルによる数値計算と化学への応用 群馬大学工学部

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

Page 10: エクセルによる数値計算と化学への応用 - Gunma …polymer.chem-bio.st.gunma-u.ac.jp/vba.pdfエクセルによる数値計算と化学への応用 群馬大学工学部

マクロが、できたら一度保存して、エクセルを終了してして下さい。そして、もう一度マクロを含んだエ

クセルのファイルを開いて下さい。すると、セキュリティの警告が現れます。この中のオプションをクリ

ックして下さい。そして、このコンテンツを有効にするをチェックして下さい。

マクロを実行するにはシート上に作製したボタンをクリックして下さい。

Page 11: エクセルによる数値計算と化学への応用 - Gunma …polymer.chem-bio.st.gunma-u.ac.jp/vba.pdfエクセルによる数値計算と化学への応用 群馬大学工学部

実行すると作成した画面が現れます。(もし画面が現れずエラーが出たらこれまでのところを見直

してください。

この画面に文字、数値を入力して文字の表示、四則計算、数列の和などを試してみる。

マクロの実行後はワークシートの内容が変わっています。確認してください。

このボタンを押して

マクロを実行する

Page 12: エクセルによる数値計算と化学への応用 - Gunma …polymer.chem-bio.st.gunma-u.ac.jp/vba.pdfエクセルによる数値計算と化学への応用 群馬大学工学部

マクロのボタンの名前を変更しましょう。ボタンの上で右クリックす

ると右のようなメニューが現れます。この中のテキスト編集を選択

して下さい。すると、ボタン上の文字を変更できます。

プログラムの修正を行いたいときには開発のメニューの一番右の Visual Basic を選択して下さい。

コード画面になります。