LibreOffice上のBasicプログラムを紹介するページ  作者へmitsuo.narita@gmail.com

 OpenOffice がLibreOfficeへ"変身"したので、今後はLibreOffice上で作業を進めます。

Calcで印刷する際の暫定的注意  プレビュー画面から印刷では「印刷範囲」設定がキャンセルされる。印刷ページ枚数に注意。
マクロ編集画面の「標準ツールバー」にある「保存」アイコン(フロッピーの絵)が灰色(灰色のときは変更なしなのでクリック不可)でも、その上のバーのメ ニューバーの右端「ファイル(F)」→「保存(S)」で編集した内容を保存すること。小まめに保存することが大切です。

20120219AM11:00 本HPのデータの大半を削除。現在リニューアル中。

New!! 円周率πを1000桁計算した!! 20130307UP→ pi_cal
20130216UP→ Multidigit_Cal
New予告!!「LibreOffice-Calc-Basicで、円周率πを断続的に多桁計算」
テスト成功!! 20130319
New!! 平方根を5000桁計算しよう 20130216UP→ Multidigit_Cal
New!! 多桁のかけざん 20130223UP→ Multidigit_kakeku
授業時間割自動作成プログラム 付一日内の「駒移動」File 05TTable_4.ods Download
名簿ファイルDataを縦書き印刷用に変換し、長3形の封筒に連続印刷するマクロhttp://pitekan.huu.cc/libreoffice_macro/printaddress/

2012.03.31予告 Calc上のIndexSheetのData参照をしながら、DialogBoxでMainSheetにデータ入力する。

テータベース的作業をCalc上で実現する。http://pitekan.huu.cc/libreoffice_macro/symptom/  現在在作業中。

Mail ソフトThunderbird補助用 ファイル名短縮マクロ
 
2 つのフォルダ(Dir)のFileリストを作成し、「同一File」を削除するマクロ。ABDirCompDelFile(新)リ ンク 20120125
LibreOffice公式サイトからのダウンロード http://ja.libreoffice.org/download/
    LibO_3.4.5_Win_x86_install_multi.exe 191 MB
    LibO_3.4.5_Win_x86_helppack_ja.exe 15 MB (ja - 日本語)
筆者は20120122 インストール
 
 
 
末尾に原発のメモを追加20110619  20120125修復リンク

「 小テスト用問題生成 (簡易データベース)」は未だ

孫の駿の最新動画はこちら⇒ shun
ここにSubTitle2

 

2010年3月20日更新 授業時間割自動作成プログラム 改訂

LibreOffice Calc+Basic で動きます。操作説明書を順次書いていきます。
プログラム作成者はWindowsXP Home(英語版)を使用。
0. 上記のサイトからLibreOffice3.4.5(2つとも)をダウンロードし、インストールする。
LibreOffice-CalcBasicでは、セルA1は(0,0),B3は(1,2)(列,行)
1. 上記の「05TTable_4.ods」Downloadをダウンロードする。
2. マクロコードが動くように、Calcのセキュリティ設定をして1.のファイルをOpen。
3. 第1限から第6限までを「駒入れ」の対象としている。
各組において、その中(1-6限)に空欄(=授業の中抜け)がないとする。
4. 動かさない駒はすでに入れてある。"要駒入れ"は行75(74)-123(122)
行31-行20(コピー)に表示。2セル1駒。列GW(204)-HZ(233)は各組各時限の
駒入れ可能度を表示。10は移動不可を表す。他の数字は現在意味なし。
5. セルJ21,J22に目的の曜日を入れてから、下記の操作をすると、各駒の
上側のセルに駒入れ可能行が表示される。中1-1月曜日の国語は
「33_35_」となる。セルDA34, DA36に駒入れが可能であることを
示している。(国語_16の16はQ列の先生名AFが中1-1の国語を
担当することを示している)
ツール ⇒ マクロ ⇒ マクロの管理 ⇒ OpenOffice.org Basic ⇒
05TTable_4.ods ⇒ Standard ⇒ Module3 ⇒ POPDownRow(実行)
6. 次にModule3 ⇒ POPDownComルーチンを動かすと実際の駒入れが実行される。
このままでは、第5曜日(金)はエラーとなって駒入れが完成しない。
他の曜日は全駒入れ可能。
7. 第5曜日(金)の駒入れ方法とその解説は以下。

8.「第5曜日でError! Jump to End! 列行&Recを記録せよ。112, 28」というメッセージの後は
Do you want to down Piece from Rec to Cell? と
Do you want to export RecMove to ColA?の二つのメッセージがでます。
前者は駒を実際の時間割表[34(33)-73(72)行]に入れること(ただし今回はエラー発生なので
一部のみの駒入れになるので「キャンセル」)、後者は駒入れ作業記録(途中までの分)がA列に
表示されます。これは「OK」を選択。
9.エラーメッセージの(112)列はDI = 高1-6で(28)行は数Ⅰ_47_26 65u66u67u68u69u70u
となっている。意味は当初数Ⅰは1-6限(Basicで65-70行)に駒入れ可能であったが、
作業中に全部uになって駒入れ不可能になったことを表している。
10.高1-6の他の科目の駒入れでuになるのは仕方がない。ⅠR科目は67(dは駒入れ決定)、
総現科目は69、仏教科目は70、世B科目は66だから行(65)(68)セルに
数Ⅰ科目と生Ⅰ科目を入れなければならない。
11.数Ⅰ科目の68uは(47)=AV列先生[先生名DG]の他のクラスの駒入れで発生している。[(108)組の数Ⅰ科目]
12.解決方法として、「最優先駒入れ=SuperPrior」を使う。セルJ20に「112_28_68」を入れて、
[(112)列(28)行の駒=数Ⅰ科目をセル(68)=DI69に最優先に入れる意味]
再度Module3 ⇒ POPDownComを実行。成功しましたね。

 

