情報(実習)(芸術1班)
第 10 回 エクセル篇3
VBA を使ったプログラムによる関数のシミュレーション
これまでの2回で、Excel の表計算ソフトとしての機能及び統計機能の初歩を実習しました。 Excel にはこれ 以外にも大変有 用な機能があり ます。今 日はその中から 、 VBA(Visual Basic Application)を使ったプログラムの初歩も習得しながら、関数のシミュレーションを行ってみたい と思います。
1 エクセルでグラフを描く
・はじめに、関数の形をグラフに描くことを考えます。 ・たとえば、 y = x2 という関数のグラフを、エクセルを使って書いてみましょう。 Y = X2 という関数のグラフ (1) 新しいエクセルのデータシートを用意します。 (2) そのデータシートに、X の値を A 列に、またそれに対応する Y の値を B 列に入力します。 (3) X の値としては、−3〜+3の整数をとりましょう。 (4) 下のようなデータができましたか。 A B C D E 1 X Y=X^2 2 -3 9 3 -2 4 4 -1 1 5 0 0 6 1 1 7 2 4 8 3 9 9 10 11 (5) X の定義をします。 ・まず A 列を選択します。 ・次に 「数式」→「名前の定義」とクリックすると、「新しい名前」のボックスが現れる。 ここで「名前」に「X」と入力する。但しここでは「Sheet1」の上での「X」であるという意味で、「範囲」として「Sheet1」を選びます。 ・同様に、列 B を「Y」と定義します。 (6) このデータでグラフを作ります。グラフの種類は「散布図」を、グラフの形式は「データポイ ントを折れ線でつないだ散布図」を選んでみて下さい。 y=x^2 0 1 2 3 4 5 6 7 8 9 10 -4 -2 0 2 4 x y y (7) このようなグラフが書けましたか。 (8) よく見ると、グラフの細かさがまだ足りません。そこで、 (9) X の値の増分を「0.1」にしてみましょう。 (10) しかし、-3.0, -2.9, -2.8,・・・と、いちいち手で入力するのは面倒ですし、対応する Y の 値を計算するのも大変です。そのような時には、次に示すような、「連続データの入力」方 法があります。
2 連続するデータの入力方法
-3 から+3 までの、0.1 間隔で連続するデータの入力方法は、以下のとおりです。エクセルは賢い! 連続するデータの入力方法 (1) 最初の2つの値 -3 と -2.9 を入力する。 (2) 今入力した2つのセルを選択する。 (3) 選択範囲の右下の黒四角(フィルハンドル)にポインタを合わせ、表示される数値が +3 になるまで下にドラッグする。
3 数式の設定とコピー
X の値は連続データとして入力されましたが、その X に対応する Y(=X^2)の値も、同じように「自 動的に」計算させることができます。 Y の値の計算 (1) セル B2 に、セル A2 に対応する数式(=X^2)を入力する。 (2) セル B2 を選択して、右下の黒四角(フィルハンドル)をダブルクリックする。 (3) すると、入力されている X に対応するすべての Y のセルに、数式がコピーされ、表が完成しま す。 A B C 1 X Y = X^2 2 -3 9 3 -2.9 4 実習しよう(グラフの作成) 完成した表からグラフを作りましょう。 また、グラフのタイトルをつけたり、x軸やy軸などの名称もつけましょう。4 Y = a X
2のグラフを書こう
次に、Y = X2 に係数 a を付け、この係数の値を変えるとグラフの形がどう変わるかを見てみよう。 (1) 新しいワークシートに移る。(Sheet2 を選ぶ) (2) Y = aX2 の X と Y の表を作る。(下の表を参照) (3) X と Y の定義をする。範囲は、「Sheet2」とします。 A B C D 1 X Y = a X^2 a= 2 2 -3 18 3 -2.9 16.82 4(4) セル C1 に「a=」と入力する。 (5) セル D1 に「2」と入力する。(係数 a の値です) (6) セル D1 の名前を「a」と定義する。セル D1 を選択した上で、 「数式」→「名前の定義」→「a」と入力する。 (7) これによって、セル D1 に入っている値が「a」の値となることが定義されました。 (8) A 列の X の値を連続したデータとして入力します。 (9) X の値としては、-3から+3までで、増分は 0.1 としましょう。 注意!!(その1) 「a」の定義を忘れずにおこなうこと。これを忘れると、後でグラフが動きません。 (10) セル B2 の数式「=a*X^2」を入力する。 注意!!(その2) 数式で「掛ける」を意味させる時は必ず「*」をつけること。 (11) セル B2 の右下をダブルクリックするとすべての Y に入力される。 (12) グラフウィザードを使ってグラフを作成して終了。 練習しよう ここで、セル D1 の a の値を、「a = 2」から別の値に変えてみましょう。 グラフはどう変化するのでしょうか? 実習しよう(Y = a X2 + b のグラフ) いままでの練習をもとにして、Y = aX2 +b のグラフを書いてみよう。 但し、係数の値は a=-1, b=2 とします。
挑戦しよう
放物線(Y=X^2)のグラフは書けました。では、円(あるいは楕円)のグラフをエクセルで書く場 合はどうしたらよいのでしょうか?5 VBA の簡単なプログラム
情報処理の講義ですでに習われたと思いますが、プログラムというのは、コンピュータの動作を命 令する文の集まりです。コンピュータはその文書を解釈し、命令を順番に実行してゆきます。
Excel の VBA プログラムは、Excel にその動作を命令し、Excel はその命令を解釈し実行します。こ のため、これまで習ったワークシート関数(SUM,AVERAGE)のようなセルレベル(ミクロ)での動 作ではなく、VBA は全体(マクロ)レベルでの動作をコントロールするため、マクロ言語とも呼ば れます。
グラフを Excel で書く際に、あなたが手作業で行った動作を、プログラムを書いて
コンピュータ自身に、自動的に行わせようというわけです。
ちょっとだけ準備
初期設定では VBA プログラムするために便利ないくつかの機能が無効になっている。 「ファイル」から「オプション」をクリックし、「リボンのユーザ設定」「メインタブ」を選択し 「開発」のチェックボックスをオンにし、「OK」をクリックする。以上の作業により、リボンに「開 発」タブが追加される。 マクロを含む Excel ブックの保存 Excel2007 からは、マクロを含む Excel ブックは他のブックと区別されるようになった。保存す る際には、「ファイルの種類」を、「Excel マクロ有効ブック」として保存する必要がある。VBE(Visual Basic Editor)の起動
(1) VBE を起動するには、「開発」タブ左端の「Visual Basic」をクリックする。
(2) VBE ウィンドウが、Excel とは別のウィンドウとして表示されます。新しくプログラムを作成 するためには、メニューバー「挿入」の中の「標準モジュール」を選択して下さい。
(3) プログラムの本文は、右側の「モジュールシート」に書きます。このモジュールシートには、 複数のプログラムを書くことができます。
(4) VBA プログラムは、Sub 文と End Sub 文との間に書くのが原則です。 (5) 以下の例を入力してみて下さい。
練習しよう(プログラムの入力)
プログラム(練習1)
Sub HelloVBA()
MsgBox(“Hello.VBA!!”)
End Sub
このプログラムを実行するには、ツールバーにある「実行ボタン」(右向き三角形)をクリックし ます。すると、Excel のシートの上に、メッセージボックスが現れます。 つまり、「MsgBox(“Hello.VBA!!”)」という命令文は、「メッセージボックスに Hello.VBA!!と書き なさい」、というものです。 まとめると、プログラムの形は、以下のようになります。