Copyright The contents of this Documentation are subject to the Public Documentation License Version 1.0 (the "License"); you may only use this Docume

Similar documents
KINGSOFT Office 2016 動 作 環 境 対 応 日 本 語 版 版 共 通 利 用 上 記 動 作 以 上 以 上 空 容 量 以 上 他 接 続 環 境 推 奨 必 要 2

Microsoft Word - 第3章.doc

Microsoft Word - FrontMatter.doc

計算式の取り扱い

治 験 実 施 管 理 システム NMGCP 向 け Excel 形 式 プロトコール 作 成 手 順 書 V4.0.3 対 応 版 第 1 版 株 式 会 社 富 士 通 アドバンストエンジニアリング All Rights Reserved,Copyright 株 式 会 社 富 士 通 アドバン

1

TIPS - 棚 割 りを 開 始 するまで Liteを 起 動 し 企 業 情 報 の 追 加 を 行 い 棚 割 を 行 う 企 業 の 追 加 をして 下 さい 企 業 情 報 の 追 加 時 に エラーメッセージが 表 示 された 場 合 別 途 TIPS トラブルが 発 生 した 場 合

目 次 1. 積 算 内 訳 書 に 関 する 留 意 事 項 1 ページ 2. 積 算 内 訳 書 のダウンロード 3 ページ 3. 積 算 内 訳 書 の 作 成 (Excel 2003の 場 合 ) 6 ページ 4. 積 算 内 訳 書 の 作 成 (Excel 2007の 場 合 ) 13

(Microsoft Word - Excel\211\236\227p2\217\315.docx)

Microsoft Word - 03accessデータベース演習レジメ.doc

1-1 一覧画面からの印刷

<4D F736F F D AC90D1955D92E CC82CC895E DD8C D2816A2E646F63>

GRIDY SFA カスタム 項 目 操 作 ガイド 用 本 書 はに 必 要 な 操 作 を 解 説 しております は GRIDY SFA ののことです GRIDY SFA へ 申 し 込 み 最 初 に 登 録 を 行 った 方 がそのままとなります カスタム 項 目 はの 方 のみ 操 作 可

DN6(R04).vin

4 応 募 者 向 けメニュー 画 面 が 表 示 されます 応 募 者 向 けメニュー 画 面 で [ 交 付 内 定 時 の 手 続 を 行 う] [ 交 付 決 定 後 の 手 続 を 行 う]をクリックします 10

01_07_01 データのインポート_エクスポート_1

2 研 究 資 源 共 通 化 統 合 検 索 システムソフトウェア 利 用 者 用 マニュアル(ゲートウェイシステム) 目 次 1. はじめに 主 な 利 用 の 流 れ 検 索 検 索 画 面 検 索 画 面 の 設 定...

1 書 誌 作 成 機 能 (NACSIS-CAT)の 軽 量 化 合 理 化 電 子 情 報 資 源 への 適 切 な 対 応 のための 資 源 ( 人 的 資 源,システム 資 源, 経 費 を 含 む) の 確 保 のために, 書 誌 作 成 と 書 誌 管 理 作 業 の 軽 量 化 を 図

研究者情報データベース

目 次 1. 論 理 関 数 IF IF の 概 要 論 理 式 の 種 類 等 号 不 等 号 具 体 的 な 使 い 方 ネスト 複 数 の 条 件 を 記 述...

1.2. ご 利 用 環 境 推 奨 ブラウザ Internet Explorer Google Chrome(バージョン 32 時 点 で 動 作 確 認 済 み) Mozilla Firefox(バージョン 26 時 点 で 動 作 確 認 済 み) Safari 7

SXF 仕 様 実 装 規 約 版 ( 幾 何 検 定 編 ) 新 旧 対 照 表 2013/3/26 文 言 変 更 p.12(1. 基 本 事 項 ) (5)SXF 入 出 力 バージョン Ver.2 形 式 と Ver.3.0 形 式 および Ver.3.1 形 式 の 入 出 力 機 能 を

R4財務対応障害一覧

返還同意書作成支援 操作説明書

<4D F736F F D203193FA8AD45F95CA8E86325F89898F4B315F94F093EF8AA98D AD97DF914F82CC8FEE95F182CC8EFB8F C28E8B89BB2E646F63>

PowerPoint プレゼンテーション

検 討 検 討 の 進 め 方 検 討 状 況 簡 易 収 支 の 世 帯 からサンプリング 世 帯 名 作 成 事 務 の 廃 止 4 5 必 要 な 世 帯 数 の 確 保 が 可 能 か 簡 易 収 支 を 実 施 している 民 間 事 業 者 との 連 絡 等 に 伴 う 事 務 の 複 雑

目 次 1.はじめに 書 式 の 説 明 表 紙 スケジュール 組 入 れ 基 準 併 用 禁 止 薬 併 用 注 意 薬 同 種 同 効 薬 医 師 モニタリング..

医 療 費 自 己 負 担 額 支 払 明 細 書 入 力 シート - 目 次 - < 第 1 章 > 共 通 事 項 説 明 医 療 費 自 己 負 担 額 支 払 明 細 書 入 力 シート 目 次 1.1 本 システムの 注 意 点 入 力 項 目 について 基 本 情

年齢別人数計算ツールマニュアル


