LibreOffice Calc 数式アシスタント
LibreOffice Calc の数式を素早く作成・テスト・管理するための Python ツールです。お気に入りシステム、チーム同期、多言語対応、プラグインマネージャーを搭載しています。
🚀 機能
📑 60 以上の関数を収録した 4 つのタブ
🌐 38 言語対応(ヒンディー語はフォントの自動インストール付き)
⭐ お気に入りシステム(ローカル保存およびネットワークドライブ経由のチーム同期)
🛠 チームお気に入り用管理者パネル(パスワード保護)
📋 シンタックスハイライト付きのコピー可能な数式
✏️ 元に戻す/やり直し対応の編集可能な出力フィールド
📖 組み込みヘルプおよび関数リファレンス(言語別)
💾 自動保存(JSON 形式、アトミック書き込み)
🌙 ダークモード
🔌 独自の数式プラグインを作成できるプラグインマネージャー
🔤 RTL 対応(右から左)– 書字方向の自動検出
🗄️ バックアップ&復元 – 名前とパスワードですべての設定とお気に入りを保存
⌨️ ウィンドウの最小化/復元用グローバルショートカット Ctrl+F12
🔍 JSON バリデーター – languages.json と formula_explanations.json の自動チェックと修正
🖥️ 使い方
1. 入力データの設定
セル範囲(例:A1:A10)
セル 1 / セル 2(例:A1、B1)
任意パラメーター(例:テキストやインデックス)
絶対参照モードの選択:A1、$A1、A$1、$A$1
2. 関数を選択する タブを選んで関数をクリックすると、数式が即座に生成されます。
3. 数式を調整する 生成された数式は出力フィールドで直接編集できます。
4. コピーする ワンクリックでクリップボードに転送できます(シンタックスカラー付き)。
5. お気に入りを活用する
⭐ 保存 → 現在の数式を保存(Ctrl+S)
📂 読み込み → 数式を再利用
❌ 削除 → Delete キーまたはボタン
🕐 履歴 → 最近使用した数式
📊 タブ一覧
タブ 1 – 基本関数 + - * / ^ SUM、AVERAGE、MIN、MAX、MEDIAN、COUNT、COUNTA、SUMPRODUCT
タブ 2 – 高度な関数 IF、AND、OR、NOT SUMIF、COUNTIF、AVERAGEIF、SUMIFS、STDEV、VAR、COUNTBLANK、LARGE
タブ 3 – 日付とテキスト TODAY、NOW、YEAR、MONTH、DAY、DATE、DATEDIF、WEEKDAY CONCATENATE、LEN、LEFT、RIGHT、MID、UPPER、LOWER、TRIM
タブ 4 – 検索と丸め VLOOKUP、HLOOKUP、INDEX、MATCH、INDEX+MATCH ROUND、ROUNDUP、ROUNDDOWN、INT、TRUNC、ABS、MOD、SQRT、RAND
📖 LibreOffice ドキュメントからの数式の説明
formula_explanations.json ファイルは、LibreOffice Calc の公式ドキュメント(https://help.libreoffice.org)から直接取得されます。
データソースと更新
説明、構文情報、例は LibreOffice の公式ヘルプサイトから取得されます
サポートされる言語はサイトで利用可能な翻訳によって異なります
ファイルには各関数について:名前、構文、説明、例、カテゴリーが含まれます
追加や修正は手動で行えます(JSON バリデーターを参照)
formula_explanations.json の構造
`json
{
"SUM": {
"ja": {
"syntax": "SUM(数値1; 数値2; ...)",
"description": "セル範囲のすべての数値を合計します。",
"example": "=SUM(A1:A10)"
},
"en": {
"syntax": "SUM(Number1; Number2; ...)",
"description": "Adds all numbers in a cell range.",
"example": "=SUM(A1:A10)"
}
}
}
`
| フィールド | 必須 | 説明 |
|-----------|------|------|
| syntax | ✅ | パラメーター付き数式の構文 |
| description | ✅ | 関数の簡単な説明 |
| example | ✅ | すぐに使える数式としての使用例 |
| note | ❌ | 任意のメモ |
💡 注意: 言語のエントリーが存在しない場合、アプリは自動的に英語版にフォールバックします。
---
🔍 言語ファイル用 JSON バリデーター
統合された JSON バリデーターは languages.json と formula_explanations.json の一貫性、完全性、国名の正確さをチェックして修正します。設定 → 🔍 JSON バリデーター からアクセスできます。
チェック内容
#### languages.json
✅ 38 言語すべてが存在する(ISO 639-1 言語コード)
✅ 国名と言語名が正しい(例:"ja" → "日本語")
✅ 言語コードの重複なし
✅ 必須フィールドが存在:name、native_name、flag、rtl
✅ RTL フラグが正しく設定(アラビア語、ヘブライ語、ペルシア語、ウルドゥー語 → "rtl": true)
#### formula_explanations.json
✅ 4 つのタブのすべての関数が登録されている
✅ 必須フィールドが存在:syntax、description、example
✅ 空のフィールドなし("" または null)
✅ 言語コードが languages.json と一致
修正機能
| エラータイプ | 自動修正 |
|------------|---------|
| 誤った国名 | ISO 標準に従った正しい名前に置換 |
| 言語エントリーの欠落 | 英語のフォールバックで補完 |
| 空の必須フィールド | 手動確認用に "[MISSING]" としてマーク |
| 重複エントリー | 重複を削除、より完全なエントリーを保持 |
| 誤った RTL フラグ | 既知の RTL コードに基づいて自動修正 |
使い方
1. 設定 → 🔍 JSON バリデーター を開く
2. ファイルを選択:languages.json または formula_explanations.json(または両方)
3. 🔎 チェック – 見つかった問題をすべて表示
4. 🛠 自動修正 – 自動で修正可能なエラーをすべて修正
5. 💾 保存 – 修正されたファイルをアトミックに書き戻し
6. 📋 レポートをエクスポート(任意)– すべての結果をテキストファイルに保存
⚠️ 注意: 自動修正の前に、元のファイルのバックアップコピーが作成されます(languages.json.bak / formula_explanations.json.bak)。
⭐ お気に入りシステム
独自の数式を保存して再利用できます
個人のお気に入りとチームのお気に入りを分けて管理
チームのお気に入りは書き込み保護(編集は管理者のみ可能)
重複エントリーを防止
個人のお気に入りは自由に並び替え可能
ネットワークドライブ経由で同期(任意で設定可能)
チーム同期
設定 → 🌐 ネットワークパス でネットワークドライブを指定できます(例:\\\\サーバー\\共有\\数式)。
起動時:ネットワークのお気に入りをローカルに保存(オフライン用バックアップ)
保存時:個人の数式はネットワークに書き込まれ、チームの数式は変更されません
🛠 管理者パネル
🛠 ボタンからアクセスできます。初回クリック時にパスワードを設定します(PBKDF2-SHA256、ハッシュ値のみ保存)。
チームの数式を追加・編集・削除
パスワードの変更
変更内容をネットワークドライブに直接書き込み
🔌 プラグインマネージャー
プラグインマネージャー(plugin_manager.py)は、Calc2 用の独自数式プラグインを作成・管理するためのスタンドアロンツールです。Calc2.py と同じフォルダーに配置されており、Calc2.py 内の 🔌 ボタンで起動します。
機能
新規プラグインの作成 — ステップバイステップのウィザード(名前、数式、翻訳、概要)
数式の追加 — 既存プラグインへの数式追加
翻訳の編集 — 38 言語すべてへの数式名の翻訳
プラグインフォルダーを開く — ファイルエクスプローラーで直接開く
プラグインの削除 — 確認ダイアログ付き
プラグインの構造
各プラグインは plugins/ 内のサブフォルダーとして配置され、2 つのファイルで構成されます。
`
plugins/
my_plugin/
plugin.json ← メタデータ(名前、バージョン、作者、説明)
formulas.json ← 翻訳付き数式
`
plugin.json の例:
`
{
"id": "my_plugin",
"enabled": true,
"version": "1.0",
"author": "あなたの名前",
"icon": "💰",
"name": { "en": "Finance Formulas", "ja": "財務数式" },
"description": { "en": "Useful formulas for financial calculations." }
}
`
formulas.json の例:
`
[
{
"formula": "=SUM(A1:A10)",
"name": { "en": "Sum of range", "ja": "範囲の合計" },
"description": { "en": "Adds all values in A1:A10." },
"category": { "en": "Basic", "ja": "基本" }
}
]
`
重要なお知らせ(⚠️ Important Notice)
プラグインマネージャーには ⚠️ Important Notice ボタンがあります。クリックすると、プラグインを正しく作成するためのルールを英語で記載したウィンドウが開きます。同じ内容は IMPORTANT_NOTICE.md にも記載されています。
🌐 多言語対応
38 言語をアプリ内で直接切り替えられます。
🌍 ボタンから言語ウィザードを使って新しい言語を追加することもできます。
ヒンディー語(हिंदी)に関する注意: ヒンディー語に初めて切り替えると、フォント *Noto Sans Devanagari* がシステム全体に一度だけインストールされます。この際、Windows が管理者権限を要求します。
🔤 RTL 対応(右から左)
右から左に書く言語は自動的に検出され、インターフェース全体がミラーリングされます:
アラビア語 (عربي) – RTL 自動検出
ヘブライ語 (עברית) – RTL 自動検出
ペルシア語 / ファルシー語 (فارسی) – RTL 自動検出
ウルドゥー語 (اردو) – RTL 自動検出
RTL モードで変わること: UI レイアウト全体がミラーリングされ、入力フィールドが RTL 配置を使用し、フォントが自動的に RTL 対応フォント(例:*Noto Sans Arabic*、*Noto Sans Hebrew*)に切り替わります。
💡 注意: 生成される LibreOffice 数式は常に LTR 構文のまま変わりません。変わるのはユーザーインターフェースの方向のみです。
🗄️ バックアップ&復元
バックアップの作成
設定 → 🗄️ バックアップを作成 から:
1. 名前 – 任意のラベル(例:Backup_2025年5月)
2. パスワード – バックアップは AES で暗号化されます。パスワードなしでは復元できません
3. 保存場所 – ローカルまたはネットワークドライブ
4. 💾 バックアップを作成 をクリック – .calc2backup ファイルが作成されます
内容: すべてのお気に入り、設定、チームのお気に入り(任意)、インストール済みプラグイン。
バックアップの復元
設定 → 📂 バックアップを復元 から:
1. バックアップファイルを選択(.calc2backup)
2. パスワードを入力
3. 復元の範囲を選択:お気に入りのみ / 設定のみ / すべて
4. 🔄 復元 をクリック
⚠️ 復元時に既存のデータが上書きされます。復元前に現在のデータの自動バックアップが提案されます。
💡 ヒント
$A$1 → 絶対参照(セルフィールド横のドロップダウンで選択)
Ctrl+S → 数式をお気に入りに保存
Ctrl+C → 数式をコピー(入力フィールドの外で)
Ctrl+Z / Ctrl+Y → 元に戻す/やり直し
Ctrl+F12 → ウィンドウを最小化/復元(Calc2 が最小化されていても機能します)
お気に入りリストの Delete キー → エントリーを削除
数式は生成後、出力フィールドで直接調整できます
📁 プロジェクト構成
`
Calc2.py ← メインプログラム
plugin_manager.py ← プラグインマネージャー
IMPORTANT_NOTICE.md ← プラグイン作成に関する注意事項
data/
README_de.md / README_en.md / ... ← 言語別ヘルプ
REFERENZ_de.md / REFERENZ_en.md / ... ← 言語別関数リファレンス
language/
languages.json ← UI 翻訳(38 言語)
formula_explanations.json
services/
language_tool.py ← ウィザード:新しい言語の追加
settings_service.py
auth_service.py
favorites_service.py
network_sync.py
install_service.py
backup_service.py ← バックアップ&復元
json_validator.py ← languages.json / formula_explanations.json のチェックと修正
plugins/ ← プラグインフォルダー(自動作成)
my_plugin/
plugin.json
formulas.json
fonts/
NotoSansDevanagari-Regular.ttf ← ヒンディー語フォント
NotoSansArabic-Regular.ttf ← アラビア語フォント (RTL)
NotoSansHebrew-Regular.ttf ← ヘブライ語フォント (RTL)
python/ ← 組み込み Python
python.exe
...
settings.json ← 自動作成
favorites.json ← ローカルお気に入り(自動作成)
`
🧠 技術的なポイント
アトミック書き込み → 保存時のファイル破損を防止
サービス指向アーキテクチャ → ロジックと UI を完全に分離
自動マイグレーション → 旧バージョンのお気に入り形式を検出して変換
堅牢なエラー処理 → 破損したファイルがあってもクラッシュしません
シンタックスハイライト → 数式をカラーで表示
ダークモード → 完全対応
プラグインシステム → 独自の数式プラグインで Calc2 を拡張可能
RTL エンジン → RTL 言語の自動検出、適切なフォントを含む UI の完全ミラーリング
バックアップ&復元 → 名前とパスワードによる AES 暗号化バックアップ、選択的復元
JSON バリデーター → languages.json と formula_explanations.json の自動チェックと修正(国名と必須フィールドを含む)
LibreOffice ソース → formula_explanations.json は LibreOffice Calc の公式ドキュメントから取得(https://help.libreoffice.org)
グローバルショートカット → keyboard ライブラリ経由でシステム全体に適用(バックグラウンドスレッド)
ライセンス
個人・商用を問わず、自由にご利用いただけます。