Base によるアプリケーション開発とサポート 鎌滝雅久 /OpenOffice.org 日本ユーザー会 OSC2007 Hokkaido 2007 年 6 月 30 日土曜日 10:55-11:40 北海道大学学術交流会館第 4 会議室
本日の予定 デモ ( どこでもPDF/ 見積書作成 ) Basicでプログラム~Visual Studioはいらない? Microsoft Officeからの移行 OpenOffice.orgのサポート
ここでちょっとアンケート OpenOffice.org Basic を使ったことのある方 Yes/No
デモ / どこでも PDF Basicで作成された単独アプリケーション ダイアログベースのアプリケーション 動作条件 OpenOffice.org がインストールされていること 拡張機能として配布可能
デモ / どこでも PDF
どこでも PDF オリジナル PDF_Export/ はにゃ? さん http://hermione.s41.xrea.com/pukiwiki/pukiwiki.php?ooobbs2%2f4 どこでも PDF は上記に筆者が若干の Basic とダイアログを加えたもの
デモ / 見積書作成プログラム Calc/BaseとBasicによるアプリケーション 秋田パソコンステーション作成 http://www.ne.jp/asahi/pa/sta/ 拡張機能と Calc Base ファイルを配布
デモ / 見積書作成プログラム
旧バージョンはダイアログベース 見積書作成プログラム
Basic でプログラム OpenOffice.org Basic IDE Basic を用いてプログラムを作成するためのツール 呼び出し方 [ ツール ]-[ マクロ ]-[ マクロの管理 ]- [OpenOffice.org Basic] マクロを選び [ 編集 ] 使い方は Visual Basic とほぼ同じ
Basic でプログラム IDE の使い方 ライブラリ名 プロシージャ名 モジュール名 ダイアログ名
Basic でプログラムコントロールへのマクロ割り当て ボタンの名前 ボタンに割り当てるプロシージャ名 コントロールを配置できるツールバー
Basic でプログラム Calc/Writer でのコントロールの扱い フォームコントロール フォームデザインの 2 つのツールバーは表示メニューから呼び出す
Basic でプログラムダイアログを直接起動する OpenOffice.org では 以下の起動オプションで Basic の呼び出しが可能 soffice.exe macro:///standard.mdule1.main バッチ シェルスクリプトファイルで起動 どこでも PDF の場合は VB シェルでダイアログを呼び出し Set shell = WScript.CreateObject("WScript.Shell") shell.run "OpenOfficePortable.exe -minimized macro:///pdf_export.module2.mainmenu ", 3, true
Basic でプログラムあなたもにもできる拡張機能 Basic プログラムは拡張機能 ( エクステンション / 拡張子 oxt) にすることで配布可能なプログラムに マクロの管理の機能で作成は実に簡単 [ ツール ]-[ マクロ ]-[ マクロの管理 ]- [OpenOffice.org Basic] [ 管理 ] ボタンをクリック
Basic でプログラムマクロの管理で拡張機能を作成
Basic でプログラム拡張機能で 文字の均等割り付け はにゃ? さん sato さん 筆者で作成 http://hermione.s41.xrea.com/pukiwiki/pukiwiki.php?ooobbs2%2f32 よりダウンロード JapaneseJustify.oxt ファイルをダブルクリック もしくは [ ツール ]-[ 拡張機能マネージャ ] で Word にあって Writer にない機能の実現
Basic でプログラムマクロのメニューへの登録 [ ツール ]-[ カスタマイズ ]
Microsoft Office からの移行マクロ Basic で書かれたもの 新たにコーディングしましょう マクロの記録で作成されたもの OpenOffice.org でもマクロの記録を使いましょう SUSE など Linux 版 Calc では Excel 互換機能あり
Microsoft Office からの移行マクロの格納場所 Microsoft Office ファイルごと / マクロの警告あり マクロ入りファイルに鈍感になる ウイルス感染の恐れ OpenOffice.org マイマクロ / マクロの警告なし 配布は拡張機能で 将来的には何らかの認証
Microsoft Office からの移行 Access のスタートメニュー Base フォームでは起動時のメニューにはできない Basic のダイアログでメニューを作成 soffice.exe の起動時オプションでメニューを表示
Microsoft Office からの移行スタートメニューからフォーム呼び出し 下記の Basic で実現 / レポートも同様 Sub FormStart '**** プロパティを入れるところ Dim pprop(1) As New com.sun.star.beans.propertyvalue '**** データベースを開く surl = ConvertToURL("C:\PathName\FileName.odb") odoc = stardesktop.loadcomponentfromurl(surl,"_default",0,array()) '**** フォームとコネクションの接続 oforms = odoc.getformdocuments() oaconnection = odoc.datasource.getconnection("","") '**** プロパティを設定 Name が属性 Value が値 pprop(0).name = "ActiveConnection" ' コネクション pprop(0).value = oaconnection pprop(1).name = "OpenMode" pprop(1).value = "open" '**** フォームを開く oformulario = oforms.loadcomponentfromurl("formname","_default",0,pprop()) End Sub
Microsoft Office からの移行 Access のレポート Access フィールドに計算式を設定でき 小計 合計欄の設置が簡単 Base ユニオンクエリーで小計 合計欄を設定しレポート化 Basic で直接 Calc へ出力する方法も
Microsoft Office からの移行更新系クエリー SQL を埋め込んだ Basic テーブル作成クエリー CREATE TABLE 更新クエリー UPDATE クエリーからテーブル作成 SELECT INTO
Microsoft Office からの移行 Excel シートのテーブル化 Access ワークシート変換コマンドで簡単に実現 Base Excel Calc テーブルへと変換するBasicを作成 2.1 以降ではシートのコピー & 貼り付けでもOK
OpenOffice.org のサポート OpenOffice.org の導入支援サポート アシストが 6 月より開始 http://www.ashisuto.co.jp/solution/oss/openoffice/ グッデイ http://ooosupport.good-day.net/ja/enterprise
コミュニティによる OpenOffice.org のサポート OOo Q&A http://oooug.jp/faq/ 質問登録は1500 件以上 / 完了率 6 割 企業 自治体も利用 メーリングリスト http://ja.openoffice.org/ml_info.html
参考資料 OpenOffice.org Basic StarSuite 8 Basic プログラミングガイド http://docs.sun.com/app/docs/doc/819-1332?l=ja&q=starsuite+8 オープンガイドブック OpenOffice.org 2.0 http://ooosupport.goodday.net/ja/documents/manual/ OOo Basic Wiki http://hermione.s41.xrea.com/pukiwiki/