人気ブログランキング | 話題のタグを見る

はこにわオーディオ工学研究分科会 (旧名: バスレフ研究所)

OpenOffice BASIC (1)

MCAP-CRのシミュレータ(リンク)をOpenOffice BASICで記述してみて、改めてこのツールの便利さを感じました。
そこで、不定期に、BASICの記述方法について書いていこうと思います。

最初は、BASICの始め方をLibreOffice Calcについて書きます。
まず、Calcを起動したら空白のプロジェクトのファイルを保存します。
ここでは、"progetto-primo.ods"という名称で保存しました。

プルダウンメニューから、

ツール − マクロ − マクロの編集

を選択します。
すると、マイマクロ & ダイアログ.Standardという画面が表示されます。
これがマクロプログラミングの開始方法です。
ここでいきなり書き始めるのは無理なので、概要を書きます。
マクロプログラムは、このBASICか、Pythonで記述することができます。
Pythonは便利でいいのですが、シートに読み書きする方法が分からないので割愛します。
マクロプログラムの保存場所は、マイマクロ & ダイアログの標準の場所に記録していろいろなファイルで使い回しができ、それが標準の使い方のようですが、私は、この使い方が好きではないので、それぞれのファイルに埋め込む方法をとります。
マクロプログラムを埋め込めば、そのファイル単体でひとつのソフトになります。

ダイアログ−ダイアログの管理

Basicマクロオーガナイザー画面が出ます。
ここで、自分がつくったファイル名の左にある▶をクリックすると、"Standard"が現れるので、それをクリックしてハイライトし、右下にある『新規作成(N)...』ボタンをクリックします。
すると、『新しいダイアログ』画面が現れるので、『モジュール』タブをクリックし、その中にデフォルト名で、"Module1"という名称が現れるので、とりあえずこの名前のままOKをクリックします。
すると、"Standard"の左側に▶が現れるのでこれをクリックすると、新規作成した"Module1"が現れました。

ここで、Module1を選択して、『編集(E)』ボタンをクリックすると、プログラムの記述画面が現れました。
最初に下記のような空のプログラムが出てきます。

REM ***** BASIC *****

Sub Main

End Sub
REMは、コメントの意味ですが、プログラムの途中のコメントはアポストロフィー『'』を使うほうが簡単です。
ここで、指定のシートの指定のセルに文字を書き込むプログラムを書き込んでみます。
Sub Main
Dim libro As Object
Dim foglio As Object

libro =ThisComponent
foglio =libro.getSheets().getByName("Sheet1")
foglio.getCellByPosition(1,1).String="Hello!"

End Sub
Sub Mainの下の最初の2行は、オブジェクトの指定です。
カンマで区切って並べて書くこともできます。
ここで、libroというファイルとfoglioというシートをオブジェクトとして指定しました。

libro=ThisComponent
は、このファイルをプログラムの中では"libro"と名付けます、という意味です。

foglio=libro.getSheets().getByName("Sheet1")
というのは、このファイルの『Sheet1』という名前のシートを"foglio"と名付けたという意味です。

foglio.getCellByPosition(1,1).String="Hello!"
というのは、Sheet1というシートの2列目2行目(B2セル)に、Hello!という文字を書き込めという意味です。
OpenOffice BASICは、(x,y)座標を使い、数字はゼロから始まるので、(1,1)はB2セルになることに注意しましょう(自分もよく間違える)。

BASICマクロプログラムを書くときの基本は、これだけと思います。
数式の部分を記述するプログラムコードは、昔からあるQ-BASICなどとほぼ同じなので、学生時代にプログラムを書いた方には簡単だと思います。

上記を見て、別な書き方もあることに気付かれた方もいらっしゃるでしょう。
例えば、
Sub Main
Dim foglio As Object

foglio =ThisComponent.getSheets().getByName("Sheet1")
foglio.getCellByPosition(1,1).String="Hello!"

End Sub
と書いても同じです。

プログラムは、メインルーチンとサブルーチンとで書きます。
"Sub Main"というのがメインルーチンで、このルーチンの終わりが、"End Sub"です。
サブルーチンは、この下に書き足していくだけです。

例えば、"End Sub"の下に
Sub Esame

End Sub
と書くとEsameという空のサブルーチンができます。
プログラムは、"Sub"と"End Sub"との間に記述していきます。

先ほどのプログラムはこんなふうにも書けます。
Sub Main

Call Esame

End Sub

Sub Esame
Dim foglio As Object

foglio =ThisComponent.getSheets().getByName("Sheet1")
foglio.getCellByPosition(1,1).String="Hello!"

End Sub
メインルーチンにあった内容をサブルーチンに記述して、それをメインルーチンから呼び出しただけです。

MCAP-CRのシミュレータに使用したBASICのプログラムの基本はこれだけで、あとは、Q-BASICと同じことをして数式処理しているだけです。

何だ、簡単じゃないか。と思って、プログラムを見ていただければ、概ね内容が分かるのではないかと思います。

こういう入門記事は、整然と書ければいいのですが、それは簡単ではありません。
しかし、入口が分かれば、後は手がかりが出来てくるものです。
私も、こういうプログラミングをちゃんと教わったことがないので、学校での研究や仕事の合間に少しずつ覚えてきました。
プログラミングは、全ての手順を示さなければ何も答えが出ないというプロジェクトで、中途半端がありません。
もちろん完成度の中途半端はありますが、答えが出ないのは中途半端ではなく、無いのと一緒です。
こういうことを一度でも経験すれば、オスプレイの値段を屑鉄と比較して『高い!』というような愚かな主張はできなくなるでしょう。

