Welcome to Toshiyuki Ihara's Excel計算の技 その1





「y=f(x)について定数を様々に変えながらプロットする」
accesslog


イントロ それでは、まず初めに「y=f(x)について定数を様々に変えながらプロットする」という課題を取り上げることにします。

流れとしては
1:x=x0+mdx(mは整数)としてx軸の列を用意する
2:y=f(x)の例として、y=Asin(Bx)exp(-Cx)の列を作る
3:グラフを作る
4:パラメータx0,dx,A,B,Cをキーボードの矢印キーで調整するためのマクロを実装する
といった順で解説します。

まずはx=x0+m*dx(mは整数)というX軸を作るために、図のように入力します。
ただし赤字の部分はA列の式の中身を表しており、B列・C列に入力するものではありません。
実際に入力したあとに表示されるものは黒字で示した「計算結果」になります。
とりあえず、A7〜A207のセルに1〜20の数字が並べばOKです。

ここで使う小技を下に列挙します。
(読み飛ばしても構いません)

1:空白のセル上で「=」を入力した場合、キーボードの矢印キーは「参照先指定のカーソル移動モード」として機能する。
2:空白のセル上で「F2」キーを押してから「=・・・」と書いた場合、キーボードの矢印キーは「内容修正のためのカーソル移動モード」として機能する。
3:上記の二つのモードは「F2」を押すことでいつでも切り替えられる。
4:空白のセル上で「=」を入力した後、別のセルをクリックすると、そのセルが参照先として入力される。
5:式入力が終わったら、「Enter」キーか「Tab」キーを押す。(選択セルは下および右に動く)
6:書き間違えがあれば、「del」キーで消して再度書くか、式の一部を修正するだけなら「F2」キーを押して式の編集を行う。
7:式の編集中に、元の状態に戻したくなった場合には、「Esc」キーを押せば編集前に式に戻る。
8:$マークは「絶対参照」の機能。(コピー貼り付けをしても参照先が動かない)
9:$マークは自分で手入力してもいいが、式の編集の最中に「F4」キーを押すことで「$A$1/A$1/$A1/A1」を切り替えることもできる。
10:もちろん、A9セルより下側の入力には「コピー貼り付け」を使う。
11:コピー貼り付けが面倒なら、コピー元セルをクリックしてから「黒枠右下にある黒ポッチリ」をドラッグアンドドロップすればOK。
次にy=Asin(Bx)exp(-Cx)の列を作るため、パラメータA,B,Cの部分と、B7〜B207の範囲に赤字で示した式を追記します。
ただし「=$C$2*SIN($D$2*A7)*EXP(-$E$2*A7)」と赤字で書いた部分はB列の式の中身を表しており、実際には数字が表示されます。

とりあえず、B7〜B207に0〜-0.0181といった数字が並ぶと思います。
ここで使う便利な小技を下に列挙します。
(読み飛ばしても構いません)

1:B8より下側の式はB7のものと同じなのでコピー貼り付けでよいが、コピー貼り付けが面倒ならB7をクリックした状態で「黒枠右下にある黒ポッチリ」をダブルクリックすれば、左の列と同じ行数分だけコピー貼り付けを行ってくれる。
2:207行目のようなシートの下の方に移動する際、スクロールバーをマウスで動かすよりも、「Ctrl+↓」や「Ctrl+↑」を使って最下部や最上部へ移動する方が早い。
グラフを作ります。
A7〜B207を選択した状態で、「グラフ作成ボタン」を押します。
ここでは「散布図」のうちの一番右下にある「データポイントを折れ線でつないだマーカーなしの散布図」を使います。

ここで使う便利な小技を下に列挙します。
(読み飛ばしても構いません)

1:A7〜B207を選択する際、マウスでドラッグするよりも、「Shift」を押しながら「Ctrl+↓」や「→」を押して選択する方が早い。
2:もしくは、A7を選択した状態でスクロールバーを下の方へ移動し、「Shift」を押しながらB207をクリックするのも悪くない。
グラフができあがりました。
デフォルトでは、横軸縦軸ともに自動的に規格化する設定になっています。
最後に、パラメータx0,dx,A,B,Cをキーボードの矢印キーで調整するためのマクロを実装する部分を解説します。

まず、マクロが実行できる環境にするために、Excelのセキュリティを「中」に設定します。
セキュリティの設定を変えるには、メニューバーの「ツール」タブの「マクロ」の中の「セキュリティ」を押してセキュリティウィンドウを開きます。
「Sheet1」のタブを右クリックし、「コードの表示」を押すことで、Visual Basic Editorを起動できます。

※ この他にも、メニューバーの「ツール」タブの「マクロ」の中の「Visual Basic Editor」を押したり、「Alt+F11」でも起動できますが、このときはSheet1のコードが表示されていません。この場合は、「プロジェクト - VBAProject」と書いてあるパネル内の「VBAProject」タブの「Sheet1 (Sheet1)」という部分をダブルクリックすることで、Sheet1のコードを表示できます。
Sheet1のコードを開いた状態で、図のようなプログラムを入力します。
このプログラムは、パラメータの値を「up」セルや「down」セルを使って制御するためのものです。

textファイルは以下のアドレスに置いてあるので、コピーして貼り付けて下さい。

textファイル

入力したら、Visual Basic Editorの「閉じる」ボタンを押して、Visual Basic Editorを終了して下さい。
ちなみに、貼り付けたマクロは今作っているファイルの、Sheet1にしか適応されません。
Visual Basic Editorを閉じてExcelの画面に戻ったら、パラメータの下に入力しておいた「up」というボタンや「down」というボタンを押してみて下さい。
パラメータの値が、入力しておいた間隔で変化するはずです。


出来上がるExcelファイル(マクロなし)

このファイルにはマクロを貼り付けてないので、up/down機能は動きません。


出来上がるExcelファイル(マクロあり)

このファイルにはマクロがついているので、開く時に注意書きが表示されます。
「はい」を選択すると、up/down機能が使えます。
ファイルを保存すると、貼り付けたマクロもファイルと共に保存されます。

マクロはファイル単位で管理されるものなので、他のファイルを開くときには何も影響を及ぼしません。

保存したファイルを再度開くとき、「マクロを無効にするか、有効にするか」といったメッセージが表示されます。
もちろん、有効にしないとマクロは動きません。

エクセル計算の技へ戻る

ホームへ