宣伝。日経LinuxにてLinuxの基礎?を紹介する漫画「シス管系女子」を連載させていただいています。
以下の特設サイトにて、単行本まんがでわかるLinux シス管系女子の試し読みが可能!
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
使い方は以下の通り。
これで、ホイールマウスがないときでもいつでも拡大縮小し放題です。やっと積年の恨みを晴らせました(意味不明)。次はキーボードショートカットの定義の仕方でも調べますかね。
なんか、初めてMozillaの拡張機能を作ったときのことを思い出した。右も左も分からん、そもそも言語のことすら全然知らない状態で、既成のコードを見ながら文法を少しずつ把握していく、あの不安感。目的としているAPIに関する日本語の資料も皆無で、英語の資料やソースコードを見ながら見よう見まねのトライアンドエラーで探り当てていくという、果てしなく不毛な作業。ああ、これは萎えるわぁ……それにもめげずに初期のMozillaやOOoを支えてきた人達ってやっぱすごいと思った。
泣きながら記事書いてたころを思い出したw
今は僕が泣いております
orz
の末尾に2020年11月30日時点の日本の首相のファミリーネーム(ローマ字で回答)を繋げて下さい。例えば「noda」なら、「2006-11-10_zoom.trackbacknoda」です。これは機械的なトラックバックスパムを防止するための措置です。
writeback message: Ready to post a comment.