Top > OOoBasic > Macros > ReSizePlus

ReSizePlus (Jump to English version) Edit

この図形を3倍に拡大したい、1/4にしたいという時、皆さんはどうしてますか? ReSizePlus はOpenOffice.org Basic で作成した Draw / Impress / Calc / Writer 用機能強化マクロです。マクロはダイアログを利用して作成してあります。

OpenOffice.org のアプリケーションライブラリにインストールして実行します。

ダウンロード Edit

fileReSizePlus11_ja.sxd

描画サンプル Edit

fileReSizePlus10_sample_ja.sxd
ReSizePlus10_sample_ja.png

インストール Edit

ファイルを OpenOffice.org Draw で開きます。中のインストールボタンをクリックしてインストールしてください。

使用方法 Edit

Draw / Impress / Calc / Writer 上で、対象となる図形、テキストオブジェクトなどのドローオブジェクトを選択した状態で、"ReSizePlus" ライブラリの"ReSizePlus"モジュールの"ReSizePlus"を実行してください。メニューに登録するかツールバーにアイコンとして追加すると使い勝手が良いでしょう。

作成するに当たって Edit

Draw は、ベジェ曲線も使える本格的なドローツールでありながら、フィーリングで操作しようとすると操作性が納得できず、今後の操作性向上につながるかもと思い、マクロで書いてみました。

misc Edit

隠し?機能として、OpenOffice の言語設定を"標準"から"英語(米国)"等に変更するとダイヤログの表示が英語表記に変わります。多言語対応の仕掛けとしては、ダイヤログオブジェクトの AccessibleContext.Locale を取得することで実現してみました。

ライブラリのインストールには LibInstaller を利用させて頂いております。ありがとうございます。--河井?

コメント Edit

  • 縦横比調整チェックボックス有効時にバグがありましたので、修正しました。併せて、ReSizePlus と同じ方法で LibInstaller の多言語対応を図ってみました。といっても英語圏のみですが。 -- 河井? 2005-02-24 (木) 15:49:27
  • StarBasic 上で取得した座標位置が、Draw 上で得られる座標と微妙にずれている現象を確認していましたが、ページ余白によるものと判明しました。ページオブジェクトを oPage とした時、oPage.BorderLeftで左余白、oPage.BorderTopで上余白を取得することで対処しました。連続した更新となってしまい、申し訳ありません。Draw のマクロはあまり需要がないかもしれませんが、Drawの情報も増やしていって欲しいですね。 -- 河井? 2005-02-24 (木) 18:28:24
  • OpenOffice.org 1.9m79 での動作不具合を対処している内に、Calc/Writerへの対処の目処がついたので対応化してみました。ソースがかなり汚くなったのと、バージョンの違いによる挙動の差異については、まとめておきたいのでbbsにまとめて書きますね。 -- 河井? 2005-02-25 (金) 18:17:27
  • ダイヤログのタブ化に伴い、アバウトを除きコントロールを全てコードで置く様に書き換えました。大幅な変更なので前のも置いておきます。既にドキュメント上に存在する図形の傾斜角度のプロパティ .ShearAngle を読み出しは出来るのですが、書き込みを行おうとするとエラーになってしまいます。特殊なケースだと思われるので改めて質問に載せるべきか検討しています。 -- 河井? 2005-03-03 (木) 23:35:53
  • ダイアログをタブ化されたんですね。Step をつかうと簡単に行えるのに加えて,動作が軽いことがわかっています。OOobbs/46 -- はにゃ?? 2005-03-05 (土) 00:57:01
  • ShearAngle プロパティーについてですが Writer, Calc, Draw で次のコードを試したところ,普通に動作しました。
Sub shearangle_1
Dim oDoc As Object
Dim oSel As Object
  oDoc = ThisComponent
  oSel = oDoc.CurrentSelection.getByIndex(0)
  MsgBox oSel.ShearAngle
  oSel.ShearAngle = 3000 ' 30 degrees
  MsgBox oSel.ShearAngle
End Sub

