「ほっ」と。キャンペーン
カテゴリ:OpenOffice( 38 )
(OpenOffice)Calcでセルの中をコピーしようとするとフリーズする
Windows7環境の OpenOffice3.3 で、Calc使ってるんですが、あるCalcファイルでセルの中の文字列に対しコンテキストメニューを表示してコピー等の操作を使用とすると、以下のようにOpenOfficeが落ちてしまいます。
(他のファイルはなりません)
e0091163_0454144.jpg


エラーの内容を見ると、以下のようになっていました。

問題の署名:
問題イベント名:BEX
アプリケーション名:soffice.bin
アプリケーションのバージョン:3.3.9556.500
アプリケーションのタイムスタンプ:4d061efd
障害モジュールの名前:spellmi.dll
障害モジュールのバージョン:3.3.9556.500
障害モジュールのタイムスタンプ:4f21f2e5
例外オフセット:0001b673
例外コード:c0000409
例外データ:00000000
OS バージョン:6.1.7601.2.1.0.256.48
ロケール ID:1041
追加情報 1:33df
追加情報 2:33df374cff7c82f5a73bc853d1d76b28
追加情報 3:0ac8
追加情報 4:0ac86277dbf5578e8739d3cec49def4e


どうやら、スペルチェックのDLLがクラッシュしているようです。
確かに、セルの中は日本語文字列なんですが、ほとんどの単語でスペルミスを表す赤線が表示されています。

色々調べたとことろ、セルの書式設定→フォント→アジア諸言語用フォント→言語 の値が 空白 でした。
e0091163_0454627.jpg


ここは普通、空白になっていてはいけない項目です。
どうやらファイルが壊れて、空白になっていたようです。
ここを日本語に設定することでスペルミスはなくなり、エラーは発生しなくなりました。
[PR]
by jehoshaphat | 2014-02-10 00:40 | OpenOffice | Trackback | Comments(0)
(OpenOffice)Writerで原稿用紙レイアウトを使う方法
Writerで原稿用紙レイアウトで印刷したいというユーザがいたんで調べてみたら、Going My Way: OpenOffice.org 用 縦書き原稿用紙の作成方法にドンピシャな答えが載ってました。

以下のページ設定でできるようです。

メニューバー

書式

・ページ タブ
  配置:横
  文字の方向:右から左へ(縦書き)
・行数と文字数 タブ
  行数と文字数を指定する にチェック
  ページ単位の行数:20
  行単位の文字数:20
  罫線を表示する:チェック
  罫線を印刷する:チェック
  罫線の色:任意

[PR]
by jehoshaphat | 2014-01-31 00:01 | OpenOffice | Trackback | Comments(0)
OpenOffice3.3はWindows7でmsiインストールしようとするとダメっぽい
OpenOfficeをActiveDirectoryで展開するの前半で、グループポリシーの[ソフトウェア]インストール機能を使ってOpenOfficeを展開する方法を書きました。

今回Windowsドメイン内にWindows7の端末が参加するということで、最新版である OpenOffice3.3 をグループポリシーの[ソフトウェア]インストール機能で展開しようと試みました。

しかし、どうもうまく行きません。

試しに、MSIファイルをWindows7上で実行すると、 setup.exeを使用してインストールを開始してください。 と怒られます。

なので、Windows7の端末でサイレントインストールするには、バッチで以下のようにやるしか無いようです。

setup.exe /qn

[PR]
by Jehoshaphat | 2013-03-27 22:39 | OpenOffice | Trackback | Comments(0)
(OpenOfficeBasic)印刷プレビューかどうかを判断する
OpenOffice3.2のマクロ(Basic)で、現在のビューが印刷プレビューかどうかを判断する方法です。
自力では難しそうだったので、ググったら OOobbs2/142 でどんぴしゃな方法が載っていました。

100%コピペなコードですが、転載させてもらいます。

Function IsPrintPreview( oDoc ) As Boolean
Dim bPreview As Boolean
sViewInterface = ""
oModMgr = CreateUnoService( _
"com.sun.star.frame.ModuleManager")
sModule = oModMgr.identify(oDoc)

Select Case sModule
Case "com.sun.star.text.TextDocument"
sViewInterface = "com.sun.star.view.XViewSettingsSupplier"
Case "com.sun.star.sheet.SpreadsheetDocument"
sViewInterface = "com.sun.star.sheet.XSpreadsheetView"
Case Else
sViewInterface = ""
End Select

