０を入れたセル A2 にマウスポインタ

http://chtgkato3.med.hokudai.ac.jp/kougi/ME_practice/を置いて、EXCEL で リサージュ曲線のシミュレーションを行う。

左クリックしたまま 0.002 を入れた

Excel を開いて、Aカラムのセル１ に （A1に）セルまでドラッグする.

ｔ と入力. （Aカラム（列）に時間（秒）を入れる）

３個のセルが選択された枠が出る.
ツールバーの中央揃えボタンを押すと、文字がセルの中央に配置される.

枠の右下にマウスポインタを置くとAカラムのセル２，３，４に、（A2、A3、A4 に）カーソルの印が黒い十字に変わる.

０、 ０.００１、 ０.００２ を入力する.
黒い十字印にマウスポインタ置いてエクセル ワークシート の左クリックしたまま セル２２まで縦の並びを、列 （ カラム Column ）という.
横の並びを、行 （ ロウRow

ドラッグして、左クリックを離す.

）という.

12セル A２ から A２２ まで
カラムB、C の セル１に、X、Yを入力.

0 から 0.02 までの数字が自動的に入力される.

カラムBのセル１にマウスポインタを置いて（これは、時間（秒）を示す数字）

左クリックしたまま、カラムCのセル１まで桁が不揃いなので、ツールバーのドラッグして、左クリックを離す.

桁揃えボタンを押して、桁を揃える。

カラムB、Cのセル１が選択された枠が出る.

その際、セル２から２２まで選択枠が表示されている状態でツールバーの中央揃えボタンを押してあること（空色で表示）が必要です.

X、Yの文字をセルの中央に揃える.

Ｅｘｃｅｌ 2007 では、空色で表示した選択枠内にカーソルを置いて右クリックすると桁揃えアイコンが出る。

3

4

カラムBのセル２を 左クリックして関数入力枠の = の右側に関数を書く.

カラムBのセル２に 選択枠を表示させる.

