
表をつくってみよう
表をつくってみよう
これまでで、文字と線や点を表示させることができましたので、復習として表でもつくってみようと思います。
以下のプログラムは、例として256X64dotの表示モジュールを使用した場合について書きます。 他のdotをご使用の方も、数字を少しかえてチャレンジしてください。
2列2行の表を書く
プログラム6
Sub Start()
Cursor 0 , 0
Cls
SetFont 8x16
KanjiOn
Line 0 , 0 , 255 , 0 '・・・①
Line 0 , 0 , 0 , 63 '・・・①
Line 255 , 0 , 255 , 63 '・・・①
Line 0 , 63 , 255 , 63 '・・・①
Line 0 , 31 , 255 , 31 '・・・①
Line 0 , 32 , 255 , 32 '・・・①
Line 127 , 0 , 127 , 63 '・・・①
Line 128 , 0 , 128 , 63 '・・・①
Cursor 4 , 1 '・・・②
Print "おはよう" '・・・③
Cursor 4 , 5 '・・・②
Print "こんにちは" '・・・③
Cursor 131 , 1 '・・・②
Print "こんばんは" '・・・③
Cursor 131 , 5 '・・・②
Print "おやすみ" '・・・③
End Sub
プログラム6を実行してください。 下のような表示ができましたか?
前回に線を描いたときは1本の線でしたが、今回は8本引きます。 しかし、6-①はLineが8回書いてあるだけなので、簡単ですよね。
6-②はカーソルの位置を指定する命令でした。 カーソルは横は1dotづつ、縦は8dotづつ動かせますから、例えば、Cursor 4 , 1は横4dot、縦8dotずれた位置、Cursor 131 , 5は横131dot、縦40dotずれた位置にカーソルが移動します。 その後に6-③(Print)を書くことにより、カーソルが移動した位置に言葉が表示されます。
少し凝って書いてみよう
プログラム6のように書いてもまったく問題はないのですが、わざと少々凝ったことをしてみましょう。
プログラム7
Sub Start()
Cursor 0 , 0
Cls
SetFont 8x16
KanjiOn
For x = 1 To 2 '・・・①
Line 128 * x - 128 , 0 , 128 * x - 128 , 63 '・・・①
Line 128 * x - 1 , 0 , 128 * x - 1 , 63 '・・・①
Line 0 , 32 * x - 32 , 255 , 32 * x - 32 '・・・①
Line 0 , 32 * x - 1 , 255 , 32 * x - 1 '・・・①
Next '・・・①
Cursor 4 , 1
Print "おはよう"
Cursor 4 , 5
Print "こんにちは"
Cursor 131 , 1
P rint "こんばんは"
Cursor 131 , 5
Print "おやすみ"
End Sub
6-①を7-①のように変更してみましょう。 For ...Nextも復習です。
7-①ならば、x = 1とx = 2がLineの式に代入されます。 そうすると6-①と同じ式になりますね。 プログラムマクロとしては異なる処理をしているのですが、結局表示は同じです。
プログラム6は簡単にかけるので、別にFor ...Nextを使う必要はないのですが、もっと複雑なものになってくると、使わずには先に進めないような状況になってくるらしいです。 そのため、最初のうちから勉強しておいた方がよさそうです。
前ページでも書きましたが、描画の開始・終了点が範囲を超えると正しく表示されません。 256X64dot以外の表示モジュールをお使いの方は、そのままコピー&ペーストをすると変な表示がされますのでご注意ください。 各モジュールの可能な範囲は下記の表のとおりです。
256X16dot ⇒ 横:0~255 縦:0~15
256X64dot ⇒ 横:0~255 縦:0~63
384X32dot ⇒ 横:0~383 縦:0~31
512X32dot ⇒ 横:0~511 縦:0~31
「*(アスタリスク)」の意味 ~計算式を使う~
プログラム7では「*」という記号がたくさん出てきましたよね。 「*」と書くことによって、その記号の前後の数値の積を求めます。 このような、算数の計算をさせるような記号を、算術演算子といいます。
実はプログラム5で出てきた「/」という記号も算術演算子で、これは商を求める演算子です。 「Macro操師」では、算術演算子は他に「+」、「-」が使えます。 それらはそれぞれ和、差を求める演算子です。