If sViewInterface <> "" Then
oController = oDoc.getCurrentController()
bPreview = NOT HasUnoInterfaces(oController, sViewInterface)
End If

IsPrintPreview = bPreview
End Function

この関数の引数に、ThisComponent を渡すと、印刷プレビューかどうかが true,false で返ってくるので、これで判別できます。
[PR]
by jehoshaphat | 2011-07-10 23:13 | OpenOffice | Trackback | Comments(0)
(OpenOffice)メニューバーのフォントが汚い
WindowsXPでOpenOffice3.2を使ってますが、OpenOfficeのメニューバーのフォントが小さくつぶれた用に汚く見える現象が出ています。

下記のような感じです。
e0091163_22571791.jpg

で、調べると解決策として、Windowsの画面のプロパティから、フォントを設定する方法(デザインの詳細で、メニューのフォントをTahomaからMS UI Goshicにする)と、OpenOfficeの設定でフォントを置換する方法とがありました。

Windowsのデザインは変えたくなかったので、後者の方法を試してみました。

OpenOfficeのメニューバーの ツール → オプション → OpenOffice.org → フォント で、置換テーブルを使用 にチェックを入れ、Tahoma を MS UI Goshic に置換するようにし、リスト追加後 常に にチェックを入れて、OKを押下します。

しかし、見やすい MS UI Goshic にはなったのですが、今度は下記のように小さすぎてつぶれており、やはり見やすくありません。
e0091163_22573686.jpg


Windowsの画面のプロパティ デザインの詳細で、メニューのフォントサイズを8ptから9ptにすれば、きれいに見えるのですが、今度はスタートメニューの英字等が一回り大きくなり個人的に気に入りません。


で、いろいろ試した結果、置換テーブルで MS UI Goshicにした後、OpenOfficeのメニューバーの ツール → オプション → OpenOffice.org → 表示 で、ユーザインタフェースの倍率を 110% にするとWindowsのデザイン設定変更しなくても下記のようにいい感じになりました。
e0091163_22575981.jpg


本来は、Windowsデザインの設定でTahoma 8pt にしてても、WindowsServer2003R2でフォントが小さく見ずらい所があるで書いたように、日本語の場合はシステムフォントが使われるはずなんですが、どうもOpenOfficeはそうじゃないようです。。。
UIって大事ですね。

参考:
OpenOfficeのメニューフォントの変更方法 Windowsのデザインからフォントを設定する方法ですね。
OpenOfficeのフォントが汚い 置換テーブルを使ってフォントを変更する方法です。
[PR]
by jehoshaphat | 2011-07-10 23:05 | OpenOffice | Trackback | Comments(0)
(OpenOffice,Excel)二つの日付の経過(期間)を求める
年齢計算や経過日数を求めたい場合があります。

その場合、Excelだと、DATEDIF 関数使うと有用なようです。

書式は下記の通りです。

=DATEDIF(開始日,終了日,単位)

単位は下記のようになるようです。

"Y" 指定した期間の年数(満年数)を表示
"M" 指定した期間の月数(満月数)を表示
"D" 指定した期間の日数(満日数)を表示
"YM" 指定した期間の1年に満たない月数を表示
"MD" 指定した期間の1ヶ月に満たない日数を表示
"YD" 指定した期間の1年に満たない日数を表示


しかし、この DATEDIF 関数はLotus1-2-3との互換性を保つために用意されている隠し関数(関数ウィザードやヘルプにもない)なので、OpenOffice.org の Calc には存在しません。

Calcで DATEDIF 関数を代用しようとするには、DAYS関数・MONTHS関数・YEARS関数が有用なようです。