sin(2*3.14*50* と 入力する.
（* は、エクセル、VBA で掛算を表す）

ツールバーの ｆｘ 枠 ( 関数入力枠 ) の空欄内を左クリックする.

次にカラムAのセル２を左クリックする.

縦線のカーソルが関数入力枠で点滅する.

関数入力枠に A2 が自動入力される.

関数入力枠に ＝ (半角等号) を入力する.

再び、関数入力枠の A2 の右側を左クリックして、閉じカッコ ） を入力.

等号の記述は、セルの中に関数、数式を最後に、キーボード上の Enter キー入力する準備ができたことを示す.

を押して、関数入力の終了.

56

セルB2枠の右下の黒い十字印

キーボード上の Enter キーを押すと、を左クリックしたまま、関数入力枠の記述が消えるが、

セル B２２ までドラッグして、（これは セル B3 の内容を示しているため）左クリックを離すと、数字 ０ が表示されているセル B2 をセル B2 から B22 まで数字が左クリックすると、（セル B2 を選択すると）自動的に記述される.

関数表示枠にセルB2に記述した式が現れる.

桁が不揃いなので、セル B2 が選択された状態で、ツールバーの桁揃えボタンで（セル B2 に枠が表示された状態で）桁を揃える.

枠の右下にマウスポインタを置くとポインタの印が、黒い十字に変化する.

78

カラムBの数字をグラフに表示して確かめる.

セル B3 を左クリックすると関数表示枠は以下の式が入っている.

カラムAの、Aと表示したセルを左クリックする.

＝ SIN ( 2 * 3.14 * 50 * A3 )カラムA全体に、選択枠が表示される.

セル B4 を左クリックすると次に、キーボード上のコントロールキー（Ctrl）

関数表示枠は以下の式が入っている.

（キーボードの左下または右下にある）を＝ SIN ( 2 * 3.14 * 50 * A4 )押したまま、カラムBの セル B３ ～ B22 のカラムBの、Bと表示したセルを左クリックする.

式の中の カラムA の値が、カラムB全体にも、選択枠が表示される.

対応する行の値 A3 ～ A22 に自動的に書き換えられていることをこれで、カラムAと カラムB が選択された確認して下さい.

状態になる （空色で表示される）.

910

ツールバーのグラフウィザードボタンを押す.

グラフィウィザードのダイアログの完了ボタンを左クリックする.

グラフィウィザードのダイアログが現れる.

エクセルシート上に、横軸が ｔ （カラムA）、 縦軸が X （カラムB） の散布図、曲線表示を左クリックして選択し、グラフが表示される.

次へ ボタンを左クリックする.

X = sin ( 2 πｆ t ) 、f = 50 (Hz)、 t が 0 から 0.02 秒までの グラフ.
１周期が １/ f =１/50 = 0.02 秒 になっていることを理解して下さい.

Ｅｘｃｅｌ 2007 では、挿入タグを開くと散布図のアイコンがでる。

11121314

周波数 f （Hz） （Hz = 1/sec） 、 角速度 ω （rad/sec）、とりあえず、グラフを消去する.

周期 T （sec）の関係は 一見ややこしいが、（グラフ枠内の空白を左クリック して各々の単位をよく見て、整頓して理解すれば簡単です。

キーボードのDeleteキー を押す）

交流波形１個を、円運動の１回転の射影にして考える。

カラムC にも 周波数 50Hz の正弦波を１秒間に f 個の波があれば、１秒間に f 回転の円運動。

入力する.

１回転の角度は 360度 （2πrad（ラジアン））なのでセルC2 を左クリックして選択し、１秒間の回転角度ω （rad/sec） = 2π（rad） ｘ ｆ （1/sec）

関数入力枠に =sin(2*3.14*50* を入力.
セルA2 を 左クリックして 関数にA2 を

周波数 f （1/sec）の意味は、１秒間に存在する波の数。

自動入力.

周期 T （sec）の意味は、波が 1個通る秒数。

関数入力枠に、閉じカッコ ) を入力して１秒間に存在する波の数 f x 波が 1個通る秒数 T = １

15

キーボードの Enter キーを押す.

16

カラムB の関数 X を編集する.

セルC2 を左クリックして選択枠を出し、（ 正弦波の位相を 90°進める. ）選択枠の右下にマウスポインタを置いてポインタ記号を黒い十字印にした状態でセルB2 を左クリックして選択.

左クリックを押しながら、セルC22 まで

関数入力枠の A2 と ） の間をドラッグして、左クリックボタンを離す.

左クリックして縦線カーソルを出す.
A2 の右に、+90*3.14/180 と入力.

セル C２ から C22 に正弦波の数字が閉じカッコ ) の右側をクリックして自動入力される.

Enterキーを押して編集完了.

セル C２ から C22 まで選択した状態でsin関数の変数は、ラジアン単位

ツールバーの桁揃えボタンを押しての角度を入れる必要があるのでカラムC の数字の桁を揃える.

90 に π/180 を掛ける.
（１度 （1°） = π/ 180 ラジアン）

17

18

セルB2 を 左クリックして選択枠を出し、カラムB の数字が、自動的に枠の右下にマウスポインタを置いて正弦波の位相を 90°進めた数字ポインタの印を黒い十字に変化させる.

（余弦波 cos ） に書き換えられる.

黒い十字印を左クリックしたまま
セル B２２ までドラッグして、左クリックを離す.

1920

カラムAと カラムB と カラム C がカラムB、C の数字をグラフで確かめる.

選択された状態で、カラムAの、Aと表示したセルを左クリックする.

ツールバー の グラフウィザードボタン をカラムA全体に、選択枠が表示される.

左クリックする.

次に、キーボード上のコントロールキー（Ctrl）（キーボードの左下または右下にある）をグラフ ウィザード の ダイアログ押したまま、が表れる.

カラムBの、Bと表示したセルと、散布図、曲線表示の項目をカラムCの、Cと表示したセルを左クリックする.

左クリックして選択してカラムBとC全体にも、選択枠が表示される.

次へ ボタンを 左クリックする.

これで、カラムAと カラムB と カラム C が選択された状態 （空色で表示） になる.

21

22

グラフィック ウィザード の 完了ボタンを 左クリックすると、横軸に X、縦軸に Y のグラフ を描く.

