Home > Latest topics

Latest topics > OpenOffice.orgのツールバーとかにズームイン・ズームアウトの機能を加える

宣伝1。日経LinuxにてLinuxの基礎?を紹介する漫画「シス管系女子」を連載させていただいています。 以下の特設サイトにて、単行本まんがでわかるLinux シス管系女子の試し読みが可能! シス管系女子って何!? - 「シス管系女子」特設サイト

宣伝2。Firefox Hacks Rebooted発売中。本書の1/3を使って、再起動不要なアドオンの作り方のテクニックや非同期処理の効率のいい書き方などを解説しています。既刊のFirefox 3 Hacks拡張機能開発チュートリアルと併せてどうぞ。

Firefox Hacks Rebooted ―Mozillaテクノロジ徹底活用テクニック
浅井 智也 池田 譲治 小山田 昌史 五味渕 大賀 下田 洋志 寺田 真 松澤 太郎
オライリージャパン

OpenOffice.orgのツールバーとかにズームイン・ズームアウトの機能を加える - Nov 10, 2006

OOoの何が使いにくいって、編集画面の拡大縮小が面倒な事。MS OfficeやFirefoxは、「今より1段階拡大」「今より1段階縮小」という感じで簡単に表示倍率を変えることができる。しかしOOoではいちいち「ズーム」ダイアログを開いて拡大率を指定して確定してやらなきゃいかん。面倒臭いったらありゃしません。

まあその代わり、OOoではCtrl-ホイール回転で画面を拡大縮小できるというメリットがある(少なくともうちにある古いMS Officeではできない)から、プラスマイナス0と言うこともできるけど。

「ツール」の「カスタマイズ」でメニューやツールバーのカスタマイズ画面を開いて、追加できる機能の中の「表示」カテゴリを見てみたら、「拡大(ズーム拡大)」「縮小(ズーム縮小)」という項目があったので、これで目的が達成できるか?と思ってさっそく配置してみたけど、WriterとCalcではボタンが常にグレイアウトされてうんともすんともいわんし、Impressでは拡大ボタンを押しても何も起こらんわ縮小ボタンを押すといきなり半分の拡大率になるわ(変化が急過ぎるよ!)で、ふんだりけったりな結果にしかならんかった。

マクロで拡大縮小の操作を記録させればもしかしたらいけるかも、と思って試してみたけど全然訳の分からんマクロが出力されてお手上げ。

さらにマクロについて調べていたら、どうやらcom.sun.star.viewだかViewSettingsサービスだかいうやつのZoomValueというプロパティをいじってやれば良いらしいということが分かった。でもどうすればこのプロパティにアクセスできるのかが分からない。本を見ながらブレークポイントを設定してオブジェクトツリーをたどってみて、どうにかWriterとCalc/ImpressとのそれぞれでのZoomValueプロパティへのアクセス方法が分かった。

というわけで見よう見まねで書いてみた「現在の状態からちょっとだけズームイン/ズームアウトする」マクロが、以下の物。言語はOpenOffice.org BASICです。


REM ********* for Writer **********
sub ZoomIn
  dim viewSettings   as object
  viewSettings   = ThisComponent.CurrentController.ViewSettings
  viewSettings.ZoomValue =  viewSettings.ZoomValue * 1.2
end sub

sub ZoomOut
  dim viewSettings   as object
  viewSettings   = ThisComponent.CurrentController.ViewSettings
  viewSettings.ZoomValue =  viewSettings.ZoomValue / 1.2
end sub

REM ********* for Calc and Impress **********
sub ZoomIn2
  dim controller   as object
  controller   = ThisComponent.CurrentController
  controller.ZoomValue =  controller.ZoomValue * 1.2
end sub

sub ZoomOut2
  dim controller   as object
  controller   = ThisComponent.CurrentController
  controller.ZoomValue =  controller.ZoomValue / 1.2
end sub

使い方は以下の通り。

  1. 「ツール」→「マクロ」→「マクロの管理」→「OpenOffice.org Basic...」と辿って、マクロ管理画面を開く。
  2. 「マイマクロ」→「Standard」→「Module1」を選択して、「編集」ボタンをクリック。
  3. マクロエディタが起動するので、上のマクロをそのままファイル末尾に貼り付けて保存。
  4. Writer、Calc、Impressそれぞれの「ツール」→「カスタマイズ」で、ツールバーの「標準」やメニューの「表示」を選択。
  5. 「保存場所」で「OpenOffice.org Writer(Calc/Impress)」を選択。ここで現在のドキュメントを選択すると、そのドキュメント固有のマクロになってしまうので、要注意。
  6. 「ズーム」の項目の下あたりに、「追加」ボタンで新しく項目を挿入。カテゴリー「OpenOffice.orgマクロ」→「マイマクロ」→「Standard」→「Module1」と辿って、Writerの場合は「ZoomIn」と「ZoomOut」を、CalcとImpressの場合は「ZoomIn2」と「ZoomOut2」を選択し、「追加」ボタンを押して挿入する。
  7. ツールバーの場合、項目を選択して「変更」ボタンをクリックし、ポップアップから「アイコンの変更」を選択すれば、ツールバーボタン用のアイコンを設定できる。一覧の中からズームイン・ズームアウト用っぽいものを見つけて適当に選択すればよい。

これで、ホイールマウスがないときでもいつでも拡大縮小し放題です。やっと積年の恨みを晴らせました(意味不明)。次はキーボードショートカットの定義の仕方でも調べますかね。

なんか、初めてMozillaの拡張機能を作ったときのことを思い出した。右も左も分からん、そもそも言語のことすら全然知らない状態で、既成のコードを見ながら文法を少しずつ把握していく、あの不安感。目的としているAPIに関する日本語の資料も皆無で、英語の資料やソースコードを見ながら見よう見まねのトライアンドエラーで探り当てていくという、果てしなく不毛な作業。ああ、これは萎えるわぁ……それにもめげずに初期のMozillaやOOoを支えてきた人達ってやっぱすごいと思った。

分類:ソフトウェア > OpenOffice.org, , , 時刻:18:04 | Comments/Trackbacks (2) | Edit

Comments/Trackbacks

no title

泣きながら記事書いてたころを思い出したw

Commented by tani at 2006/11/10 (Fri) 21:33:24

no title

今は僕が泣いております
orz

Commented by Piro at 2006/11/10 (Fri) 22:14:33

TrackBack ping me at


の末尾に2014年1月19日時点の日本の首相のファミリーネーム(ローマ字で回答)を繋げて下さい。例えば「noda」なら、「2006-11-10_zoom.trackbacknoda」です。これは機械的なトラックバックスパムを防止するための措置です。

Post a comment

writeback message: Ready to post a comment.

2014年1月19日時点の日本の首相のファミリーネーム(ひらがなで回答)

Powered by blosxom 2.0 + starter kit
Home

カテゴリ一覧

過去の記事

1999.2~2005.8

最近のつぶやき

オススメ

Mozilla Firefox ブラウザ無料ダウンロード