(Microsoft PowerPoint - Ver12\203o\201[\203W\203\207\203\223\203A\203b\203v\216\221\227\277.ppt)

目 次 1. Web メールのご 利 用 について Web メール 画 面 のフロー 図 Web メールへのアクセス ログイン 画 面 ログイン 後 (メール 一 覧 画 面 ) 画 面 共 通 項 目

( 別 紙 ) 以 下 法 とあるのは 改 正 法 第 5 条 の 規 定 による 改 正 後 の 健 康 保 険 法 を 指 す ( 施 行 期 日 は 平 成 28 年 4 月 1 日 ) 1. 標 準 報 酬 月 額 の 等 級 区 分 の 追 加 について 問 1 法 改 正 により 追 加

POWER EGG V2.01 ユーザーズマニュアル ファイル管理編

1

養 老 保 険 の 減 額 払 済 保 険 への 変 更 1. 設 例 会 社 が 役 員 を 被 保 険 者 とし 死 亡 保 険 金 及 び 満 期 保 険 金 のいずれも 会 社 を 受 取 人 とする 養 老 保 険 に 加 入 してい る 場 合 を 解 説 します 資 金 繰 りの 都


Microsoft Word - 【溶け込み】【修正】第2章~第4章

す 選 択 範 囲 を 移 動 する エクセルでは 選 択 したセル 範 囲 の 境 界 をドラッグして 移 動 するのに 対 して Calc では 選 択 範 囲 そのものをドラッグして 移 動 できます そのため マウスポインタの 位 置 合 わせが 少 し 簡 単 になっ ています ただし 1

<4D F736F F D208CA990CF96BE8DD78F918EAE82CC95CF8D >

目 次 遺 失 物 管 理 プログラム 利 用 者 マニュアル 1. 動 作 条 件 遺 失 物 管 理 プログラムのインストール 運 用 の 流 れ 起 動 方 法 操 作 方 法 について 基 本 的 な 操

ていることから それに 先 行 する 形 で 下 請 業 者 についても 対 策 を 講 じることとしまし た 本 県 としましては それまでの 間 に 未 加 入 の 建 設 業 者 に 加 入 していただきますよう 28 年 4 月 から 実 施 することとしました 問 6 公 共 工 事 の

目 次 Ⅰ 集 計 支 援 ツールの 準 備 に 関 するQ&A 1 H27 集 計 支 援 ツール.zip ファイルを 展 開 して 作 成 した,1 ~4のフォルダはどのように 利 用 すればよいか? Ⅱ 必 要 なファイルの 準 備 に 関 するQ&A 1 解 答 回 答 状 況 ファイルや,

1. アクセスする 2. 簡 易 検 索 画 面 (fig. 1) アクセスすると 最 初 に 出 る 画 面 です 検 索 語 入 力 ボックスにキーワードを 入 力 して 論 文 検 索 ボタンをクリックし ます 3. ボックス 下 部 のチェック 項

情報処理技能検定試験 表計算2級 手順書

MetaMoJi ClassRoom/ゼミナール 授業実施ガイド

< 目 次 > 8. 雇 用 保 険 高 年 齢 雇 用 継 続 給 付 27 ( 育 児 休 業 給 付 介 護 休 業 給 付 ) 8.1 高 年 齢 雇 用 継 続 給 付 画 面 のマイナンバー 設 定 高 年 齢 雇 用 継 続 給 付 の 電 子 申 請 高

目 次 JAVIS Appli の 基 本 機 能... 3 JAVIS Appli について... 3 音 声 確 認 機 能 JAVIS Appli( 有 償 版 )の 機 能... 4 音 声 で 読 みの 確 認 をする... 4 辞 書 機 能... 5 単 語 を 登 録 する... 5

Microsoft Word - 2.doc

入 札 参 加 資 格 申 請 システム 操 作 マニュアル 入 札 参 加 資 格 の 資 格 有 効 ( 変 更 ) 日 を 迎 えると 追 加 届 の 登 録 ができるようになります ( 入 札 参 加 資 格 申 請 の 定 時 受 付 では いずれかの 申 請 先 団 体 から 入 札 参

は 固 定 流 動 及 び 繰 延 に 区 分 することとし 減 価 償 却 を 行 うべき 固 定 の 取 得 又 は 改 良 に 充 てるための 補 助 金 等 の 交 付 を 受 けた 場 合 にお いては その 交 付 を 受 けた 金 額 に 相 当 する 額 を 長 期 前 受 金 とし

<4D F736F F D20819C B78AFA95DB91538C7689E68DEC90AC289

2016 年 度 情 報 リテラシー 三 科 目 合 計 の 算 出 関 数 を 用 いて 各 教 科 の 平 均 点 と 最 高 点 を 求 めることにする この2つの 計 算 は [ホーム]タブのコマ ンドにも 用 意 されているが 今 回 は 関 数 として 作 成 する まず 表 に 三 科

の と す る (1) 防 犯 カ メ ラ を 購 入 し 設 置 ( 新 設 又 は 増 設 に 限 る ) す る こ と (2) 設 置 す る 防 犯 カ メ ラ は 新 設 又 は 既 設 の 録 画 機 と 接 続 す る こ と た だ し 録 画 機 能 付 防 犯 カ メ ラ は

<4D F736F F D B68F918DEC90AC89898F4B899E977095D2816A2E646F63>

Acrobat早分かりガイド

第一部【証券情報】

事 業 税 の 外 形 標 準 課 税 事 業 税 は 都 道 府 県 が 所 得 ( 利 益 )に 対 して 課 税 します 1. 個 人 事 業 税 業 種 区 分 税 率 ( 標 準 税 率 ) 第 1 種 事 業 ( 物 品 販 売 業 製 造 業 金 銭 貸 付 業 飲 食 店 業 不 動

税金読本(8-5)特定口座と確定申告

2007 Microsoft Corporation. All rights reserved. 本 書 に 記 載 した 情 報 は 本 書 各 項 目 に 関 する 発 行 日 現 在 の Microsoft の 見 解 を 表 明 するものです Microsoft は 絶 えず 変 化 する

Word 003 スキルブック 06 - オブジェクトの 利 用 0.Word で 作 る 表 : 行 幅 を 最 小 値 より 小 さく 設 定 する 3 表 の 左 右 のサイズを 適 宜 調 整 します Word で 表 を 作 成 するとき, 列 幅, 行 幅 ともに 基 本 的 に 自 由

1.3. アドインボタンの 場 所 2007 / 2010 / 2013 / 2016 の 各 バージョンのアプリケーションにおいては アドインボタン はリボン 名 アンテナハウス に 登 録 されます アドインボタンの 表 示 状 態 (Word 2010 の 例 ) アドインボタンの 表 示 状

Taro-H19退職金(修正版).jtd

Microsoft Word - word_05.docx

Microsoft Word - TCⅡマニュアル_第6章_ doc

高松市緊急輸送道路沿道建築物耐震改修等事業補助金交付要綱(案)

H28記入説明書(納付金・調整金)8

<4D F736F F D C97F195CF8AB DEC90E096BE8F912091E6312E313294C52E646F63>

2 課 題 管 理 ( 科 学 研 究 費 補 助 金 ) 画 面 が 表 示 されます 補 助 事 業 期 間 終 了 後 欄 の[ 入 力 ] をクリックします [ 入 力 ]ボタンが 表 示 されていない 場 合 には 所 属 する 研 究 機 関 の 事 務 局 等 へお 問 い 合 わせく

<4D F736F F D2090C389AA8CA72D92F18F6F2D D F ED28CFC82AF91808DEC837D836A B E838B A815B816A2E646F6378>

預 金 を 確 保 しつつ 資 金 調 達 手 段 も 確 保 する 収 益 性 を 示 す 指 標 として 営 業 利 益 率 を 採 用 し 営 業 利 益 率 の 目 安 となる 数 値 を 公 表 する 株 主 の 皆 様 への 還 元 については 持 続 的 な 成 長 による 配 当 可

_責)Wordトレ2-1章_斉

c. 投 資 口 の 譲 渡 に 係 る 税 務 個 人 投 資 主 が 投 資 口 を 譲 渡 した 際 の 譲 渡 益 は 株 式 等 に 係 る 譲 渡 所 得 等 として 原 則 20%( 所 得 税 15% 住 民 税 5%)の 税 率 による 申 告 分 離 課 税 の 対 象 となりま

2016 年 度 情 報 リテラシー 次 に Excel のメニューから[ 挿 入 ]タブをクリックし 表 示 されたメニュー 内 の[グラフ]にある[ 折 れ 線 グラフ]のボタンをクリックする するとサブメニューが 表 示 されるので 左 上 の[ 折 れ 線 ]を 選 択 する [ 挿 入 ]

Ver 改 訂 日 付 改 訂 内 容 1

目 次 1. 大 学 情 報 データベースシステムの 使 用 方 法 について EXCEL 一 括 登 録 EXCEL ダウンロード 検 索 条 件 の 指 定 プレビュー EXCEL ダウンロード(データ 抽 出 あ

目 次 目 次 1 ログイン ログアウト ログインする...1 ログイン 画 面 が 表 示 されないときは?... 1 初 めてログインするときのパスワードは?... 2 初 期 パスワードを 忘 れてしまったときは?... 2 変 更 したパスワードを 忘 れてしまったときは?.

経 理 上 くん db(version 8.001)の 変 更 点 概 要 Ⅰ. 消 費 税 /リバースチャージ 方 式 の 申 告 に 対 応 1 特 定 課 税 仕 入 特 定 課 税 仕 入 返 還 区 分 を 追 加 しました Ⅱ.その 他 の 改 良 修 正 詳 細 は 後 述 を 参 照

為 が 行 われるおそれがある 場 合 に 都 道 府 県 公 安 委 員 会 がその 指 定 暴 力 団 等 を 特 定 抗 争 指 定 暴 力 団 等 として 指 定 し その 所 属 する 指 定 暴 力 団 員 が 警 戒 区 域 内 において 暴 力 団 の 事 務 所 を 新 たに 設

<4D F736F F D20819C486F70658F6F93588ED297708AC7979D89E696CA837D836A B E A2E646F63>


V-CUBE One

(1)1オールゼロ 記 録 ケース 厚 生 年 金 期 間 A B 及 びCに 係 る 旧 厚 生 年 金 保 険 法 の 老 齢 年 金 ( 以 下 旧 厚 老 という )の 受 給 者 に 時 効 特 例 法 施 行 後 厚 生 年 金 期 間 Dが 判 明 した Bは 事 業 所 記 号 が

地域ポータルサイト「こむねっと ひろしま」

目 次 機 能 概 要 配 信 管 理 1. メールの 配 信 履 歴 と 予 約 を 確 認 する

東近江行政組合職員の育児休業等に関する条例

1. 前 払 式 支 払 手 段 サーバ 型 の 前 払 式 支 払 手 段 に 関 する 利 用 者 保 護 等 発 行 者 があらかじめ 利 用 者 から 資 金 を 受 け 取 り 財 サービスを 受 ける 際 の 支 払 手 段 として 前 払 式 支 払 手 段 が 発 行 される 場 合

縦 計 横 計 をSUM 関 数 で 一 度 に 計 算 する 縦 横 の 合 計 を 表 示 するセルが 計 算 対 象 となる セルと 隣 接 している 場 合 は 一 度 に 合 計 を 求 め ることができます 1 計 算 対 象 となるセル 範 囲 と 合 計 を 表 示 する セル 範

別冊資料-11

以 下 に 手 順 の 流 れを 記 載 します 3ページ 以 降 で 各 項 目 の 手 順 を 説 明 します ( をクリックすると 該 当 ページにジャンプします ) また 15ページに 汎 用 データ 受 入 に 関 する よくあるお 問 い 合 わせをご 紹 介 しています Step1 (

ことばを覚える

問 題 1 次 の 文 章 は 作 業 環 境 について 述 べたものである にあてはまる 適 切 なも のを 解 答 群 { }より 選 び その 記 号 で 答 えよ 設 問 1. < 図 1>はアプリケーションウィンドウの 一 部 である < 図 1>の1の 部 分 を < 図 1> という

Ⅰ 校 外 における 研 修 の 留 意 点 1 校 外 における 研 修 のコマ 数 の 考 え ア) 午 前 午 後 の 講 座 は 0.5 日 (0.5 コマ) イ) 全 日 の 講 座 は 1.0 日 (1.0 コマ) 2 校 外 における 研 修 として 選 択 できない 講 座 研 修

2 科 学 研 究 費 助 成 事 業 のトップページ 画 面 が 表 示 されます [ 研 究 者 ログイン]をクリック します 掲 載 している 画 面 は 例 示 です 随 時 変 更 されます 3 科 研 費 電 子 申 請 システムの 応 募 者 ログイン 画 面 が 表 示 されます e

PowerPoint Presentation

eol 操 作 マニュアル 目 次 基 本 機 能 トップページとナビゲーション 構 成 基 本 機 能 タブメニュー と プルダウンメニュー について 基 本 機 能 ダイレクト 企 業 検 索 について 企 業 検 索 企 業 基 本 情 報 企 業 情 報 の 閲 覧 ダウンロード 有 報 メ

WebMail ユーザーズガイド

第4回税制調査会 総4-1

< F31322D325F81798ED0984A8E6D817A944E8BE08D8E959E814593BE>

Transcription:

OpenOffice.org 3.1 Basic ガイド

Copyright The contents of this Documentation are subject to the Public Documentation License Version 1.0 (the "License"); you may only use this Documentation if you comply with the terms of this License. A copy of the License is available at http://www.openoffice.org/licenses/pdl.html The Initial Writer of the Original Documentation is Sun Microsystems Copyright (C). All Rights Reserved. Modify Documentation is Good-day inc Copyright (C). なお 本 ドキュメントのメンテナンスは 下 記 の 場 所 で 実 施 しています http://wiki.services.openoffice.org/wiki/ja/documentation/basic_guide

目 次 Copyright...2 BASICプログラミングガイド...9 OpenOffice.org Basic について...9 OpenOffice.org Basic の 対 象 ユーザー...10 OpenOffice.org Basic の 使 用...10 詳 細 情 報...10 OpenOffice.org Basic プログラミング 言 語...12 OpenOffice.org Basic 概 要...13 プログラム 行...13 コメント...14 マーカー...14 変 数 の 使 用 法...16 変 数 の 暗 黙 的 宣 言...16 変 数 の 明 示 的 宣 言...16 文 字 列 変 数...18 ASCII コードから Unicode コードまで...18 ANSI 文 字 セット...18 コードページ...18 Unicode...19 文 字 列 変 数...19 文 字 列 の 明 示 的 指 定...19 数 値 変 数...21 整 数 変 数...21 ロング 整 数 変 数...21 単 精 度 変 数...21 倍 精 度 変 数...22 通 貨 変 数...22 浮 動 小 数 点 数 値...23 数 値 の 明 示 的 指 定...23 小 数...24 指 数 表 示...24 16 進 数...25 8 進 数...25 ブール 型 変 数...26 日 付 および 時 刻 変 数...27 配 列...28 1 次 元 配 列...28 インデックスの 開 始 値 に 関 する 設 定...29 多 次 元 データフィールド...29 データフィールドのサイズの 動 的 変 更...30 変 数 の 有 効 範 囲 と 有 効 期 限...32 局 所 変 数...32 パブリックドメイン 変 数...32 大 域 変 数...33 プライベート 変 数...33

定 数...35 定 数 の 定 義...35 定 数 の 範 囲...35 演 算 子...36 算 術 演 算 子...36 論 理 演 算 子...36 比 較 演 算 子...36 分 岐 処 理...38 If...Then...Else...38 Select...Case...39 ループ...40 For...Next...40 For Each...41 Do...Loop...41 プログラミングの 例 : 埋 め 込 みループを 使 用 したソート...43 プロシージャと 関 数...44 プロシージャ...44 関 数...44 プロシージャと 関 数 の 強 制 終 了...45 パラメータの 渡 し 方...45 オプションパラメータ...46 再 帰 処 理...47 エラー 処 理...49 On Error 命 令...49 Resume コマンド...49 エラーの 関 連 情 報 の 取 得...50 効 率 的 なエラー 処 理 のヒント...50 実 行 時 ライブラリ...52 変 換 関 数...53 変 数 型 の 暗 黙 的 変 換 と 明 示 的 変 換...53 変 数 の 内 容 の 確 認...55 文 字 列...58 文 字 コードの 操 作...58 文 字 列 の 一 部 の 取 得...58 検 索 と 置 換...59 文 字 列 の 書 式 設 定...61 日 付 および 時 刻...63 プログラムコード 内 での 日 付 と 時 刻 の 指 定...63 日 付 および 時 刻 の 取 得...63 システム 日 付 と 時 刻 の 取 得...65 ファイルおよびディレクトリ...66 ファイル 管 理...66 ディレクトリの 作 成 および 削 除...68 ファイルのコピー 名 前 変 更 削 除 および 存 在 確 認...69 ファイル 属 性 の 読 み 取 りと 変 更...69 テキストファイルの 書 き 込 みと 読 み 取 り...71 テキストファイルの 読 み 取 り...72 メッセージボックスとインプットボックス...73 メッセージの 出 力...73

インプットボックスと 簡 単 な 文 字 列 入 力...74 その 他 の 関 数...76 Beep...76 Shell...76 Wait...76 Environ...77 OpenOffice.org API について...78 Universal Network Objects (UNO)...79 プロパティーとメソッド...81 プロパティー...81 メソッド...81 モジュール サービス インターフェース...83 UNO の 関 連 ツール...84 supportsservice メソッド...84 デバッグの 属 性...84 API Reference...85 中 央 インターフェースの 概 要...86 コンテキスト 依 存 型 オブジェクトの 作 成...86 下 位 オブジェクトへの 名 前 付 きアクセス...87 com.sun.star.container.xnamecontainer インターフェース...88 インデックス 方 式 による 下 位 オブジェクトへのアクセス...88 com.sun.star.container.xindexcontainer インターフェース...89 下 位 オブジェクトへの 反 復 アクセス...89 OpenOffice.orgドキュメントの 使 い 方...91 StarDesktop...92 ThisComponent...93 OpenOffice.org でのドキュメントに 関 する 基 本 知 識...93 XML ファイルフォーマット...94 ファイルの 圧 縮...94 ドキュメントの 作 成 オープン インポート...94 loadcomponentfromurl メソッドのオプション...96 新 規 ドキュメントの 作 成...97 ドキュメントオブジェクト...97 storeasurl メソッドのオプション...99 ドキュメントの 印 刷...100 print メソッドのオプション...101 プリンタの 選 択 と 設 定...101 テンプレート...103 書 式 設 定 オプションの 詳 細...104 文 書 ドキュメント...106 文 書 ドキュメントの 構 造...107 段 落 と 段 落 部 位...107 段 落 部 位...109 書 式 設 定...111 文 字 属 性...111 段 落 属 性...112 例 : HTML の 簡 易 エクスポート...114 文 字 と 段 落 属 性 のデフォルト 値...116 文 書 ドキュメントの 編 集...118

TextCursor...118 TextCursor によるテキストの 書 式 設 定...121 テキストの 取 得 と 変 更...122 制 御 コードの 挿 入...123 テキスト 部 位 の 検 索...124 テキスト 部 位 の 置 換...127 テキスト 以 外 のオブジェクト...129 テーブル...129 テーブル 行...132 列...133 セル...134 テキスト 枠...135 テキストフィールド...138 現 在 のページ...141 コメント...142 日 付 と 時 刻...143 章 名 および 章 番 号...143 ブックマーク...144 表 計 算 ドキュメント...146 表 計 算 ドキュメントの 構 造...147 スプレッドシート...147 行 と 列...149 列 および 行 の 挿 入 と 削 除...151 セルと 範 囲...152 セルの 挿 入 削 除 コピー 移 動...154 表 計 算 ドキュメントの 書 式 設 定...159 セル 属 性...159 背 景 色 および 影...159 テキストの 配 置...161 数 値 日 付 テキストの 書 式...162 ページ 属 性...163 ページ 背 景...164 ページ 書 式...164 ページ 余 白 外 枠 影...165 ヘッダとフッタ...167 ヘッダおよびフッタの 表 示 テキストの 変 更...171 中 央 揃 え ( 表 計 算 ドキュメントのみ)...174 印 刷 対 象 の 指 定 ( 表 計 算 ドキュメントのみ)...174 表 計 算 ドキュメントの 効 率 的 な 編 集 方 法...176 セル 範 囲...176 セル 範 囲 を 利 用 した 計 算...177 セルの 内 容 の 削 除...178 セルの 内 容 の 検 索 と 置 換...179 図 形 描 画 とプレゼンテーション...181 図 形 描 画 ドキュメントの 構 造...182 ページ...182 図 形 描 画 オブジェクトの 基 本 属 性...184 単 一 色 による 塗 りつぶし...185 色 のグラデーション...186

ハッチング...188 ビットマップ...190 透 過 性 あり...190 線 の 属 性...191 テキスト 属 性 ( 図 形 描 画 オブジェクト)...193 影 の 属 性...196 各 種 の 図 形 描 画 オブジェクトの 概 要...197 円 および 楕 円 オブジェクト...199 線...201 多 角 形 オブジェクト...203 図 オブジェクト...206 図 形 描 画 オブジェクトの 編 集...209 オブジェクトのグループ 化...209 図 形 描 画 オブジェクトの 回 転 と 傾 斜...211 検 索 と 置 換...213 プレゼンテーション...214 プレゼンテーションの 操 作...214 グラフ ( 図 )...216 表 計 算 ドキュメント 内 のグラフの 使 用...217 グラフの 構 造...219 タイトル サブタイトルおよび 凡 例...219 背 景...221 ダイアグラム...222 壁 面 と 床 面...223 グラフ 軸...224 軸 の 属 性...226 ラベルの 属 性...227 区 切 りの 属 性 :...228 棒 グラフのみ:...228 目 盛 線...228 軸 のタイトル...230 3D グラフ...232 積 み 上 げグラフ...234 グラフの 種 類...236 折 れ 線 グラフ...236 面 グラフ...237 棒 グラフ...237 円 グラフ...238 データベース...239 SQL: クエリー 言 語...240 データベースアクセスの 種 類...241 データソース...242 クエリー...244 データベースアクセス...246 テーブルからのデータの 取 得...246 種 類 別 データの 取 得...248 ResultSet のバリエーション...249 ResultSets のナビゲーション 用 メソッド...250 データレコードの 変 更...251

ダイアログ...252 ダイアログの 操 作...253 ダイアログの 作 成 法...253 ダイアログのクローズ 処 理...253 タイトルバーの 閉 じるボタンによるクローズ 処 理...254 プログラムによる 明 示 的 なクローズ 処 理...254 コントロール 要 素 へのアクセス...254 コントロール 要 素 およびダイアログでの モデル の 使 用 法...255 プロパティー...256 名 前 とタイトル...256 位 置 とサイズ...256 フォーカスおよびタブ 順...257 マルチページダイアログ...257 イベント...259 パラメータ...260 マウスイベント...261 キーボードイベント...262 フォーカスイベント...264 コントロール 要 素 の 固 有 イベント...265 ダイアログコントロールの 詳 細...267 ボタン...267 ラジオボタン...268 チェックボックス...269 テキストボックス (テキストフィールド)...270 リストボックス...272 フォーム...275 フォームの 使 用...276 オブジェクトフォームの 指 定...276 フォーム 用 コントロール 要 素 の 構 成...277 フォーム 用 コントロール 要 素 のモデルへのアクセス...277 フォーム 用 コントロール 要 素 のビューへのアクセス...278 フォーム 用 コントロール 要 素 のシェイプオブジェクトへのアクセス...279 フォーム 用 コントロール 要 素 の 詳 細...281 ボタン...281 ラジオボタン...282 チェックボックス...284 テキストボックス (テキストフィールド)...285 リストボックス...286 データベースフォーム...289 テーブル...290

BASIC プログラミングガイド この 章 では OpenOffice.org Basic を 使 用 したプログラミングについて 説 明 します なお 本 ガイドの 読 者 には プログラミング 言 語 に 関 する 基 本 知 識 があることを 想 定 しています また OpenOffice.org Basic プログラムを 開 発 する 際 に 参 考 となる 各 種 のサンプルコードも 紹 介 します このガイドでは OpenOffice.org 管 理 に 関 する 情 報 を 次 の 章 に 分 けています 最 初 の 3 つ の 章 では OpenOffice.org Basic について 紹 介 します OpenOffice.org Basic プログラミング 用 の 言 語 実 行 時 ライブラリ API について これらの 章 では OpenOffice.org Basic の 概 要 を 説 明 しています OpenOffice.org Basic プログラムを 記 述 する 場 合 は 必 ず 目 を 通 しておく 必 要 があります これ 以 降 の 章 は 各 OpenOffice.org API の 個 別 の 説 明 です 必 要 に 応 じて 目 を 通 すようにしてください ドキュメントの 使 い 方 文 書 ドキュメント 表 計 算 ドキュメント 図 形 描 画 とプレゼンテーション グラフ ( 図 ) データベース ダイアログ フォーム OpenOffice.org Basic について OpenOffice.org Basic のプログラミング 言 語 は OpenOffice.org 専 用 に 開 発 されたもの で Office パッケージとの 親 和 性 に 優 れています その 名 前 が 示 すように OpenOffice.org Basic もいわゆる Basic プログラミング 言 語 の 一 種 です そのため 過 去 に Basic 言 語 を 使 用 した 経 験 があり 特 に Microsoft 社 の Visual Basic や Visual Basic for Applications (VBA) によるプログラミングが 行 えるのであれ ば すぐに OpenOffice.org Basic をマスターできるはずです OpenOffice.org Basic に は Visual Basic と 共 通 する 部 分 が 多 くあります OpenOffice.org Basic のプログラミング 言 語 を 構 成 する 要 素 は 大 きく 分 けて 次 の 4 つに 分 類 できます OpenOffice.org Basic プログラミング 用 の 言 語 : 変 数 宣 言 ループ 関 数 などの 基 本 言 語 構 成 を 定 義 します 実 行 時 ライブラリ: OpenOffice.org の 基 本 的 な 機 能 を 提 供 するもので たとえば 数 字 文 字 列 日 付 ファイルなどの 編 集 がこれに 該 当 します

OpenOffice.org API (Application Programming Interface): OpenOffice.org ド キュメントへのアクセスを 許 可 し ドキュメントの 作 成 変 更 および 印 刷 を 許 可 します ダイアログエディタ: ダイアログウィンドウを 定 義 するためのもので 必 要 なコントロールの 配 置 や イベントハンドラの 割 り 当 てなどを 行 います OpenOffice.org Basic と VBA の 互 換 性 については OpenOffice.org Basic のプログラミング 言 語 だけでなく 実 行 時 ライブラリも 関 係 します また OpenOffice.org API およびダイアログエディタは VBA と 互 換 性 が ありません (これらのインターフェースまでも 共 通 化 すると OpenOffice.org に 用 意 された 多 くの 機 能 が 使 用 不 可 能 となるためです) OpenOffice.org Basic の 対 象 ユーザー OpenOffice.org Basic を 用 いたアプリケーションは OpenOffice.org が 備 えている 標 準 的 な 機 能 では 対 応 できない 操 作 を 実 行 する 場 合 に 使 用 されます たとえば OpenOffice.org Basic を 使 うことで ルーチンで 実 行 するタスクを 自 動 操 作 したり データ ベースサーバーなど 他 のプログラムへのリンクを 作 成 したり また 複 雑 な 処 理 をスクリプトに 記 述 し ボタンをクリックするだけで 実 行 させることもできます OpenOffice.org Basic を 使 えば OpenOffice.org の 全 機 能 にアクセスできるだけでなく 各 種 の 関 数 を 利 用 した 操 作 およびドキュメントの 種 類 の 変 更 や ダイアログウィンドウをユー ザー 定 義 することもできます OpenOffice.org Basic の 使 用 OpenOffice.org Basic は すべての OpenOffice.org プログラムから 実 行 が 可 能 で 特 別 なサポートプログラムなどを 追 加 する 必 要 はありません また 標 準 インストールを 行 なった 場 合 でも Basic マクロの 作 成 に 必 要 となる 次 の OpenOffice.org Basic 用 コンポーネント がすべてインストールされます 統 合 開 発 環 境 (integrated development environment: IDE): マクロの 入 力 およびテ ストを 行 うためのエディタとして 機 能 します インタプリタ: OpenOffice.org Basic マクロの 実 行 に 必 要 です 各 種 の OpenOffice.org アプリケーションに 対 するインターフェース: Office ドキュメントに 直 接 アクセスする 際 に 必 要 となります 詳 細 情 報 このマニュアルで 説 明 する OpenOffice.org API コンポーネントは OpenOffice.org Basic のプログラマに 必 要 とされる 情 報 の 重 要 度 に 応 じて 選 択 してあります また 多 くのコ ンポーネントでは インターフェース 機 能 の 一 部 のみが 説 明 されています 詳 細 については API reference を 参 照 してください

OpenOffice.org API については デベロッパ 向 けガイド により 詳 しい 説 明 がありますが これらは 基 本 的 に Java および C++ でのプログラミングを 念 頭 に 記 述 されています ただし OpenOffice.org Basic にある 程 度 習 熟 していれば OpenOffice.org Basic および OpenOffice.org でのプログラミングで 役 立 つ 情 報 を デベロッパ 向 けガイド から 入 手 でき ます OpenOffice.org Basic ではなく Java または C++ を 使 用 して 直 接 プログラミングを 行 う 場 合 は このマニュアルの 代 わりに OpenOffice.org デベロッパ 向 けガイド を 参 照 してく ださい ただし Java または C++ による OpenOffice.org プログラミングは OpenOffice.org Basic よりもさらに 複 雑 なプログラミングを 必 要 とします

OpenOffice.org Basic プログラミング 言 語 OpenOffice.org Basic は いわゆる Basic プログラミング 言 語 の 一 種 です また OpenOffice.org Basic には Microsoft Visual Basic for Applications および Microsoft Visual Basic と 共 通 する 部 分 が 多 くあります これらの 言 語 を 扱 った 経 験 があ れば OpenOffice.org Basic は 簡 単 にマスターできるでしょう また Java C++ Delphi など 他 のプログラミング 言 語 のプログラマにとっても OpenOffice.org Basic は 簡 単 にマスターできるはずです OpenOffice.org Basic は 完 全 な 手 続 き 型 のプログラミング 言 語 であり 従 来 使 われていた GoTo や GoSub などを 必 要 と しません また OpenOffice.org Basic はオブジェクト 指 向 型 のプログラミング 言 語 でもあり 外 部 オ ブジェクトライブラリを 使 用 するためのインターフェースも 用 意 されています OpenOffice.org API のインターフェースの 詳 細 については 後 述 します 本 章 では OpenOffice.org Basic プログラミング 言 語 の 主 要 コンポーネント および OpenOffice.org Basic を 用 いたアプリケーションやライブラリの 概 要 について 説 明 します

OpenOffice.org Basic 概 要 OpenOffice.org Basic はインタプリタ 型 の 言 語 です C++ や Delphi とは 異 なり OpenOffice.org Basic のコンパイラは 自 動 的 に 実 行 できる 実 行 可 能 ファイルまたは 自 動 抽 出 ファイルを 作 成 しません 代 わりに OpenOffice.org の 内 部 で OpenOffice.org Basic プログラムを 実 行 します これらのコードは 事 前 にチェックが 行 われてから 1 行 ずつ 実 行 されます プログラム 行 Basic インタプリタには コードを 1 行 ずつ 実 行 していくという 点 で 他 のプログラミング 言 語 と 大 きく 異 なる 点 があります たとえばソースコード 内 に 改 行 記 号 がある 場 合 Java C+ + Delphi などのプログラミング 言 語 では このような 改 行 記 号 は 無 視 されますが Basic 言 語 の 場 合 は 改 行 コードまでの 1 行 が 1 つのプログラミングコードとして 完 結 している 必 要 があります 同 様 に 関 数 呼 び 出 しや 数 値 演 算 および 関 数 やループのヘッダ 部 なども 1 行 の 中 に 収 まっている 必 要 があります ただし コードを 記 入 するスペースが 足 りなかったり 極 端 に 長 い 行 になるような 場 合 は 下 線 記 号 (_) を 末 尾 に 追 加 することで 複 数 の 行 を 1 行 と 認 識 させることができます 次 のサン プルコードでは 実 質 的 に 1 行 の 数 値 演 算 行 を 見 かけ 上 4 行 に 分 割 しています LongExpression = (Expression1 * Expression2) + _(Expression3 * Expression4) + _ (Expression5 * Expression6) + _(Expression7 * Expression8) 下 線 記 号 は 行 の 末 尾 に 記 入 する 必 要 があり スペース 記 号 やタブ 記 号 を 続 けることはできず そのよう な 場 合 はエラーが 発 生 します このような 行 の 分 割 機 能 に 加 えて OpenOffice.org Basic では コロン 記 号 を 挿 入 すること で 1 行 を 複 数 のセクションに 分 割 することができます この 機 能 はコードの 表 示 スペースを 整 える 場 合 に 有 用 です たとえば 次 のコードは a = 1 a = a + 1 a = a + 1 次 のように 1 行 にまとめることができます a = 1 : a = a + 1 : a = a + 1

コメント OpenOffice.org Basic のプログラムコード 内 には 通 常 の 実 行 行 以 外 にコメント 行 を 記 述 することができ プログラム 各 部 の 説 明 および 各 種 の 参 考 情 報 などを 記 入 しておくことがで きます OpenOffice.org Basic の 場 合 プログラムコード 内 へのコメント 行 の 記 述 は 次 の 2 通 り の 方 法 が 可 能 です アポストロフィー 記 号 に 続 く 部 分 は すべてコメントと 見 なされます Dim A ' This is a comment for variable A キーワード Rem に 続 く 部 分 もコメントと 見 なされます Rem This comment is introduced by the keyword Rem. 通 常 これらのコメントは 該 当 行 の 末 尾 までがコメントの 内 容 となります OpenOffice.org Basic は それ 以 降 の 行 を 再 び 通 常 の 実 行 行 として 解 釈 します 複 数 行 にわたるコメントを 記 述 する 場 合 は 各 行 ごとにコメント 指 定 記 号 を 付 ける 必 要 があります Dim B ' This comment for variable B is relatively long ' and stretches over several lines. The ' comment character must therefore be repeated ' in each line. マーカー OpenOffice.org Basic のプログラム 内 には 数 十 から 数 千 個 のマーカー ( 変 数 定 数 関 数 などの 名 前 ) を 設 定 できます マーカーの 名 前 は 次 の 命 名 規 則 に 従 う 必 要 があります マーカーに 使 える 文 字 は アルファベット 数 字 下 線 記 号 (_) だけです マーカーの 先 頭 は アルファベッドか 下 線 記 号 で 始 める 必 要 があります マーカーには ä â î ß などの 特 殊 文 字 は 使 用 できません マーカーの 長 さは 最 大 255 文 字 です 大 文 字 と 小 文 字 は 区 別 されません たとえば OneTestVariable というマーカーは onetestvariable や ONETESTVARIABLE と 同 じ 変 数 を 定 義 します ただし この 規 則 には 例 外 が 1 つあり UNO-API 定 数 については 大 文 字 と 小 文 字 が 区 別 されます UNO の 詳 細 については OpenOffice.org API の 概 要 を 参 照 してください

OpenOffice.org Basic と VBA では マーカーの 記 述 規 則 が 異 なります たとえば OpenOffice.org Basic では Option Compatible を 指 定 した 場 合 のみ マーカーに 特 殊 文 字 が 使 えるようになっていま すが これは 多 言 語 プロジェクトを 扱 う 際 に 問 題 が 生 じる 可 能 性 があるためです 次 に 使 用 できるマーカーと 使 用 できないマーカーの 例 をいくつか 示 します Surname Surname5 First Name DéjàVu 5Surnames First,Name ' Correct ' Correct (number 5 is not the first digit) ' Incorrect (spaces are not permitted) ' Incorrect (letters such as é, à are not permitted) ' Incorrect (the first character must not be a number) ' Incorrect (commas and full stops are not permitted)

変 数 の 使 用 法 変 数 の 暗 黙 的 宣 言 一 般 に Basic 言 語 は 簡 易 的 な 記 法 を 許 可 するように 設 計 されています このような 流 れを 受 けて OpenOffice.org Basic でも 変 数 の 使 用 法 が 簡 易 化 されており 明 示 的 な 宣 言 をす ることなく 変 数 を 使 用 できます このためコード 内 に 使 われる 変 数 名 は 最 初 に 記 述 された 段 階 で 実 態 として 存 在 するようになります 既 にどのような 変 数 が 存 在 するかにもよりますが 次 のサンプルコードを 記 述 するだけで 最 大 3 つの 変 数 が 宣 言 されたことになります a = b + c ただし このような 暗 黙 的 な 変 数 宣 言 は タイプミスなどによる 混 乱 を 招 く 場 合 もあるため 推 奨 されるプログラミングスタイルではありません たとえば 間 違 った 変 数 名 を 入 力 しても エ ラーメッセージは 出 力 されません インタプリタは 新 しい 変 数 名 が 宣 言 されたと 判 断 して 初 期 値 として 0 を 割 り 当 てて 処 理 を 継 続 します このようなバグは コード 内 の 該 当 箇 所 を 特 定 するのが 困 難 です 変 数 の 明 示 的 宣 言 変 数 の 暗 黙 的 宣 言 に 伴 うエラーを 防 止 する 観 点 から OpenOffice.org Basic には 次 のよ うな 機 能 が 用 意 されています Option Explicit このコードは 各 モジュールのプログラム 先 頭 行 に 記 述 する 必 要 があります この 機 能 を 使 用 することで 明 示 的 に 宣 言 されていない 変 数 があった 場 合 にエラーメッセージが 表 示 される ようになります また この Option Explicit は すべての Basic モジュールに 記 述 する 必 要 があります 変 数 の 明 示 的 な 宣 言 方 法 として 次 のようなコマンドを 記 述 するのが 最 も 簡 単 です Dim MyVar このサンプルコードでは MyVar という 名 前 の 変 数 を 宣 言 し その 変 数 型 を variant として います バリアント 型 の 変 数 とは 文 字 列 型 整 数 型 浮 動 小 数 点 型 ブール 型 など 使 用 可 能 なすべての 変 数 型 データを 格 納 できる 変 数 のことです ここでは バリアント 型 変 数 のいく つかの 例 を 紹 介 します

MyVar = "Hello World" MyVar = 1 MyVar = 1.0 MyVar = True ' Assignment of a string ' Assignment of a whole number ' Assignment of a floating point number ' Assignment of a Boolean value 上 記 のようにして 宣 言 された 変 数 には 同 一 プログラム 内 でほかの 変 数 型 のデータを 割 り 当 てることもできます ただし バリアント 型 変 数 を 使 うと 柔 軟 な 操 作 が 行 えますが 変 数 は 特 定 の 変 数 型 に 固 定 して 使 用 する 方 が 賢 明 です また 変 数 型 の 一 致 しないデータ 操 作 が 行 わ れると OpenOffice.org Basic はエラーメッセージを 表 示 します 特 定 の 変 数 型 に 固 定 して 変 数 宣 言 を 行 うには 次 のようにします Dim MyVar As Integer ' Declaration of a variable of the integer type この 変 数 は 整 数 型 として 宣 言 され 整 数 型 データを 格 納 することができます 数 値 型 の 変 数 宣 言 は 次 のようにしても 行 えます Dim MyVar% ' Declaration of a variable of the integer type Dim による 変 数 宣 言 では 複 数 の 変 数 宣 言 を 一 度 に 行 えます Dim MyVar1, MyVar2 特 定 の 変 数 型 を 指 定 して 変 数 宣 言 する 場 合 は 各 変 数 に 変 数 型 を 指 定 する 必 要 があります Dim MyVar1 As Integer, MyVar2 As Integer 変 数 型 を 指 定 しないと OpenOffice.org Basic はバリアント 型 として 変 数 宣 言 を 行 います たとえば 次 のサンプルコードでは MyVar1 はバリアント 型 MyVar2 は 整 数 型 として 宣 言 し ています Dim MyVar1, MyVar2 As Integer 以 降 の 節 では OpenOffice.org Basic で 使 用 可 能 な 変 数 型 を 示 し それらの 使 用 法 およ び 宣 言 法 を 説 明 します

文 字 列 変 数 文 字 列 型 は 数 値 型 と 共 に OpenOffice.org Basic で 最 も 多 用 される 変 数 型 です 文 字 列 とは 一 連 の 文 字 を 並 べた 形 で 構 成 されるデータです コンピュータ 内 の 処 理 において 文 字 列 は 個 々の 文 字 を 示 す 固 有 の 数 値 として 記 録 されます ASCII コードから Unicode コードまで 文 字 コードセットとは 文 字 列 を 構 成 する 各 文 字 とそのコード 番 号 の 対 応 関 係 を 示 すもので コンピュータによる 画 面 への 文 字 出 力 も この 文 字 コードセットに 応 じて 処 理 されます ASCII 文 字 コードセット ASCII 文 字 コードセットとは 数 字 アルファベット 特 殊 記 号 に 1 バイトのコード 番 号 を 割 り 当 てたものです ASCII コードでは 0 から 127 までのコード 番 号 がアルファベットおよびそ の 他 の 記 号 (ピリオド カッコ コンマなど) に 割 り 当 てられており その 中 には 画 面 およびプリ ンタ 制 御 用 の 特 殊 コードなども 定 義 されています 通 常 コンピュータ 間 でテキストデータを 交 換 する 際 には この ASCII 文 字 コードセットが 標 準 的 なフォーマットとして 利 用 されていま す ただし この 文 字 コードセットには â ä î などの 欧 文 特 殊 文 字 や キリル 文 字 などは 含 まれて いません ANSI 文 字 セット Microsoft 社 の Windows 製 品 では American National Standards Institute (ANSI) 文 字 コードセットが 採 用 されていますが この 中 には ASCII 文 字 コードセット 内 に 存 在 しない 文 字 も 含 めるよう 拡 張 されています コードページ ISO 8859 文 字 コードセットは 国 際 標 準 となるコードセットを 取 り 決 めたものです この ISO 文 字 コードセットの 最 初 の 128 文 字 は ASCII 文 字 コードセットと 同 じものです ISO 標 準 による 新 規 文 字 コードセット (コードページ) の 登 場 により さまざまな 言 語 をより 正 しく 表 示 で きるようになりました ただし この 場 合 特 定 の 文 字 コードが 使 用 する 言 語 ごとに 異 なる 文 字 を 示 すという 欠 点 があります

Unicode Unicode は 文 字 コードを 4 バイトに 拡 張 して 複 数 の 文 字 コードセットを 組 み 合 わせること で 可 能 な 限 り 広 範 な 言 語 に 対 応 した 標 準 コードを 規 定 しています 現 在 Unicode の Version 2.0 は OpenOffice.org および OpenOffice.org Basic をはじめとする 多 数 の ソフトウェアでサポートされています 文 字 列 変 数 OpenOffice.org Basic では 文 字 列 変 数 を Unicode で 保 存 します 1 つの 文 字 列 変 数 には 最 大 65535 文 字 を 格 納 できます OpenOffice.org Basic はこれらの 個 々の 文 字 を 該 当 する Unicode 値 として 内 部 に 格 納 しています そのときに 使 用 する 作 業 用 メモリ 量 は 扱 う 文 字 列 の 長 さに 依 存 します 文 字 列 変 数 の 宣 言 は 次 の 形 式 で 行 います Dim Variable As String この 変 数 宣 言 は 次 のように 記 述 することもできます Dim Variable$ VBA アプリケーションを 移 植 するときは OpenOffice.org Basic での 最 大 文 字 数 (65535 文 字 ) を 超 過 しないよう 確 認 する 必 要 があります 文 字 列 の 明 示 的 指 定 文 字 列 変 数 に 対 して 明 示 的 に 文 字 列 を 代 入 する 際 には 文 字 列 を 引 用 符 (") で 囲 みます Dim MyString As String MyString = " This is a test" 文 字 列 を 2 行 にわたって 記 述 する 場 合 は 1 行 目 の 最 後 にプラス 記 号 を 付 けます Dim MyString As String MyString = "This string is so long that it " + _ "has been split over two lines." 文 字 列 中 に 引 用 符 (") そのものを 含 めたい 場 合 は 該 当 する 位 置 に 引 用 符 を 2 個 続 けて 記 述 します

Dim MyString As String MyString = "a ""-quotation mark." ' produces a "-quotation mark

数 値 変 数 OpenOffice.org Basic は 数 値 処 理 用 に 5 つの 基 本 的 な 型 をサポートしています 整 数 ロング 整 数 型 単 精 度 変 数 倍 精 度 型 通 貨 変 数 整 数 変 数 整 数 変 数 には -32768 から 32767 までの 整 数 を 格 納 することができます 1 つの 整 数 変 数 が 消 費 するメモリ 量 は 2 バイトです 整 数 変 数 の 型 宣 言 子 は % です 整 数 変 数 には 非 常 に 高 速 に 計 算 できるというメリットがあり ループカウンタ 用 の 変 数 として 適 しています 整 数 変 数 に 浮 動 小 数 点 型 の 数 値 を 代 入 すると 小 数 点 以 下 を 丸 めた 整 数 値 が 収 められます 整 数 変 数 の 宣 言 は 次 の 形 式 で 行 います Dim Variable As Integer Dim Variable% ロング 整 数 変 数 ロング 整 数 変 数 には 2147483648 から 2147483647 までの 整 数 を 格 納 することが できます 1 つのロング 整 数 変 数 が 消 費 するメモリ 量 は 4 バイトです ロング 整 数 変 数 の 型 宣 言 子 は & です ロング 整 数 変 数 には 非 常 に 高 速 に 計 算 できるというメリットがあり ルー プカウンタ 用 の 変 数 として 適 しています ロング 整 数 変 数 に 浮 動 小 数 点 型 の 数 値 を 代 入 する と 小 数 点 以 下 を 丸 めた 整 数 値 が 収 められます ロング 整 数 変 数 の 宣 言 は 次 の 形 式 で 行 います Dim Variable as Long Dim Variable& 単 精 度 変 数 単 精 度 変 数 には 3.402823 10 38 から 1.401298 10-45 までの 正 および 負 の 浮 動 点 小 数 を 収 めることができます 1 つの 単 精 度 変 数 が 消 費 するメモリ 量 は 4 バイトです 単 精 度 変 数 の 型 宣 言 子 は! です

従 来 このような 単 精 度 変 数 は より 精 度 の 高 い 倍 精 度 変 数 に 対 して 必 要 な 計 算 処 理 時 間 を 短 縮 するために 使 われてきました ただし 近 年 は 計 算 時 間 がさほど 大 きな 要 素 にならなく なってきたため 単 精 度 変 数 の 必 要 性 も 低 くなっています 単 精 度 変 数 の 宣 言 は 次 の 形 式 で 行 います Dim Variable as Single Dim Variable! 倍 精 度 変 数 倍 精 度 変 数 には 1.79769313486232 10 308 から 4.94065645841247 10-324 までの 正 および 負 の 浮 動 点 小 数 を 収 めることができます 倍 精 度 変 数 が 消 費 するメ モリ 量 は 最 大 で 8 バイトです 倍 精 度 変 数 は 高 い 精 度 を 必 要 とする 計 算 処 理 に 適 してい ます 倍 精 度 変 数 の 型 宣 言 子 は # です 倍 精 度 変 数 の 宣 言 は 次 の 形 式 で 行 います Dim Variable As Double Dim Variable# 通 貨 変 数 通 貨 変 数 では ほかの 変 数 型 と 異 なる 方 式 で 値 が 格 納 されます この 場 合 の 数 値 は 小 数 部 4 桁 の 固 定 小 数 点 方 式 として 扱 われます 整 数 部 は 最 大 15 桁 までが 格 納 できます 通 貨 変 数 には -922337203685477.5808 から +922337203685477.5807 ま での 数 値 を 収 めることができ 1 つの 通 貨 変 数 が 消 費 するメモリ 量 は 8 バイトです 通 貨 変 数 の 型 宣 言 子 は @ です 主 として 通 貨 変 数 は 金 銭 計 算 などを 行 う 際 に 浮 動 小 数 点 に 起 因 する 丸 め 誤 差 を 避 ける 場 合 に 使 用 されます 通 貨 変 数 の 宣 言 は 次 の 形 式 で 行 います Dim Variable As Currency Dim Variable@

浮 動 小 数 点 数 値 単 精 度 倍 精 度 および 通 貨 の 各 型 は まとめて 浮 動 小 数 点 または 浮 動 小 数 点 数 型 と 呼 ば れることがよくあります 浮 動 小 数 点 数 は さまざまな 長 さの 小 数 部 分 を 持 つ 数 値 を 格 納 でき そのためにこのような 名 前 が 付 いています 小 数 点 が 数 値 の 中 を 浮 動 できるように 見 えま す float 型 の 変 数 を 宣 言 できます 変 数 の 実 際 の 型 (single long currency) は 値 が 変 数 に 代 入 される 時 点 で 決 まります Dim A As Float A = 1210.126 数 値 の 明 示 的 指 定 数 値 の 表 示 方 式 には 小 数 点 表 示 や 指 数 表 示 などの 各 種 の 方 式 があり その 他 に 10 進 数 以 外 の 表 示 を 行 うことも 可 能 です OpenOffice.org Basic で 扱 う 数 値 には 次 の 規 則 が 適 用 されます 整 数 数 値 としての 扱 い 方 が 最 も 簡 単 なのが 整 数 です なおソースコード 内 にこれら 数 値 を 記 述 す る 際 には 千 単 位 の 桁 区 切 りを 示 すコンマを 付 ける 必 要 はありません Dim A As Integer Dim B As Float A = 1210 B = 2438 数 値 の 前 にはプラス 記 号 (+) またはマイナス 記 号 (-) を 指 定 できます (これらの 記 号 と 数 値 の 間 にスペース 記 号 を 付 けても 付 けなくても 同 じ) Dim A As Integer Dim B As Float A = + 121 B = - 243

小 数 小 数 を 入 力 するときは ピリオド (.) を 小 数 点 として 使 用 します これは ほかの 記 号 を 小 数 点 として 使 用 している 地 域 においても ソースコードをそのまま 使 用 するための 規 則 です Dim A As Integer Dim B As Integer Dim C As Float A = 1223.53 B = - 23446.46 C = + 3532.76323 ' is rounded ' is rounded 小 数 値 の 前 にはプラス 記 号 (+) またはマイナス 記 号 (-) を 指 定 できます (この 場 合 も 記 号 と 数 値 の 間 にスペース 記 号 を 付 けても 付 けなくても 同 じ) 整 数 変 数 に 10 進 数 が 代 入 される 場 合 OpenOffice.org Basic は 数 字 を 切 り 上 げまたは 切 り 捨 てます 指 数 表 示 OpenOffice.org Basic では 数 値 を 指 数 ( 累 乗 べき 乗 ) 形 式 で 指 定 することができ たと えば 1.5 x 10-10 (0.00000000015) という 値 は 1.5e-10 と 表 記 できます この 場 合 の e は 大 文 字 でも 小 文 字 でもよく 先 頭 にプラス 記 号 (+) を 付 けても 付 けなくても 同 じです ここでは 正 しい 指 数 表 記 と 正 しくない 指 数 表 記 の 例 をいくつか 見 てみます Dim A As Double A = 1.43E2 ' Correct A = + 1.43E2 ' Correct (space between plus and basic number) A = - 1.43E2 ' Correct (space between minus and basic number) A = 1.43E-2 ' Correct (negative exponent) A = 1.43E -2 ' Incorrect (spaces not permitted within the number) A = 1,43E-2 ' Incorrect (commas not permitted as decimal points) A = 1.43E2.2 ' Incorrect (exponent must be a whole number) 上 記 の 無 効 な 例 のうち 1 番 目 と 3 番 目 のものでは エラーメッセージは 表 示 されませんが 結 果 として 間 違 った 値 が 返 されるので 注 意 が 必 要 です 配 列 は 次 のようにして 宣 言 します A = 1.43E -2 これは 1.43 マイナス 2 として 解 釈 され 値 -0.57 に 対 応 します しかし 意 図 した 値 は 1.43 x 10-2 (0.0143 に 対 応 ) です 次 のような 値 があります

A = 1.43E2.2 OpenOffice.org Basic は 指 数 部 の 数 値 の 小 数 点 以 下 を 無 視 するので この 数 式 は 次 のも のとして 処 理 されます A = 1.43E2 16 進 数 16 進 数 による 数 値 表 記 では 2 桁 の 数 値 が 1 バイトの 値 と 正 確 に 対 応 します この 表 記 法 は コンピュータ 内 部 で 直 接 処 理 されるデータ 値 を 扱 う 際 に 有 用 です 数 値 の 16 進 数 表 記 では 0 から 9 までの 数 字 と A から F までのアルファベットの 組 合 せで 個 々の 値 を 表 現 しま す この 場 合 の A は 10 進 数 の 10 に 該 当 し F は 10 進 数 の 15 に 該 当 します OpenOffice.org Basic では &H を 数 値 の 先 頭 に 付 けることで 16 進 数 であることを 指 定 します Dim A As Long A = &HFF ' Hexadecimal value FF, corresponds to the decimal value 255 A = &H10 ' Hexadecimal value 10, corresponds to the decimal value 16 8 進 数 OpenOffice.org Basic では 8 進 数 も 使 用 できます 使 用 できる 数 値 は 0 ~ 7 です 整 数 の 前 に &O を 付 けて 表 す 必 要 があります Dim A As Long A = &O77 ' Octal value 77, corresponds to the decimal value 63 A = &O10 ' Octal value 10, corresponds to the decimal value 8

ブール 型 変 数 ブール 型 変 数 には True ( 真 ) および False ( 偽 ) という 2 つの 値 の 一 方 を 収 めることがで きます この 変 数 型 は 2 つの 状 態 の 一 方 のみを 取 る 情 報 を 扱 う 場 合 に 適 しています ブール 型 の 値 は 内 部 的 には 2 バイトの 整 数 値 として 格 納 され 0 が False に 該 当 し その 他 すべ ての 値 は True として 扱 われます ブール 型 変 数 には 型 宣 言 子 は 存 在 しません この 場 合 は As Boolean による 型 宣 言 のみが 行 えます ブール 型 変 数 の 宣 言 は 次 の 形 式 で 行 います Dim Variable As Boolean

日 付 および 時 刻 変 数 日 付 変 数 には 日 付 と 時 刻 を 示 す 値 のみを 収 めることができます OpenOffice.org Basic では 日 付 変 数 の 値 を 格 納 する 際 に 時 刻 間 の 比 較 や 計 算 処 理 を 行 えるよう これらの 値 を 内 部 形 式 に 変 換 します 日 付 変 数 には 型 宣 言 子 は 存 在 しません この 場 合 は As Date によ る 型 宣 言 のみが 行 えます 日 付 変 数 の 宣 言 は 次 の 形 式 で 行 います Dim Variable As Date

配 列 OpenOffice.org Basic では 単 純 型 変 数 (スカラー) の 他 に 配 列 (データフィールド) も サポートしています 1 つのデータフィールド 内 には 複 数 の 値 を 格 納 することが 可 能 で これ らの 各 要 素 に 対 してはインデックス 指 定 によりアクセスします 1 次 元 配 列 配 列 の 宣 言 法 は 通 常 の 変 数 と 基 本 的 には 同 じです ただし 配 列 名 に 続 けて 配 列 の 要 素 数 をかっこで 囲 んで 指 定 する 点 が 異 なります 配 列 は 次 のようにして 宣 言 します Dim MyArray(3) この 場 合 の 配 列 は MyArray(0) MyArray(1) MyArray(2) MyArray(3) という 4 つの 要 素 を 持 つ バリアント 型 変 数 として 宣 言 されます また 配 列 を 宣 言 する 際 には 特 定 の 変 数 型 を 指 定 することも 可 能 です たとえば 次 の 例 では 4 つの 整 数 変 数 をとるよう 配 列 を 宣 言 しています Dim MyInteger(3) As Integer これまでに 説 明 した 配 列 宣 言 の 例 では インデックスの 開 始 値 として 標 準 値 である 0 が 使 われています このようなインデックスの 開 始 および 終 了 値 は 配 列 (データフィールド) の 宣 言 時 に 指 定 することができます 次 の 例 は 6 つの 整 数 値 を 取 るデータフィールドを 作 成 する ものですが 宣 言 をする 際 にインデックス 範 囲 を 5 から 10 とするよう 指 定 しています Dim MyInteger(5 To 10) インデックス 値 には 正 の 値 以 外 を 使 うことも 可 能 です 次 の 例 では インデックス 範 囲 に 負 の 値 を 指 定 していますが これも 有 効 な 宣 言 として 処 理 されます Dim MyInteger(-10 To -5) この 場 合 データフィールド ( 配 列 ) のインデックス 値 は -10 から -5 までの 整 数 値 を 取 り 合 計 6 つの 要 素 を 持 つことになります データフィールド ( 配 列 ) のインデックスについては 次 の 3 つの 制 限 があります インデックスとして 使 用 可 能 な 最 小 値 は -32768 まで インデックスとして 使 用 可 能 な 最 大 値 は 32767 まで 要 素 数 (データフィールドの 次 元 ) の 最 大 値 は 16368 まで

VBA のデータフィールドでは これ 以 外 の 制 限 が 課 されている 場 合 もあります 次 元 ごとに 取 りうる 最 大 の 要 素 数 についても 同 様 の 制 限 が 当 てはまります 実 際 に 有 効 とされる 値 については VBA の 関 連 マ ニュアルを 参 照 してください インデックスの 開 始 値 に 関 する 設 定 通 常 データフィールド ( 配 列 ) のインデックスには 0 から 始 まる 値 が 割 り 当 てられます この 開 始 値 については 次 のように 指 定 することにより すべてのデータフィールド 宣 言 において 1 とするよう 変 更 できます Option Base 1 この 変 更 をモジュール 内 のすべての 配 列 宣 言 に 対 して 適 用 させるには モジュールのヘッダ 部 で 指 定 する 必 要 があります ただしこの 変 更 は OpenOffice.org API で 指 定 する UNO シーケンスに 対 しては 無 効 で これらのインデックスは 常 に 0 から 始 められます このため Option Base 1 を 指 定 すると インデックスの 開 始 値 が 混 在 する 危 険 性 があります Option Base 1 による 設 定 は インデックスの 開 始 値 を 変 更 するだけであり 配 列 の 要 素 数 には 影 響 しません たとえば 次 のサンプルコードのように 配 列 を 宣 言 したとします Option Base 1 '... Dim MyInteger(3) この 場 合 MyInteger(1) MyInteger(2) MyInteger(3) MyInteger(4) という 4 つ の 要 素 を 持 つ 配 列 が 作 成 されます VBA の 場 合 とは 異 なり OpenOffice.org Basic での Option Base 1 による 設 定 は 配 列 の 要 素 数 には 影 響 しません OpenOffice.org Basic の 場 合 この 設 定 は 単 にインデックスの 開 始 値 を 変 更 する だけです たとえば MyInteger(3) と 宣 言 すると VBA では 1 から 3 のインデックス 値 を 取 る 3 つの 要 素 が 確 保 されますが OpenOffice.org Basic では 1 から 4 のインデックス 値 を 取 る 4 つの 要 素 が 確 保 されます Option Compatible を 使 用 すると OpenOffice.org Basic は VBA と 同 様 に 動 作 し ます 多 次 元 データフィールド OpenOffice.org Basic では 1 次 元 データフィールド ( 配 列 ) の 他 に 多 次 元 データフィー ルドもサポートしています 個 々の 次 元 の 指 定 は コンマ 記 号 で 区 切 ります 次 のサンプル コードは これらの 使 用 例 です Dim MyIntArray(5, 5)

ここでは 2 次 元 の 配 列 を 作 成 し 個 々の 次 元 に 6 つの 要 素 (インデックス 値 の 0 から 5) を 確 保 しています この 配 列 全 体 としては 6 6 = 36 個 の 値 を 格 納 することができます OpenOffice.org Basic では 数 百 次 元 にも 及 ぶ 多 次 元 配 列 を 宣 言 することも 可 能 ですが 実 際 には 使 用 可 能 なメモリ 量 により 次 元 数 に 制 限 が 課 されることになります データフィールドのサイズの 動 的 変 更 これまでに 説 明 した 例 では 特 定 のサイズを 持 つデータフィールド ( 配 列 ) を 扱 ってきました このような 配 列 以 外 にも データフィールドのサイズを 動 的 に 変 更 させることが 可 能 です た とえば A という 文 字 で 開 始 するテキストで すべての 単 語 を 含 む 配 列 を 定 義 することができ ます これらの 単 語 の 数 は 最 初 はわからないため 後 でフィールドの 上 限 を 変 更 する 必 要 が あります このような 配 列 を 作 成 するには OpenOffice.org Basic では 次 のように 宣 言 しま す ReDim MyArray(10) VBA の 場 合 は Dim MyArray() による 動 的 配 列 のサイズ 変 更 のみが 行 えますが OpenOffice.org Basic の 場 合 は ReDim により 動 的 および 静 的 配 列 のサイズを 変 更 できます 次 のサンプルコードでは 最 初 に 作 成 した 配 列 のサイズを 何 度 か 変 更 して それぞれ 11 個 および 21 個 の 値 を 格 納 できるようにします Dim MyArray(4) As Integer ' Declaration with five elements '... ReDim MyArray(10) As Integer ' Increase to 11 elements '... ReDim MyArray(20) As Integer ' Increase to 21 elements 配 列 のサイズを 変 更 する 際 には これまでの 節 で 説 明 したすべてのオプションを 指 定 できま す これには 多 次 元 データフィールド 化 するための 指 定 や インデックスの 開 始 および 終 了 値 の 指 定 などが 該 当 します なお データフィールドのサイズを 変 更 すると 格 納 していたすべ てのデータが 消 失 されます 変 更 前 の 値 を 保 持 させるには Preserve コマンドを 使 用 します Dim MyArray(10) As Integer ' Defining the initial ' dimensions '... ReDim Preserve MyArray(20) As Integer ' Increase in ' data field, while ' retaining content Preserve コマンドを 使 用 する 場 合 は 配 列 の 次 元 数 および 変 数 型 が サイズ 変 更 の 前 後 で 同 じになっている 必 要 があります

VBA で Preserve コマンドを 使 用 すると データフィールドの 最 終 次 元 の 上 限 値 だけしか 変 更 できませ んが OpenOffice.org Basic では 他 の 次 元 も 変 更 できます ReDim と Preserve を 併 用 する 場 合 データフィールドのデータ 型 はオリジナルのものから 変 更 することはできません

変 数 の 有 効 範 囲 と 有 効 期 限 OpenOffice.org Basic で 確 保 される 個 々の 変 数 は プログラムのすべての 領 域 で 使 用 可 能 というわけではなく それぞれ 有 効 となる 範 囲 と 期 限 があります 変 数 が 確 保 され 続 ける 期 限 および 利 用 可 能 なプログラム 範 囲 は 各 変 数 の 種 類 と 宣 言 された 位 置 に 依 存 します 局 所 変 数 関 数 や 手 続 きの 内 部 で 宣 言 された 変 数 は 局 所 変 数 と 呼 ばれます Sub Test Dim MyInteger As Integer '... End Sub このような 局 所 変 数 は 該 当 する 関 数 や 手 続 きが 実 行 されている 間 は 確 保 され 続 けますが 実 行 が 終 了 した 段 階 で 消 去 されます このため 関 数 を 呼 び 出 す 際 には 以 前 の 呼 び 出 し 時 に 代 入 された 値 などを 利 用 することはできません このような 値 を 保 持 しておくには 変 数 を Static として 定 義 しておく 必 要 があります Sub Test Static MyInteger As Integer '... End Sub VBA とは 異 なり OpenOffice.org Basic の 局 所 変 数 には モジュールヘッダにある 大 域 変 数 やプライ ベート 変 数 と 同 じ 名 前 を 付 けることはできません このため VBA アプリケーションを OpenOffice.org Basic に 移 植 する 際 には 重 複 した 変 数 名 を 変 更 する 必 要 があります パブリックドメイン 変 数 パブリックドメイン 変 数 は モジュールのヘッダセクションで Dim キーワード を 使 って 定 義 し ます この 変 数 は ライブラリ 内 のすべてのモジュールで 利 用 可 能 となります モジュール A:

Dim A As Integer Sub Test Flip Flop End Sub Sub Flip A = A + 1 End Sub モジュール B: Sub Flop A = A - 1 End Sub 変 数 A の 値 は 関 数 Test では 直 接 変 更 されませんが 間 接 的 に 関 数 Flip で 1 増 やされ 関 数 Flop で 1 減 らされています この 両 者 の 関 数 による 変 更 は 大 域 的 (グローバル) に 実 施 されています パブリックドメイン 変 数 の 宣 言 用 キーワードには Dim の 代 わりに Public も 使 用 できます Public A As Integer パブリックドメイン 変 数 は 該 当 するマクロが 実 行 されている 間 は 確 保 され 続 けますが 実 行 が 終 了 した 段 階 で 消 去 されます 大 域 変 数 大 域 変 数 はパブリック 変 数 と 同 等 の 機 能 を 担 っていますが 該 当 するマクロの 実 行 終 了 後 も その 値 が 確 保 され 続 ける 点 が 異 なります 大 域 変 数 は モジュールのヘッダセクションでキー ワード Global を 使 って 定 義 します Global A As Integer プライベート 変 数 Private 変 数 は 定 義 されたモジュール 内 部 でのみ 有 効 となります プライベート 変 数 の 定 義 には キーワード Private を 使 用 します Private MyInteger As Integer

複 数 のモジュールで 同 じ 名 前 の Private 変 数 が 使 われている 場 合 OpenOffice.org Basic では これらの 変 数 はそれぞれ 個 別 の 変 数 として 確 保 されます 次 のサンプルコード では モジュール A およびモジュール B の 両 方 で C という 名 前 の Private 変 数 を 確 保 し ます 関 数 Test は 最 初 にモジュール A の Private 変 数 を 設 定 し 次 にモジュール B の Private 変 数 を 設 定 します モジュール A: Private C As Integer Sub Test SetModuleA ' Sets the variable C from module A SetModuleB ' Sets the variable C from module B ShowVarA ' Shows the variable C from module A (= 10) ShowVarB ' Shows the variable C from module B (= 20) End Sub Sub SetmoduleeA C = 10 End Sub Sub ShowVarA MsgBox C ' Shows the variable C from module A. End Sub モジュール B: Private C As Integer Sub SetModuleB C = 20 End Sub Sub ShowVarB MsgBox C ' Shows the variable C from module B. End Sub

定 数 定 数 とはプログラムで 使 用 できますが 変 更 できない 値 です 定 数 の 定 義 OpenOffice.org Basic で 定 数 を 宣 言 するには キーワード Const を 使 用 します Const A = 10 必 要 であれば 宣 言 時 にデータ 型 を 指 定 しておくこともできます Const B As Double = 10 定 数 の 範 囲 定 数 の 範 囲 は 変 数 と 同 じです ( 変 数 の 有 効 範 囲 と 寿 命 参 照 ) ただし 構 文 が 若 干 異 なり ます モジュールヘッダの Const 定 義 は そのモジュールのコードに 対 して 使 用 できます 定 義 を 他 のモジュールでも 使 用 可 能 にするには キーワード Public を 追 加 します Public Const one As Integer = 1

演 算 子 OpenOffice.org Basic には 一 般 的 な 算 術 論 理 比 較 用 の 演 算 子 が 用 意 されています 算 術 演 算 子 算 術 演 算 子 は 数 値 を 対 象 とした 処 理 を 行 うものですが + 演 算 子 は 文 字 列 を 結 合 させる 場 合 にも 使 用 します + 数 値 および 日 付 の 値 の 加 算 ( 足 し 算 ) および 文 字 列 の 結 合 - 数 値 および 日 付 の 値 の 減 算 ( 引 き 算 ) * 数 値 の 乗 算 ( 掛 け 算 ) / 数 値 の 除 算 ( 割 り 算 ) \ 数 値 の 整 数 による 除 算 ( 結 果 を 丸 める) ^ 数 値 の 指 数 演 算 ( 累 乗 べき 乗 ) MOD 整 数 除 算 を 実 行 した 際 の 余 りの 値 論 理 演 算 子 論 理 演 算 子 は ブール 演 算 を 実 行 するためのものです このタイプの 演 算 子 をブール 型 の データに 対 して 適 用 すると 該 当 する 論 理 演 算 を 行 った 結 果 が 返 されます また 整 数 および ロング 整 数 のデータに 対 して 適 用 すると ビット 単 位 の 演 算 結 果 が 返 されます AND 論 理 積 (And) 演 算 OR 論 理 和 (Or) 演 算 XOR 排 他 的 論 理 和 (Xor) 演 算 NOT 論 理 否 定 (Not) 演 算 EQV 等 価 性 検 査 ( 両 方 の 部 分 が True または False) IMP 論 理 包 含 (Imp) 演 算 ( 最 初 の 値 が True であれば 次 の 値 も True かを 判 定 ) 比 較 演 算 子 比 較 演 算 子 は 基 本 的 なすべてのタイプの 変 数 ( 数 値 日 付 文 字 列 ブール 型 ) に 対 して 適 用 できます = 数 値 日 付 文 字 列 のデータについて 両 者 が 等 しいかを 判 定 <> 数 値 日 付 文 字 列 のデータについて 両 者 が 等 しくないかを 判 定 > 数 値 日 付 文 字 列 のデータについて 左 辺 が 右 辺 より 大 きいかを 判 定 >= 数 値 日 付 文 字 列 のデータについて 左 辺 が 右 辺 より 大 きいまたは 等 しいかを 判 定 < 数 値 日 付 文 字 列 のデータについて 左 辺 が 右 辺 より 小 さいかを 判 定 <= 数 値 日 付 文 字 列 のデータについて 左 辺 が 右 辺 より 小 さいまたは 等 しいかを 判 定

OpenOffice.org Basic は VBA の Like 比 較 演 算 子 をサポートしていません

分 岐 処 理 指 定 した 条 件 に 応 じて プログラム 内 の 特 定 のコードブロックのみを 実 行 させたい 場 合 など は 分 岐 ステートメントを 使 用 します If...Then...Else 使 用 頻 度 の 高 い 分 岐 ステートメントの 1 つとして If ステートメントがあり これは 次 のように 使 用 します If A > 3 Then B = 2 End If このサンプルコードで B = 2 の 行 が 実 行 されるのは 変 数 A の 値 が 3 より 大 きい 場 合 だけ です If ステートメントのバリエーションとして If/Else 句 があります If A > 3 Then B = 2 Else B = 0 End If このサンプルコードで 変 数 B に 代 入 される 値 は 変 数 A が 3 以 上 の 場 合 は 2 となり それ 以 外 の 場 合 B に 代 入 される 値 は 0 となります If ステートメントをカスケード 化 して 次 のようなより 複 雑 な 条 件 分 岐 を 行 わせることもできま す If A = 0 Then B = 0 ElseIf A < 3 Then B = 1 Else B = 2 End If このサンプルコードでは 変 数 A の 値 が 0 であれば 変 数 B には 0 が 代 入 されます 変 数 A の 値 が 3 よりも 小 さければ (ただし 0 とは 等 しくない) 変 数 B には 1 が 代 入 されます こ れら 以 外 の 場 合 (つまり 変 数 A の 値 が 3 以 上 の 場 合 ) 変 数 B には 2 が 代 入 されます

Select...Case Select...Case ステートメントは If ステートメントのカスケード 化 と 同 等 の 機 能 を 果 たす もので 複 数 の 条 件 に 対 する 分 岐 を 行 う 際 に 使 用 します Select Case DayOfWeek Case 1: NameOfWeekday = "Sunday" Case 2: NameOfWeekday = "Monday" Case 3: NameOfWeekday = "Tuesday" Case 4: NameOfWeekday = "Wednesday" Case 5: NameOfWeekday = "Thursday" Case 6: NameOfWeekday = "Friday" Case 7: NameOfWeekday = "Saturday" End Select このサンプルコードでは 変 数 DayOfWeek の 値 が 1 であれば Sunday 2 であれば Monday というように 各 曜 日 の 名 前 を 番 号 で 識 別 させています Select コマンドによる 条 件 判 定 は 単 純 な 1 対 1 に 限 定 されるものではなく Case による 個 々の 分 岐 指 定 部 には 比 較 演 算 子 を 使 ったり 複 数 の 条 件 式 をリスト 化 して 一 括 指 定 するこ とが 可 能 です 次 のサンプルコードでは 特 に 多 用 される 条 件 判 定 の 例 を 示 します Select Case Var Case 1 To 5 '... Var is between the numbers 1 and 5 Case 6, 7, 8 '... Var is 6, 7 or 8 Case Var > 8 And Var < 11 '... Var is greater than 8 and less than 11 Case Else '... all other instances End Select

ループ ループは 特 定 のコードブロックを 指 定 した 回 数 繰 り 返 し 実 行 させる 場 合 などに 使 用 します またループの 実 行 回 数 は 不 特 定 値 とすることも 可 能 です For...Next For...Next ループは 特 定 回 数 の 繰 り 返 し 実 行 を 行 うためのものです この 場 合 の 繰 り 返 し 回 数 は ループカウンタを 使 って 指 定 します このサンプルコードでは 変 数 I はループカ ウンタで 初 期 値 は 1 です このカウンタの 値 は ループを 1 回 実 行 するごとに 1 ずつ 増 加 されます 最 終 的 に 変 数 I の 値 が 10 に 等 しくなった 段 階 で ループは 終 了 します Dim I For I = 1 To 10 '... Inner part of loop Next I ループカウンタの 増 分 値 を 1 以 外 にする 場 合 は 次 のように Step を 使 用 します Dim I For I = 1 To 10 Step 0.5 '... Inner part of loop Next I 上 記 のサンプルコードでは ループを 1 回 実 行 するごとにカウンタの 値 は 0.5 ずつ 増 加 され るため ループは 最 終 的 に 19 回 実 行 されることになります ループの 増 分 値 には 負 の 値 を 指 定 することもできます Dim I For I = 10 To 1 Step -1 '... Inner part of loop Next I 上 記 のサンプルコードではカウンタの 初 期 値 を 10 として ループを 1 回 実 行 するごとにカウ ンタの 値 を 1 ずつ 減 算 させ 最 終 的 に 1 となるまでループを 実 行 しています Exit For ステートメントを 使 用 すると For ループを 強 制 的 に 終 了 させることができます 次 のサンプルコードでは ループの 5 巡 目 で 強 制 的 に 終 了 します

Dim I For I = 1 To 10 If I = 5 Then Exit For End If '... Inner part of loop Next I For Each VBA の For Each...Next ループバリアントは OpenOffice.org Basic でサポートされ ています For Each ループは For...Next ループのように 明 示 的 なカウンタは 使 用 しませ ん For Each ループは n 回 繰 り 返 す ではなく このセット 内 のすべてに 対 して 実 行 す る ということです たとえば 以 下 の 通 りです Const d1 = 2 Const d2 = 3 Const d3 = 2 Dim a(d1, d2, d3) For Each i In a() '... Inner part of loop Next i Do...Loop Do...Loop は 特 定 回 数 のループを 行 うものではありません Do...Loop によるループ 処 理 は 特 定 の 条 件 が 満 たされるまで 繰 り 返 し 実 行 されます Do...Loop には 4 つのバー ジョンがあります 最 初 の 2 つのサンプルコードでは ループ 内 のコードがまったく 実 行 され ない 可 能 性 があります ( 0 回 実 行 というロジック) その 後 のサンプルコードでは ループ 内 のコードが 最 低 1 回 実 行 されます ( 次 のサンプルコードで A > 10 は 任 意 の 条 件 を 示 しま す) 1. Do While...Loop バージョン Do While A > 10 '... loop body Loop ここではすべてのパスの 前 に While の 後 の 条 件 が true であるかどうかが 確 認 され その 場 合 のみループが 実 行 されます

2. Do Until...Loop バージョン Do Until A > 10 '... loop body Loop ここでは Until の 後 の 条 件 が false であると 評 価 されれば ループが 実 行 されます 3. Do...Loop While バージョン Do '... loop body Loop While A > 10 ここでは 最 初 のループパスの 後 の 条 件 のみが 確 認 され While の 後 の 条 件 が false であ ると 評 価 されると 終 了 します 4. Do...Loop Until バージョン Do '... loop body Loop Until A > 10 ここでも 最 初 のパスの 後 の 条 件 が 確 認 されますが Until の 後 の 条 件 が true であると 評 価 されると 終 了 します For...Next ループと 同 様 に Do...Loop にも 強 制 終 了 用 のコマンドが 用 意 されています この 場 合 は Exit Do コマンドにより ループ 内 の 任 意 の 位 置 で 強 制 終 了 が 行 えます Do If A = 4 Then Exit Do End If '... loop body Loop While A > 10

プログラミングの 例 : 埋 め 込 みループを 使 用 したソー ト ループの 用 途 としては リストの 検 索 値 の 取 得 複 雑 な 数 値 計 算 など 様 々な 処 理 で 利 用 さ れています 次 のサンプルコードは 2 つのループ 処 理 を 用 いてリストを 名 前 でソートするア ルゴリズムです Sub Sort Dim Entry(1 To 10) As String Dim Count As Integer Dim Count2 As Integer Dim Temp As String Entry(1) = "Patty" Entry(2) = "Kurt" Entry(3) = "Thomas" Entry(4) = "Michael" Entry(5) = "David" Entry(6) = "Cathy" Entry(7) = "Susie" Entry(8) = "Edward" Entry(9) = "Christine" Entry(10) = "Jerry" For Count = 1 To 9 For Count2 = Count + 1 To 10 If Entry(Count) > Entry(Count2) Then Temp = Entry(Count) Entry(Count) = Entry(Count2) Entry(Count2) = Temp End If Next Count2 Next Count For Count = 1 To 10 Print Entry(Count) Next Count End Sub ここでは 2 つの 値 を 1 組 にして 順 序 の 入 れ 替 え 作 業 を 行 い 最 終 的 に 昇 順 で 並 ぶまでこの 作 業 を 繰 り 返 しています その 際 に 個 々の 変 数 値 は 1 つずつ 位 置 をずらしていきますが こ の 動 きはちょうど 泡 が 移 動 する 様 子 に 似 ています このような 理 由 から このタイプのアルゴ リズムは 一 般 に バブルソート と 呼 ばれています

プロシージャと 関 数 プロシージャと 関 数 こそは プログラム 構 造 の 中 心 的 な 役 割 を 担 うものです これらを 利 用 す ることで 複 雑 なプログラムを 個 々のタスクごとにブロック 化 することができます プロシージャ プロシージャは プログラム 内 の 特 定 の 処 理 を 実 行 するユニットのことですが 戻 り 値 を 返 す ことはありません 構 文 は 次 のようになります Sub Test '... here is the actual code of the procedure End Sub このサンプルコードでは Test という 名 前 のプロシージャを 定 義 していますが このプロシー ジャによる 処 理 は プログラム 内 の 任 意 の 位 置 から 実 行 させることができます プロシージャ を 呼 び 出 すには 次 のようにプログラム 内 の 該 当 行 にプロシージャ 名 を 記 述 するだけです 関 数 関 数 も プロシージャと 同 様 に 特 定 のプログラムブロックを 1 つのユニットとしてまとめたも のです プロシージャとの 相 違 点 として 関 数 は 戻 り 値 を 返 すという 点 があります Function Test '... here is the actual code of the function Test = 123 End Function 戻 り 値 は 簡 単 な 代 入 を 使 用 して 割 り 当 てます この 代 入 は 関 数 の 末 尾 で 実 行 する 必 要 は なく 関 数 内 の 任 意 の 位 置 で 行 えます 上 記 のようにして 定 義 した 関 数 は プログラム 内 の 任 意 の 位 置 から 呼 び 出 すことができます Dim A A = Test このコードは 変 数 A を 宣 言 してから 関 数 Test の 戻 り 値 をその 中 に 代 入 しています 戻 り 値 として 返 す 値 は 関 数 内 で 何 回 も 書 き 換 えることが 可 能 です 通 常 の 変 数 への 代 入 操 作 と 同 様 に 次 のサンプルでも 実 際 に 返 される 関 数 の 戻 り 値 は 最 後 に 代 入 した 値 となりま す

Function Test Test = 12 '... Test = 123 End Function このサンプルコードの 場 合 関 数 の 戻 り 値 は 123 となります 戻 り 値 の 代 入 を 行 わなかった 場 合 その 関 数 からは zero 値 が 返 されます ( 数 値 関 数 の 場 合 は 0 文 字 列 関 数 の 場 合 は 空 白 文 字 列 ) 関 数 の 戻 り 値 のデータ 型 は 任 意 の 種 類 を 指 定 できます この 場 合 のデータ 型 宣 言 は 通 常 の 変 数 宣 言 と 同 様 の 手 順 で 行 えます Function Test As Integer '... here is the actual code of the function End Function プロシージャと 関 数 の 強 制 終 了 OpenOffice.org Basic では Exit Sub および Exit Function コマンドを 使 用 して 実 行 途 中 のプロシージャや 関 数 を 強 制 終 了 させることができ エラーの 処 理 などに 便 利 です これらのコマンドは プロシージャや 関 数 を 強 制 終 了 させてから これらを 呼 び 出 した 行 にま でプログラムの 実 行 行 を 戻 します 次 のサンプルコードでは 変 数 ErrorOccured の 値 が True になった 場 合 に プロシージャ を 強 制 終 了 します Sub Test Dim ErrorOccured As Boolean '... If ErrorOccured Then Exit Sub End If '... End Sub パラメータの 渡 し 方 関 数 やプロシージャには 1 つまたは 複 数 のパラメータ ( 引 数 ) を 渡 すことができます パラ メータは 関 数 やプロシージャの 名 前 の 後 に かっこで 囲 んで 指 定 する 必 要 があります 次 の 例 では 整 数 値 A と 文 字 列 B をパラメータとして 予 想 するプロシージャを 定 義 しています

Sub Test (A As Integer, B As String) '... End Sub 通 常 OpenOffice.org Basic では パラメータの 渡 し 方 は 参 照 です この 場 合 呼 び 出 し たプロシージャや 関 数 が 終 了 しても これらの 変 数 値 に 対 して 行 われた 変 更 はそのまま 維 持 されます Sub Test Dim A As Integer A = 10 ChangeValue(A) ' The parameter A now has the value 20 End Sub Sub ChangeValue(TheValue As Integer) TheValue = 20 End Sub この 例 では 値 A は Test 関 数 で 定 義 されており それがパラメータとして ChangeValue 関 数 に 渡 されます その 後 値 は 20 に 変 更 されて TheValue に 渡 されますが これは 関 数 が 終 了 しても 維 持 されます またパラメータに 対 する 変 更 をオリジナルの 変 数 の 内 容 に 反 映 させたくない 場 合 は パラ メータを 値 渡 しで 与 えることも 可 能 です パラメータを 値 で 渡 すよう 指 定 するには 関 数 ヘッ ダで 変 数 宣 言 の 前 にキーワード ByVal を 指 定 する 必 要 があります 前 の 例 では 関 数 ChangeValue を 置 き 換 えた 場 合 上 位 の 変 数 A はこの 変 更 による 影 響 を 受 けません 関 数 ChangeValue を 呼 び 出 した 後 も 変 数 A の 値 は 10 のままです Sub ChangeValue(ByVal TheValue As Integer) TheValue = 20 End Sub OpenOffice.org におけるプロシージャや 関 数 へのパラメータの 渡 し 方 は 基 本 的 に VBA と 同 じです 標 準 でパラメータは 参 照 渡 しとして 与 えられます パラメータを 値 として 渡 すには ByVal キーワードを 使 用 します VBA では キーワード ByRef を 使 用 して 強 制 的 に 参 照 でパラメータを 渡 すこともできます OpenOffice.org Basic では 参 照 渡 しが 既 に 標 準 的 な 方 法 なので OpenOffice.org Basic はこの キーワードを 認 識 しますが 無 視 します オプションパラメータ 関 数 やプロシージャを 呼 び 出 す 際 には 必 要 なパラメータをすべて 指 定 する 必 要 があります

OpenOffice.org Basic では パラメータをオプションとして 定 義 できます つまり 対 応 する 値 が 呼 び 出 しに 含 まれない 場 合 OpenOffice.org Basic は 空 のパラメータを 渡 します 次 の 例 では パラメータ A は 必 須 ですが パラメータ B はオプションです Sub Test(A As Integer, Optional B As Integer) '... End Sub IsMissing 関 数 を 使 うと 呼 び 出 し 時 にパラメータが 指 定 されているかをチェックできます Sub Test(A As Integer, Optional B As Integer) Dim B_Local As Integer ' Check whether B parameter is actually present If Not IsMissing (B) Then B_Local = B ' B parameter present Else B_Local = 0 ' B parameter missing -> default value 0 End If '... Start the actual function End Sub 上 記 のサンプルコードでは まずパラメータ B に 値 が 指 定 されているかをチェックしてから チェック 結 果 に 応 じて 局 所 変 数 B_Local に 渡 す 値 を 変 えています 対 応 するパラメータが 存 在 しない 場 合 B_Local には 渡 されたパラメータではなく デフォルト 値 (この 例 では 0) が 代 入 されます VBA のキーワード ParamArray は OpenOffice.org Basic ではサポートされていません 再 帰 処 理 再 帰 処 理 とは 関 数 やプロシージャが 処 理 中 に 自 分 自 身 を 呼 び 出 すことで 特 定 の 終 了 条 件 を 満 たすまで このような 処 理 を 実 行 し 続 けます たとえば 再 帰 関 数 の 場 合 終 了 条 件 が 満 たされた 段 階 で 戻 り 値 を 返 します 次 のサンプルコードは 再 帰 関 数 の 使 用 例 で 42-42 3.14 の 各 数 値 の 階 乗 を 再 帰 処 理 で 求 めています

Sub Main Msgbox CalculateFactorial( 42 ) Msgbox CalculateFactorial( -42 ) factorial!" Msgbox CalculateFactorial( 3.14 ) factorial!" End Sub ' Displays 1,40500611775288E+51 ' Displays "Invalid number for ' Displays "Invalid number for Function CalculateFactorial( Number ) If Number < 0 Or Number <> Int( Number ) Then CalculateFactorial = "Invalid number for factorial!" ElseIf Number = 0 Then CalculateFactorial = 1 Else ' This is the recursive call: CalculateFactorial = Number * CalculateFactorial( Number - 1 ) Endif End Function 上 記 のサンプルコードでは 数 値 42 の 階 乗 を 計 算 する 際 に 関 数 CalculateFactorial を 再 帰 的 に 呼 び 出 し 基 本 条 件 0! = 1 になった 時 点 で 処 理 を 終 了 しています 再 帰 回 数 のレベルは ソフトウェアのプラットフォームごとに 異 なります Windows の 場 合 再 帰 回 数 のレ ベルは 5800 です Solaris および Linux の 場 合 再 帰 回 数 のレベルは スタックサイズの 計 算 結 果 を 基 に 計 算 されます

エラー 処 理 プログラミングを 進 める 際 に 大 きな 問 題 となるのが エラーに 対 する 修 正 タスクです OpenOffice.org Basic には エラー 処 理 用 に 機 能 が 各 種 用 意 されています On Error 命 令 On Error 命 令 は エラー 処 理 の 中 心 となる 機 能 です Sub Test On Error Goto ErrorHandler '... undertake task during which an error may occur Exit Sub ErrorHandler: '... individual code for error handling End Sub ここで On Error Goto ErrorHandler 行 により OpenOffice.org Basic が エラー 発 生 時 にどのように 動 作 するか 指 定 しています たとえばこの 場 合 の Goto ErrorHandler は 現 在 の 実 行 行 を 中 断 させて ErrorHandler: で 指 定 するコードブロックを OpenOffice.org Basic に 実 行 させます Resume コマンド Resume Next コマンドを 使 うと エラーハンドラ 用 コードを 実 行 した 後 で エラー 発 生 行 の 次 の 行 にプログラム 実 行 を 戻 して 処 理 を 再 開 させることができます ErrorHandler: '... individual code for error handling Resume Next また Resume Proceed コマンドを 使 用 すると エラーハンドラ 用 コードを 実 行 した 後 のプログ ラムの 実 行 開 始 位 置 を 指 定 することができます ErrorHandler: '... individual code for error handling Resume Proceed Proceed: '... the program continues here after the error

エラーが 発 生 した 際 に エラーメッセージを 表 示 させずにプログラムを 継 続 させるには 次 の ように 記 述 します Sub Test On Error Resume Next '... perform task during which an error may occur End Sub この On Error Resume Next コマンドの 作 用 範 囲 はプログラム 全 域 に 及 ぶので 使 用 す る 際 には 注 意 が 必 要 です エラーの 関 連 情 報 の 取 得 エラー 処 理 を 行 う 場 合 エラーの 内 容 と 発 生 箇 所 の 情 報 が 確 認 できると 有 用 です Err 変 数 には 発 生 したエラー 番 号 が 格 納 されます Error$ 変 数 には 発 生 したエラーの 内 容 が 格 納 されます Erl 変 数 には エラーの 発 生 した 行 番 号 が 格 納 されます このメソッドは 次 のような 形 式 で 使 用 します MsgBox "Error " & Err & ": " & Error$ & " (line : " & Erl & ")" この 場 合 は メッセージウィンドウにエラーの 内 容 が 表 示 されます エラーの 内 容 は OpenOffice.org Basic では Err, Error$ Erl 変 数 に 格 納 されますが VBA では Err という 名 前 のオブジェクトにまとめられます これらのエラー 情 報 は 次 に Resume または On Error コマンドを 実 行 するまで 維 持 され これらを 実 行 した 段 階 でリセットされます VBA では Err オブジェクトに 対 する Err.Clear メソッドにより エラー 情 報 をリセットします OpenOffice.org Basic では On Error または Resume コマンドがこの 機 能 を 果 たしています 効 率 的 なエラー 処 理 のヒント エラーハンドラを 設 定 する On Error コマンドも 実 行 行 を 復 帰 させる Resume コマンドも いわゆる Goto コマンドの 一 種 です この 種 の 実 行 行 をジャンプさせるコマンドは エラーの 発 生 を 予 防 する 観 点 からも コード 内 での 多 用 を 避 けるべきです また On Error Resume Next コマンドは エラーの 関 連 情 報 をリセットしてしまうので その 使 用 に 当 たっては 注 意 が 必 要 です

最 善 の 方 法 は プログラム 内 でエラー 処 理 を 行 うブロックを 一 カ 所 にまとめておくことです つ まり エラー 処 理 ブロックをプログラム 本 体 のコード 部 から 分 離 しておき エラー 処 理 が 終 わっ ても 実 行 行 はエラー 発 生 行 にジャンプさせないようにします 次 のサンプルコードは エラー 処 理 の 流 れを 示 しています Sub Example ' Define error handler at the start of the function On Error Goto ErrorHandler '... Here is the actual program code On Error Goto 0 ' Deactivate error handling ' End of regular program implementation Exit Sub ' Start point of error handling ErrorHandler: ' Check whether error was expected If Err = ExpectedErrorNo Then '... Process error Else '... Warning of unexpected error End If On Error Goto 0 ' Deactivate error handling End Sub この 手 続 きでは 一 番 最 初 にエラーハンドラを 設 定 してから プログラム 本 体 のコードを 記 述 しています そしてプログラム 本 体 のコードの 末 尾 で On Error Goto 0 によりエラーハンド ラ 機 能 を 解 除 し Exit Sub コマンドにより 手 続 きの 実 行 を 終 了 させるようにしています (End Sub との 違 いに 注 意 ) このサンプルコードでは あらかじめ 想 定 されたエラーが 発 生 したのかを エラー 番 号 を チェックすることで 判 定 して (この 例 では 判 定 用 に ExpectedErrorNo という 定 数 を 使 用 ) その 結 果 に 応 じてエラー 処 理 の 内 容 を 分 岐 させています 想 定 外 のエラーが 発 生 していた 場 合 は 警 告 を 表 示 します このように 想 定 外 のエラーの 発 生 を 検 出 するには エラー 番 号 を 使 ってチェックが 行 えます コード 末 尾 に On Error Goto 0 を 記 述 してあるのは エラー 情 報 (エラー 管 理 用 のシステ ム 変 数 Err に 記 録 されたエラーコード) をリセットして 次 回 以 降 に 発 生 するエラーを 正 確 に 記 録 させるためです

実 行 時 ライブラリ 以 降 の 節 では 実 行 時 ライブラリの 主 要 な 関 数 について 説 明 します 変 換 関 数 文 字 列 日 付 および 時 刻 ファイルおよびディレクトリの 操 作 メッセージボックスとインプットボックス その 他 の 関 数

変 換 関 数 プログラムを 構 築 する 場 合 ある 変 数 の 変 数 型 を 他 の 種 類 に 変 換 する 必 要 がよくあります 変 数 型 の 暗 黙 的 変 換 と 明 示 的 変 換 変 数 型 を 変 換 する 一 番 簡 単 な 方 法 は 代 入 処 理 を 利 用 することです Dim A As String Dim B As Integer B = 101 A = B このサンプルコードでは 変 数 A は 文 字 列 型 変 数 B は 整 数 型 として 宣 言 しています そし てこのような 状 況 で 変 数 B に 変 数 A を 代 入 すると 自 動 的 に OpenOffice.org Basic が 変 数 B の 変 数 型 を 文 字 列 型 に 変 換 します このような 変 換 では 見 た 目 よりも 複 雑 な 処 理 が 行 われており まず 変 数 B の 整 数 値 が 2 バイト 長 のデータとして 作 業 用 メモリに 格 納 されます A 一 方 の 変 数 は 文 字 列 型 であるので 各 文 字 ( 文 字 や 数 字 ) ごとに 1 または 2 バイト 長 の データとしてメモリ 内 に 格 納 されています このため 変 数 B に 変 数 A を 代 入 する 際 には 変 数 B 側 の 内 部 フォーマットに 一 致 するよう 変 数 A のデータを 変 換 しておく 必 要 があります 他 の 多 くのプログラミング 言 語 とは 異 なり Basic の 場 合 変 数 型 の 変 換 は 自 動 的 に 実 行 さ れます ただし 予 想 外 の 結 果 が 生 じることがあります ここで どのような 問 題 が 生 じるかに ついて 次 のサンプルコードを 使 って 検 討 をしてみます Dim A As String Dim B As Integer Dim C As Integer B = 1 C = 1 A = B + C 一 見 するとこのコードに 特 に 問 題 はなさそうですが 目 に 見 えない 形 で 落 とし 穴 が 潜 んでい ます Basic インタプリタは 最 初 に 加 算 演 算 を 行 なってから その 結 果 を 文 字 列 変 数 に 代 入 するので ここで 得 られる 結 果 は 2 という 文 字 列 になります 逆 に Basic インタプリタが 最 初 に 変 数 B と 変 数 C の 値 を 文 字 列 に 変 換 し その 結 果 に 対 してプラス 記 号 による 演 算 を 適 用 するのであれば 得 られる 結 果 は 11 という 文 字 列 になりま す 同 様 の 問 題 は バリアント 型 変 数 を 使 用 する 際 にも 生 じます

Dim A Dim B Dim C B = 1 C = "1" A = B + C バリアント 型 変 数 には 数 値 と 文 字 列 の 両 方 のデータを 格 納 できるため この 変 数 A に 代 入 さ れるのが 数 値 2 なのか 文 字 列 11 なのかは 不 明 です このような 変 数 型 の 暗 黙 的 変 換 に 起 因 するエラーを 回 避 するには プログラム 内 にバリアン ト 型 変 数 を 使 用 しないなど このような 点 に 注 意 してプログラミングを 行 う 必 要 があります 変 数 型 の 暗 黙 的 変 換 に 起 因 するエラーを 防 止 する 観 点 から OpenOffice.org Basic には 各 種 の 変 換 関 数 が 用 意 されており 様 々なデータ 型 に 対 する 変 換 操 作 を 行 えるようになって います CStr(Var) 任 意 の 型 のデータを 文 字 列 に 変 換 します CInt(Var) 任 意 の 型 のデータを 整 数 値 に 変 換 します CLng(Var) 任 意 の 型 のデータをロング 整 数 値 に 変 換 します CSng(Var) 任 意 の 型 のデータを 単 精 度 値 に 変 換 します CDbl(Var) 任 意 の 型 のデータを 倍 精 度 値 に 変 換 します CBool(Var) 任 意 の 型 のデータをブール 値 に 変 換 します CDate(Var) 任 意 の 型 のデータを 日 付 データに 変 換 します これらの 変 換 関 数 を 使 用 することで OpenOffice.org Basic による 型 変 換 を 明 示 的 に 実 施 することができます Dim A As String Dim B As Integer Dim C As Integer B = 1 C = 1 A = CStr(B + C) A = CStr(B) + CStr(C) ' B and C are added together first, then ' converted to the string "2" ' B and C are converted into a string,then ' combined to produce the string "11"

このサンプルコードの 最 初 の 変 換 操 作 では OpenOffice.org Basic に 整 数 値 の 加 算 を 行 わせてから その 結 果 を 文 字 列 に 変 換 しています 変 数 A に 代 入 される 値 は 文 字 列 の 2 と なります 2 番 目 の 変 換 操 作 では 整 数 変 数 の 値 を 文 字 列 に 変 換 してから 代 入 時 に 結 合 処 理 を 行 なっています 変 数 A に 代 入 される 値 は 文 字 列 の 11 となります 数 値 変 換 用 の CSng および CDbl 関 数 は 小 数 を 扱 うこともできます ただしこの 場 合 の 小 数 点 には 各 地 域 ごとの 各 ロケール 設 定 で 指 定 されている 小 数 点 記 号 を 使 用 する 必 要 があ ります また 逆 に CStr メソッドで 数 値 日 付 時 刻 のデータを 変 換 する 際 には 各 ロケール 設 定 による 書 式 が 適 用 されます Val 関 数 は Csng Cdbl メソッドおよび Cstr メソッドとは 使 用 法 が 少 し 異 なります この 関 数 は 文 字 列 を 数 値 に 変 換 しますが 小 数 点 として 使 える 記 号 はピリオドに 固 定 されています Dim A As String Dim B As Double A = "2.22" B = Val(A) ' Is converted correctly regardless of the ' country-specific settings 変 数 の 内 容 の 確 認 場 合 によってはデータの 変 換 ができないことがあります Dim A As String Dim B As Date A = "test" B = A ' Creates error message このサンプルコードからも 分 かるように 日 付 変 数 に test という 文 字 列 は 代 入 できないの で このような 場 合 Basic インタプリタはエラーメッセージを 表 示 します 同 様 のことは ブー ル 型 変 数 に 文 字 列 を 代 入 するような 場 合 にも 当 てはまります Dim A As String Dim B As Boolean A = "test" B = A ' Creates error message 上 記 のサンプルコードでも Basic インタプリタはエラーメッセージを 表 示 します このようなエラーは 代 入 を 行 う 前 のプログラム 行 で 代 入 させるデータ 型 が 変 数 型 と 一 致 す るかをチェックさせることで 回 避 できます OpenOffice.org Basic にはこのような 処 理 を 行 うために 次 のテスト 関 数 が 用 意 されています IsNumeric(Value)

Value の 値 が 数 値 であるかチェックします IsDate(Value) Value の 値 が 日 付 であるかチェックします IsArray(Value) Value の 値 が 配 列 であるかチェックします これらの 関 数 は ユーザーの 入 力 値 を 受 け 取 る 際 に 有 用 です たとえば 数 値 や 日 付 などの 想 定 される 形 式 のデータをユーザーが 入 力 したかをチェックできます If IsNumeric(UserInput) Then ValidInput = UserInput Else ValidInput = 0 MsgBox "Error message." End If 上 記 のサンプルコードでは 変 数 UserInput の 値 が 数 値 であれば その 値 を 変 数 ValidInput に 代 入 しています 変 数 UserInput の 値 が 数 値 でなければ 変 数 ValidInput には 0 を 代 入 して エラーメッセージを 表 示 します OpenOffice.org Basic の 組 み 込 み 関 数 には このような 数 値 日 付 配 列 に 対 するテスト 関 数 は 用 意 されていますが ブール 値 に 対 するテスト 関 数 は 用 意 されていません このような チェック 機 能 が 必 要 であれば 次 の 関 数 IsBoolean のような 関 数 を 記 述 することで 実 装 で きます Function IsBoolean(Value As Variant) As Boolean On Error Goto ErrorIsBoolean: Dim Dummy As Boolean Dummy = Value IsBoolean = True On Error Goto 0 Exit Sub ErrorIsBoolean: IsBoolean = False On Error Goto 0 End Function 上 記 の 関 数 IsBoolean では ブール 型 の 局 所 変 数 Dummy を 用 意 して 与 えられたデータ をその 中 に 代 入 させています この 代 入 が 問 題 なく 実 行 できれば 関 数 の 戻 り 値 として True を 返 します そして 代 入 に 失 敗 した 場 合 は 実 行 時 エラーが 発 生 するので このテスト 関 数 の 実 行 は 中 断 され エラー 処 理 を 行 います OpenOffice.org Basic の 文 字 列 に 含 まれている 数 値 以 外 の 値 が 数 字 に 割 り 当 てられていると OpenOffice.org Basic はエラーメッセージを 表 示 せず 最 初 の 無 効 な 文 字 で 文 字 列 の 変 換 を 停 止 しま す VBA の 場 合 は これとは 異 なる 処 理 が 行 われます VBA でこのような 代 入 を 行 おうとすると エラー が 発 生 し 処 理 が 中 断 されます

文 字 列 文 字 コードの 操 作 OpenOffice.org Basic の 文 字 列 操 作 では 文 字 コードとして Unicode が 使 用 されます Asc および Chr 関 数 は Unicode のコード 番 号 と 該 当 する 文 字 との 間 の 変 換 を 行 います 次 のサンプルコードでは 各 種 の Unicode 記 号 を 該 当 するコード 番 号 に 変 換 します Code = Asc("A") ' Latin letter A (Unicode-value 65) Code = Asc(" ") ' Euro character (Unicode-value 8364) Code = Asc("Л") ' Cyrillic letter Л (Unicode-value 1083) 次 のサンプルコードは これらと 逆 方 向 の 変 換 を 実 行 します MyString = Chr(13) ここでは コード 番 号 13 が 割 り 当 てられている 文 字 ( 改 行 コード) を 文 字 列 変 数 MyString に 代 入 しています このように Chr 関 数 は Basic プログラミング 内 で 制 御 コードを 文 字 列 変 数 に 代 入 する 際 に よく 使 われます たとえば 次 のサンプルコードのように 使 用 します MyString = Chr(9) + "This is a test" + Chr(13) ここでは 文 字 列 の 前 にタブコード (Unicode 値 9) を 後 ろに 改 行 コード (Unicode 値 13) を 付 けています 文 字 列 の 一 部 の 取 得 OpenOffice.org Basic には 文 字 列 の 一 部 の 取 得 用 に 次 の 4 つの 関 数 が 用 意 されてい ます Left(MyString, Length) 文 字 列 MyString の 左 端 から Length 分 の 文 字 を 取 得 します Right(MyString, Length) 文 字 列 MyString の 右 端 から Length 分 の 文 字 を 取 得 します Mid(MyString, Start, Length) 文 字 列 MyString の 左 端 Start 文 字 目 から Length 分 の 文 字 を 取 得 します Len(MyString) 文 字 列 MyString の 文 字 数 を 返 します