エクセル ワークシート 内に、（ リサージュ曲線 Lissajous' Curve）

横軸が カラム A （ 時間 t : 0 ～ 0.02 秒 ）、カラムB の Bと記述されたセルを縦軸が カラム B （ X : 周波数 50 Hz の 余弦波 ） と、左クリックして、カラムB 全体を選択.

カラム C （ Y : 周波数 50 Hz の 正弦波 ） が 描画される.

（空色に表示される.）
次に、Cｔｒｌ キー を 押しながら、カラム C の Cと記述されたセルを左クリックして、カラムC 全体も選択.
グラフィック ウィザード ボタンを左クリックする.

2324

グラフ ウィザード の ダイアログが表れる.
散布図、曲線表示の項目を左クリックして選択して次へ ボタンを 左クリックする.
グラフィック ウィザード の 完了ボタン
を 左クリックすると、エクセル ワークシート 内に、横軸が カラム B（ X : 周波数 50 Hz の 余弦波 ） 、縦軸が カラム C（ Y : 周波数 50 Hz の 正弦波 ） のリサージュ曲線が描画される.

2526

横軸 X が 余弦波 X = cos ( 2πｆ ｔ ) = sin ( 2 π f t + 90°)
縦軸 Y が 正弦波 Y = sin ( 2πf t )の リサージュ曲線 は、円 になる.
{ cos ( 2 π f t ) }X2+ Y

22+ { sin ( 2 π f t ) } 2 = 1 なので、

= 1 = 1

2

点 （ X、Y ） は、原点 ( 0、0 ) から 常に距離 1 の 位置 に存在するので、半径 1 の 円 を描く.
横軸 と 縦軸 の 正弦波 の 振幅 と 周波数 が 等しい場合は、位相が 90°ずれると、リサージュ曲線は、円になる.
つまり、横軸と縦軸に波形データを入れて、オシロスコープで円が描出されたら、波形の位相が９０度ずれていると判断できる。

27

28

作成した ワークシート を保存する.

カラムB の関数 X を編集する.

EXCEL ウィンドウ の 左上にあるファイル メニュー を左クリックする.
メニューの 名前を付けて保存 を選択.

（ 正弦波の位相を ４５°進める. ）ファイルの種類は、 Microsoft Excel
ブック (*. xls ) を選択して、適当な名前を付けて保存して下さい.
編集後は適宜、上書き保存して下さい.

縦線カーソルを出し、編集する.

セルB2 を左クリックして選択.
関数入力枠を 左クリックしてA2 の右を、+45*3.14/180 と変更.
閉じカッコ ) の右側をクリックしてEnterキーを押して編集完了.
セルB2 から B22 まで 黒十字をドラッグ.
円を示していた リサージュ曲線が変化することを確認して下さい.

29

30

カラムB の 正弦波 X の 位相角 （φ）を 45°刻みで 変化させて位相角 （φ） が 180°を越えると、リサージュ曲線が 変化する様子を観察して下さい.

リサージュ曲線が もとの形状に戻っていく様子を観察してください.

リサージュ曲線の形状で ２つの交流信号の 位相ずれ が 測定できることを理解して下さい.
φ＝ 0°

φ＝ ４５°

φ＝９０°

31

φ＝ １３５°

φ＝ １８０°φ＝ ２２５°32

カラムB の関数 X を編集する.

カラムB の 正弦波 X の 周波数 f を 50 Hz 刻みで 変化させて（ 正弦波の位相差を ０°にしてリサージュ曲線が 変化する様子を観察して下さい.

周波数を 100 Hz にする. ）リサージュ曲線の形状で ２つの交流信号の 周波数比 が 測定できる.

セルB2 を左クリックして選択.
関数入力枠を 左クリックして

f = 100 Hz

f = 150 Hz

f = 200 Hz

縦線カーソルを出し、編集する.
SIN ( 2*3.14*100*A2 ) と変更.
セルB2 から B22 まで 黒十字をドラッグ.
リサージュ曲線が変化することを確認して下さい.

33

34