ということで、不定期ですが、気が向いたらOpenOffice BASICのことを書いていこうと思います。

by mcap-cr | 2021-01-11 05:19 | プログラミング | Trackback | Comments(0)
トラックバックURL : https://mcap.exblog.jp/tb/240786628
トラックバックする(会員専用) [ヘルプ]
※このブログはトラックバック承認制を適用しています。 ブログの持ち主が承認するまでトラックバックは表示されません。

生演奏を主とすれば、オーディオは箱庭で充分でしょう。
by MCAP-CR
プロフィールを見る
画像一覧
更新通知を受け取る

最新の記事

何度も聴いて新しい発見
at 2022-06-25 16:34
自分の装置基準
at 2022-06-23 12:22
背中を見せる
at 2022-06-21 06:33
音源メディア
at 2022-06-21 06:30
ドミンゴは流石
at 2022-06-20 06:23
"サウンド変換"ソフトのバグか?
at 2022-06-19 10:43
パソコンのメンテナンス
at 2022-06-16 12:36
久しぶりにCDリッピング
at 2022-06-15 06:19
脳内補正
at 2022-06-14 06:23
まとめて聴くものではない
at 2022-06-13 06:21
パソコンの環境整備
at 2022-06-12 08:47
淡い期待が尽きる
at 2022-06-10 06:27
iPhone 壊れる
at 2022-06-08 06:40
オーディオ趣味の二極化
at 2022-06-08 06:39
小型コンピュータの修理(2)
at 2022-06-07 06:20
ケンプの録音を聴く
at 2022-06-06 06:18
小型パソコンの修理??
at 2022-06-05 16:01
回転ムラが気になる...
at 2022-05-31 06:23
またチケット買う
at 2022-05-30 06:07
貧乏暇なし...
at 2022-05-29 14:50

以前の記事

2022年 06月
2022年 05月
2022年 04月
2022年 03月
2022年 02月
2022年 01月
2021年 12月
2021年 11月
2021年 10月
2021年 09月
2021年 08月
2021年 07月
2021年 06月
2021年 05月
2021年 04月
2021年 03月
2021年 02月
2021年 01月
2020年 12月
2020年 11月
2020年 10月
2020年 09月
2020年 08月
2020年 07月
2020年 06月
2020年 05月
2020年 04月
2020年 03月
2020年 02月
2020年 01月
2019年 12月
2019年 11月
2019年 10月
2019年 09月
2019年 08月
2019年 07月
2019年 06月
2019年 05月
2019年 04月
2019年 03月
2019年 02月
2019年 01月
2018年 12月
2018年 11月
2018年 10月
2018年 09月
2018年 08月
2018年 07月
2018年 06月
2018年 05月
2018年 04月
2018年 03月
2018年 02月
2018年 01月
2017年 12月
2017年 11月
2017年 10月
2017年 09月
2017年 08月
2017年 07月
2017年 06月
2017年 05月
2017年 04月
2017年 03月
2017年 02月
2017年 01月
2016年 12月
2016年 11月
2016年 10月
2016年 09月
2016年 08月
2016年 07月
2016年 05月
2016年 04月
2016年 03月
2016年 02月
2016年 01月
2015年 12月
2015年 11月
2015年 10月
2015年 09月
2015年 08月
2015年 07月
2015年 06月
2015年 05月
2015年 04月
2015年 03月
2015年 02月
2015年 01月
2014年 12月
2014年 11月
2014年 10月
2014年 09月
2014年 08月
2014年 07月
2014年 06月
2014年 05月
2014年 04月
2014年 03月
2014年 02月
2014年 01月
2013年 12月
2013年 11月
2013年 10月
2013年 09月
2013年 08月
2013年 07月
2013年 06月
2013年 05月
2013年 04月
2013年 03月
2013年 02月
2013年 01月
2012年 12月
2012年 11月
2012年 10月
2012年 09月
2012年 08月
2012年 07月
2012年 06月
2012年 05月
2012年 04月
2012年 03月
2012年 02月
2012年 01月
2011年 12月

最新のコメント

> muukuさん ピ..
by mcap-cr at 16:09
ピアノロールはオンオフで..
by muuku at 13:54
> muukuさん 以..
by mcap-cr at 10:53
車田さんの電子ピアノの話..
by muuku at 09:56
> rokuさん ご紹..
by mcap-cr at 12:23
>ひょっとしたら、自分が..
by roku at 07:38
> tincanさん ..
by mcap-cr at 12:43
キビシィー、ポスターの写..
by tincan at 11:23
> muukuさん い..
by mcap-cr at 12:13
> grigriさん ..
by mcap-cr at 12:07

最新のトラックバック

島谷技研
from 島谷技研
musica
from musica
明日9/24(月祝)はス..
from 集まれ塩ビ管スピーカー主宰 ..
美しい美宮殿装飾と世界屈..
from dezire_photo &..
年末自作スピーカー系イベント
from 集まれ塩ビ管スピーカー主宰 ..
究極の愛を描いたワーグナ..
from dezire_photo &..
光と色彩を愛し生きる喜び..
from dezire_photo &..
新国立劇場バレエ団のソリ..
from dezire_photo &..
ダンテの『神曲』 ”地獄..
from dezire_photo &..
日本初公開のルノワール絵..
from dezire_photo &..

検索

ファン

ブログジャンル

画像一覧

イラスト:まるめな