例えば、経過年数を求めるときは、YEARS関数を使います。
例:
=YEARS((開始日,終了日;0)
(Excelの =DATEDIF(A2,B2,"y") と同じ意味)


参考:
DATEDIF関数で期間の計算
DATEDIF関数の代用
関数のトラブル
[PR]
by jehoshaphat | 2011-07-10 22:45 | OpenOffice | Trackback | Comments(0)
(OpenOffice Basic)Calcでオートフィルタを設定する

OpenOffoce 3.2です。

Calcでオートフィルタを設定するマクロは、下記のようにすればいいようです。
Dim oController As Object
Dim oSheet As Object
oController = ThisComponent.getCurrentController()
oSheet = ThisComponent.Sheets(0)
'まずオートフィルタの範囲を選択します。(アクティブなセルを指定)
oController.select (oSheet.getCellRangeByName ("B3:M500"))
'オートフィルタ実行
dispatcher.executeDispatch(document, ".uno:DataFilterAutoFilter", "", 0, Array())


参考:
[PR]
by jehoshaphat | 2011-02-09 00:48 | OpenOffice | Trackback | Comments(0)
(OpenOffice)OppenOffice.orgがOracleから独立したらしい

OpenOffice.orgの開発コミュニティがOracleから独立したようです。
ただ今のところ、OracleがOpenOffice.orgの商標権握っているようなので、スイート名は暫定的に「LibreOffice」になっているようです。

Javaの父と呼ばれる開発者もOracle退社したようですし、Googleとはもめてますし、Sun買収で引き締めを図ってる感がOracleです。
個人的には利益第一的なOracleよりもユニークな製品を作り出しオープンソースにも協力的なSunの社風のが好きだったんですけね。。

さて、勤務先でメインのオフィススイートとしてOpenOfficeを使っている立場としては今後の成り行きに対して慎重にならざるおえませんね。

参考:
OracleからOpenOffice.orgが独立し、「The Document Foundation」を設立 - ITmedia
LibreOfficeでOMOい出した、Oracleという会社の”余白” - unakami - builder by ZDNet Japan
“Javaの父”ゴスリング氏、Oracle退社の理由を語る - ITmedia
[PR]
by jehoshaphat | 2010-10-16 21:32 | OpenOffice | Trackback | Comments(0)
CalcでVLOOKUP関数に()があると期待した値が返ってこない

OpenOffice Calc 3.2です。


Calcにて vlookup 関数で検索値に半角カッコ ( ) が入っていると#N/Aになるという現象が発生しました。

で、調べたところ、faq/4/872 - OpenOffice.org Q&Aに答えがありました。

どうやら、Calcでは数式内に正規表現を使えるようですが、半角括弧は正規表現でつかうメタ文字となっているのが原因のようです。
(他の正規表現のメタ文字は OpenOffice.org ヘルプの 正規表現リスト に載っています。おもに、. ^ $ * + ? \ \n \t [ ] などが有るようです。)

対応策としては一つは正規表現の機能をオフにすることです。
メニューバーの ツール → オプション → OpenOffice.org Calc → 計算式 → 数式で正規表現を使う のチェックを除けるといいようです。
ここはファイル毎の設定のようですね。(デフォルトはONのようです。)

(正規表現を使わない設定にすると ods ファイル内の content.xml に <table:calculation-settings table:use-regular-expressions="false"/> という値が追加されます。)


もうひとつの方法は上記Q&Aにも出てますが、メタ文字をエスケープ(¥を付ける)する方法です。
ただ、検索値にいちいちエスケープ文字を付け加えるのは現実的ではないので、SUBSTITUTE 関数を使って、メタ文字にエスケープ文字を付け加えると楽なようです。

ということで、Q&Aには下記のような式にすればいいと載ってました。

=VLOOKUP(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(A1;"$";"\$");"[";"\[");"*";"\*");"+";"\+");"?";"\?");"|";"\|");"(";"\(");")";"\)");$A$1:$A$8;1;0)


正規表現機能を使わないのであれば、数式で正規表現を使う をのけた方が楽ですね。
[PR]
by jehoshaphat | 2010-09-18 22:28 | OpenOffice | Trackback | Comments(0)
Calcのオートフィルタは複数のシートに設定できない!?

OpenOffice Calc 3.2です。

Calcで、あるシートに対してオートフィルタを設定し、別のシートでオートフィルタを設定すると、最初のシートのオートフィルタは解除されてしまいます。

ヘルプ見るとどうやら仕様みたいです。
ヘルプには下記のように書いてました。
異なるシートに異なるオートフィルタを割り当てるには、まずシートごとにデータベース範囲を定義します。

ということで、フィルタにかける範囲を指定したうえ メニュー → データ範囲の指定 でオートフィルタを設定すると複数のシートでもできました。
[PR]
by jehoshaphat | 2010-09-18 22:28 | OpenOffice | Trackback | Comments(0)