縦軸の交流 Y の 周波数 50 Hz に対する横軸の交流 X の 周波数 の 倍率は ２、３、４ 倍.
縦方向に 点 （X、Y） が 1 往復する間に、横方向に 往復する回数が ２、３、４ 倍に 増加していることを理解して下さい.
横軸の交流 X の周波数がf = 150 Hz の リサージュ曲線は位相差が 0°の場合では、X 方向に ３往復していることがわかりにくいので、X に、位相差を 90°加えると理解しやすい.

3536

カラムB の関数 X を編集する.
（正弦波の周波数を 50Hz、位相差を 90°にして、振幅を ２ にする. ）EXCEL の グラフ ウィザードは、自動的にデータ表示範囲をセルB2 の式を = ２*SIN ( 2*3.14*50*A2 + 90*3.14/180 ） と変更.
セルB2 から B22 まで 黒十字を ドラッグ.

リサージュ曲線が変化しないような印象を与えるが、X、Y軸の目盛りリサージュ曲線が変化することを確認して下さい.

X の 振幅 A = 0.53738

データ幅で揃えてしまうので、一見、交流 X の振幅を変えてもの値に注目し、楕円 に変化していることを理解して下さい.
A=2VBA （ Visual BASIC for Application）
を使って、リサージュ曲線を回転させる。
Lissajous.xls をホームページからダウンロードしてください。
VBA
Microsoft Office （Excel や Word などのソフトウェア）に組み込まれたBASIC 言語によるプログラム、マクロ作成ツール。
使えるようになると 非常に便利。

3940

マクロ 【macro】

Excel 2016 では、表示タブ を押すと、右端にマクロのVBAアイコンが出る。

ワープロソフトや表計算ソフトなどで、特定の操作手順をプログラムとして記述して自動化する機能。
プログラムの記述に使う言語をマクロ言語という。
よく使う処理をマクロとして保存しておけば、必要なときに簡単に実行できるようになる。
マクロ機能を持ったアプリケーションソフトは、マクロの開発環境や動作環境が用意されている。
できたプログラムは文書ファイルに他のデータと一緒に保存される。

4142

Excel 2016 の場合。 Lissajours.xls などのマクロ を動かしたい場合は、マクロに対するセキュリティを下げる作業が必要。
左端の ファイル タブ を押し、Excel情報画面を出す。

Excelのマクロは、Excelのセキュリティー設定を変更し、 Excelを一度終了し再起動すると作動する。
Excel情報画面の左端に並ぶメニューの一番下の、オプションを クリック。

43

44

Excelのオプション画面の左端に並ぶメニューの一番下の、セキュリティセンターを クリック。

Excelのオプション画面の左端メニューの一番下のセキュリティセンターをクリックして、セキュリティセンターの設定をクリック。

4546

セキュリティセンター画面のマクロの設定をクリックし、すべてのマクロを有効にする の項目にチェックを入れる。

Lissajous.xls をダブルクリックすると、Excel が起動する。
表示タブをクリック。

マクロの実行ボタンをクリックすると、最後に、右下の OK ボタンをクリックする。
そして、一度 Excel を終了させる。

リサージュ曲線が回転するマクロが動く。

再度Excelを起動するとマクロが作動する。

47

マクロメニューをクリック。

48

マクロ ウィンドウの 編集をクリックすると、マクロ コードが記述された

このプログラムは、Visual BASICという言語で記述されたもの。

ウィンドウが現れる。

Excel は、VBA（Visual BASIC forApplication） によるプログラム（マクロ）の作成ができることを知っておくと、
今後、Excel で複雑な計算作業を多量に行う仕事がある場合も、マクロを組んで効率的に計算や統計処理などを行うことができることを知っておきましょう。

4950

コード記入時には、大文字、小文字の区別は不要。

xa = Worksheets ("sheet1") . Cells (1, 6)
xf = Worksheets ("sheet1") . Cells (2, 6)
ya = Worksheets ("sheet1") . Cells (4, 6)
yf = Worksheets ("sheet1") . Cells (5, 6)

VBAが自動的に大文字が必要な箇所は変換してくれる。
重要な部位のコードは、自動的に青色に変化する。
Sub 関数名() ～ End Sub
Sub は、サブルーチン（プログラムの一部、関数）を記述する範囲を設定するコード。 関数名は自由に付けられる。
Sub 関数名() と End Sub の間に、実行したいプログラムを書く。
Worksheets ("sheet 1") . Cells ( 1, 6 )エクセル ワークシート の sheet 1 の セル(1,6) の値を指す関数。
Cells は（たて、よこ）の順に座標を記述するので、混乱しないように。

xa に、セル（1，６）つまり セル F1 に書いた値を入れる。
xf に、セル（2，６）つまり セル F2 に書いた値を入れる。
ya に、セル（4，６）つまり セル F4 に書いた値を入れる。
yf に、セル（5，６）つまり セル F5 に書いた値を入れる。

xa に 交流 X の 振幅が代入される。
xf に 交流 X の 周波数が代入される。
ya に 交流 Y の 振幅が代入される。
yf に 交流 Y の 周波数が代入される。

Cells ( i , j ) = 上から i 番目で、左から j 番目 のセルの値

51

セルE1 に X amplitude と入力、 F1 に 1 と入力。

52（Xの振幅）

セルE2 に X frequency と入力、 F2 に 50 と入力。 （Xの周波数）

セルF5 の Y frequency の値 （Yの周波数）

セルE4 に Y amplitude と入力、 F4 に 1 と入力。に、違う数値（２５、５０、１５０など）を入力して、（Yの振幅）

セルE5 に Y frequency と入力、 F5 に 100 と入力。（Yの周波数）

リサージュ曲線がどのように変化するか観察して下さい。

5354

For xp = 0 To 360

For xp = 0 To 360
DoEvents

Next xp
For ～ Next 文
変数 xp （ここでは、交流 X の 位相 phase） を０°から ３６０°まで １°刻みで増加させながらFor と Next の間に記述されたプログラムを繰り返し実行する文。

55

For i = 2 To 22
Next i
変数 i （ここではワークシートの たての番号）を、２ から 22 まで 1 づつ 増加させながらFor と Next の間のプログラムを繰り返し実行する。
t = Worksheets ("sheet1") . Cells (i, 1)

DoEvents
Next xp
For ～ Next 文 の間に、DoEventsというコマンド（命令文）が記述されている。
これは、Excel の図表を再描画させる関数で、記述しないと、グラフの逐次変化が描画されず、リサージュ曲線の回転が観察できない。

56x = xa * Sin ( 2 * 3.14 * xf * t + xp * 3.14 / 180 )y = ya * Sin (2 * 3.14 * yf * t )Worksheets ("sheet1") . Cells ( i , 2 ) = x
Worksheets ("sheet1") . Cells ( i , 3 ) = y
変数 x （交流X）の値を、xa, xf, xp から求め、変数 ｙ （交流Y）の値を、ya, yf から求める。
求めた x, y の値を、それぞれ変数 t （ここでは 時間（秒））の値が上から i 番目、左から 1 番目つまり カラムA のセルの値になる。

カラムB （左から２番目）と カラムC （左から３番目）

5758の、上から i 番目の セルに入力される。

For i = 2 To 22t = Worksheets("sheet1").Cells(i, 1)x = xa * Sin(2 * 3.14 * xf * t + xp * 3.14 / 180)y = ya * Sin(2 * 3.14 * yf * t)
Worksheets("sheet1").Cells(i, 2) = x
Worksheets("sheet1").Cells(i, 3) = y
Next i

今回作成したマクロは、必要最低限の機能しか記述していないので、VBAに興味のある人は、工夫してマクロコードの改良を試みてください。
例： 自動的にXとYの周波数比が変化していくマクロ、上記のコードが、xp が 1 づつ増加するごとに実行され、カラムBとカラムCの上から2番目から22番目の数字が変化するたびに、グラフに表示されるリサージュ曲線が変化する。

59

曲線の色が変化するマクロ、リサージュの立体的表示を行うマクロ、など。

60

VBAを解説した書籍やホームページは多数ある。
臨床検査技師は数字データを多く扱う職業なので、VBAが使えると仕事や研究が楽になる場合が多い。
VBAで、かなり高度なプログラムが作れます。

61