今後の計画
1. 実際にこのソフトを利用して「時間割」を作成するための準備すべき内容
駒づくり、選択科目 複数組授業 教室(グランドなど)条件 会議 出張などの登録
2. 一日内の「駒移動」プログラムの使用法
3. 組 先生 週時間割印刷について
プログラムは出来ていても バラバラに別の時期に作成したので、統一性のため、今しばらく お待ちください。
なお、他のシステムとの連携、例出席簿システム も可能ですが出力をどの形にするかの決め方が問題です。
ダウンロードファイルのマクロトップに更新日時を書き入れました。(3月20日より)

20100320説明の追加(今後の計画1.の分)
☆ 本プログラムはOOo-Calcのシート上に駒を配置し、種々の条件についても変更が可能なように作成しました。
☆ 見本のシートやプログラム(マクロ)は作者の制約のため、とりあえず先生数を90人程度で設定しています。
☆ Calcのシート上の制約まで先生数やクラス数を増やす(シートを分ける)ことは可能です。
☆ 複数年度で利用することを考えたり、他システムとの連動を考えると、先生・科目・クラスなどをコード化すること。
☆ 枠は1-8限まであるのに、プログラムで扱っているのは1-6にしました。理由は中抜きの時間があると、アルゴリズム が複雑になるし、非現実的と考えたからです。
☆ 各曜日にどの先生のどの科目を置くかは、いろいろな外的要件が重なります。プログラムにその条件を入力するルーチンを 組み込むことは現実的でないと考えました。Calcのシート上に書き込むほうがベター。
☆ 固定科目(例選択科目)を(33-72)行に作成し[先生駒 クラス駒 不動表示の10]、要駒入れを(74-133)に作成。
☆ 次にB-F列にクラスの要駒入れ数分のクラス表示数値を104_のように入力。(見本には後ろに二桁数値があるが不要)
☆ 以上の準備で自動作成プログラムは動くはずです。(若干の数値の説明が抜けているけど・・)

2010年3月20日UP 一日内の「駒移動」プログラム 使用方法

まず、2010年3月20日正午以降 の DownloadFile「05TTable_4.ods」を用意する。参照シートはPerTc2
ツール ⇒ マクロ ⇒ マクロの管理 ⇒ OpenOffice.org Basic ⇒ 05TTable_4.ods ⇒ Standard ⇒ Module2 ⇒ Main(実行) ⇒DialogBoxが開きます。
[ ]内は簡単な解説。
1. Dialogの左上のテキストフィールドに「106_33_37」と入力し(キーボードのエンターキーを押さずに)
右側のCommand...ボタンをクリックする。
[(106,33)の駒(数学_41)を37行に移動(そこには駒「理科_49」がある)][プログラム内での列行の数表示については上記]
2. メッセージ「106_33_37UpperRow=33, LowestRow=38」[確認] OKとすると、メッセージ「Move Com=106_33_37」[確認]
3. OKとするとメッセージ「01_106_37, iP=2, 1-3: 119_数Ⅱ_41, 106_理科_49, , Blank: 106_33, 119_37, , R 106_数学_41_33_37」
4. 解説[最初の「01_106_37」はプログラムでは変数sM1の内容で、Pendingの第1番目の駒(数学_41)を37行にDownする。
結果二つの駒(119_数Ⅱ_41)と(106_理科_49)がPendingになり、クラス時間割ではセル(106_33),(119_37)が空欄。
R以下は記録内容]
5. OKとするとメッセージが消えます。次に「Make AutoMode(C)」ボタンを押します。するとメッセージ「4th」OKとする。
[4thはSubMakeAutoルーチンで、先生の空欄に入れること。=T-Blank]
6. メッセージ「01_119_38, iP=2, 1-3:106_理科_49, 119_現文_21, , Blank: 106_33,119_37, , R 119_数Ⅱ_41_37_38」
OKとするとメッセージが消えます。
7. 続いて「Make AutoMode(C)」ボタンを押します。「2nd」OKとするとメッセージ「01_106_33, iP=1, 1-3:119_現文_21, , , Blank: 119_37, , , R 106_理科_49_37_33」OKとするとメッセージが消えます。
8. 続いて「Make AutoMode(C)」ボタンを押します。「2nd」中略「3rd」,「2nd」
9. OKとするとメッセージ「iPend=0です。終了します。」OKとするとメッセージが消えます。
10. 「Close Dialog Exit(A)」ボタンを押すと、メッセージ「Do you want to export RecMove to ColA?」OKとすると
記録がA32セル以下に表示される。(下記)
106_数学_41_33_37
119_数Ⅱ_41_37_38
106_理科_49_37_33
119_現文_21_38_37
117_現文_21_37_34
117_保健_65_34_37