書き込みを行うとエラーが出るのは特殊な条件においてのことでしょうか?

  • はにゃ?? 2005-03-05 (土) 01:27:17
  • えーと、色々コードをいじっている途中でしたので取りまとめ出来ませんでした。回転と拡大縮小を同時に指定して一度図形を変形させておいたものを対象として選択した場合にシアーが変化しており、その値を設定する場合でもエラーが出るときと出ないときがあるといった具合です。一応動作検証出来る程度の修正版が出来ましたので、MainFuncモジュールのRestoreObjectとSettingObjectルーチンのErr_jobのコメントを外して確認してみてください。 -- 河井? 2005-03-05 (土) 09:32:49
  • 処理にも含まれていますが、シアー角度が0の時も書き込みを行おうとするとエラーとなります。 -- 河井? 2005-03-05 (土) 09:57:36
  • ShearAngle、Position、Sizeのみで使用すればエラーが出ないのかもしれませんね。確認用のコードを書く必要がありそうです。 -- 河井? 2005-03-05 (土) 10:05:29
  • シアー関係問題は、とりあえず保留しておいて、イラストを作成する際に実用的な線幅も伴う拡大縮小が可能な機能を追加してみました。それに伴い処理時間が長くなったのでプログレスバーも追加してみました。グループ化したオブジェクトに対しては若干の制約が出来てしまったのが難点でしょうか。グループ階層を辿る再起処理は退避処理が大変そうなのでやめました。とりあえず、最上位階層のグループ内オブジェクトのみ線幅の変更を適用する処理となっています。 -- 河井? 2005-03-08 (火) 17:41:55
  • 塗り属性(グラデーション、ハッチ)の角度を回転に合わせて変化する機能を追加しました。線幅と同じく、最上位階層のグループ内オブジェクトのみ塗り属性の変更を適用する処理となっています。 -- 河井? 2005-03-10 (木) 13:28:50
  • サンプルファイルが修正途中の物だったので差し替えました。添付の際は、同じファイル名だと差し変わらないのですね。s1つけて対処しました。 -- 河井? 2005-03-10 (木) 15:46:08
  • ShearAngle プロパティは、かなり挙動が怪しい様に思います。はにゃさんに提示していただいたコードでも、適当な図形を描いて、書式メニュー等から、位置とサイズを選択後、シアー角度を30度に設定した後に実行するとエラーとなります。数値を色々と変えて確認してみましたが、マクロ上で設定したシアー角度と対象図形のシアー角度が同じ場合でもエラーとなりました。 -- 河井? 2005-03-11 (金) 23:48:27
  • 設定しようとするシアー角度と現在のシアー角度が異なれば、エラーにならないようですね・・・・・・。
    Sub shearangle_1
    Dim oDoc As Object
    Dim oSel As Object
    Dim sSetVal As String
    Dim lShear As Long
    Dim lSetVal As Long
     sSetVal = InputBox("角度を入力:", "シアーのテスト", "30")
     lSetVal = Val(sSetVal)*100
     oDoc = ThisComponent
     oSel = oDoc.CurrentSelection.getByIndex(0)
     lShear = oSel.ShearAngle
     if lShear <> lSetVal then ' 値が同じ時は設定しない
     	oSel.ShearAngle = lSetVal ' 30 degrees
     end if
     MsgBox oSel.ShearAngle
    End Sub
    こんな処理で解決?? -- 河井? 2005-03-12 (土) 00:12:17
  • ReSizePlus_enを英語版ページ用に追加。 -- 河井? 2005-03-14 (月) 14:57:40
  • シアーの不具合修正と国際化の為の英語版も作成してみました。 -- 河井? 2005-03-15 (火) 14:37:41
  • 3Dオブジェクトの線幅と塗り属性対応処理追加。 -- 河井? 2005-03-17 (木) 17:16:04
  • 海外の方へ配慮する為に新たに自サイトを作りました。

    自サイト内最新版

    LibInstallerとドキュメントに手を入れた以外は機能追加はしていません。OOo2.0に向けてアドオン化してみました。 -- 河井? 2005-06-15 (水) 07:10:31


Attach file: fileReSizePlus_sample.sxd 332 download [Information] fileReSizePlus11_ja.sxd 1125 download [Information] fileReSizePlus_sample.png 306 download [Information] fileReSizePlus10_sample_ja.png 665 download [Information] fileReSizePlus10_sample_ja.sxd 934 download [Information] fileReSizePlus10_ja.sxd 326 download [Information] fileReSizePlus09s1_sample.png 304 download [Information] fileReSizePlus07.sxd 340 download [Information] fileReSizePlus09s1_sample.sxd 290 download [Information] fileReSizePlus09.sxd 352 download [Information] fileReSizePlus08.sxd 348 download [Information] fileReSizePlus05.sxd 321 download [Information]

Reload   New Lower page making Edit Freeze Diff Upload Copy Rename   Front page List of pages Search Recent changes Backup   Help   RSS of recent changes