Top > OOobbs > 36
  • The added line is THIS COLOR.
  • The deleted line is THIS COLOR.
  • Go to OOobbs/36.

** [[OOobbs/36]] [#e9e98f7d]
-''サマリ'': ボタンのタイトルを取得してセルに書き込むには?
-''環境'': Calc
-''状態'': 解決
-''投稿者'': [[toro]]
-''投稿日'': 2004-10-28 (木) 01:18:14

*** 質問 [#a3856c37]
あるセルを選択後にボタン(フォーム機能で作成したPUSHボタン)を押すと、そのボタンのタイトルをセルに書き込むようにしたいのです。
ボタンの名前を取得してクリップボードにコピーすることができれば、なんとかなりそうなのですが、そこが解りません。
実は、左マウスクリックのみでセルに記号や特定の文章を入れることができないかと考えていまして、ボタンのタイトルが取得できるのなら、いくつかボタンを作って、そのタイトルを変えるだけでそれが可能ではないかと思っています。
よろしくお願いします。




*** 回答 [#p2eaabd0]
-OpenOffice.org の API 関数を使ってクリップボードへデータをコピーすることはできないことが現在のバージョンでは知られています。

しかし,クリップボードへコピーしなくてもボタンのタイトルをセルに書き込むことができます。

すこし試してみるとうまくいきました。また,意外なことも判明しました。

フォームでプッシュボタンを作成して,ボタンのラベルに文字を指定しておきます。
そして,ボタンをクリックしたときに実行されるように次のマクロの "push" を指定します。ファイルを作成しておきました &ref(form_1.sxc);。


 Sub push(oSource)
 'MsgBox oSource.Source.Model.Label
 Insert_Label(oSource.Source.Model.Label)
 End Sub
 
 
 Sub Insert_Label(sLabel As String)
 Dim oDoc As Object, oController As Object
 Dim oSelection As Object
 
   oDoc = ThisComponent
   oSelection = oDoc.getCurrentController().getSelection()
   oSelection.getCellByPosition(0,0).String = sLabel
 End Sub

ボタンをクリックすると push が実行されます。このとき,oSource.Source.Model.Label を使ってそのボタンのラベル (表示されている文字列) を取得します。

Sub Insert_Label は選択セル範囲の左上に指定した文字列を書き込む下請けです。

push(oSource) についてですが,リスナーを使用されたことがあれば分かると思います。呼び出し側の情報などを保持しているオブジェクト変数をここであらかじめ指定しておくことで,Sub の中で使用することができます。

また,oSource.Source オブジェクトにも Label プロパティーがありますが,このプロパティーではラベルの文字列を取得することができません。設定専用で読み出し不可のようです。メソッドに setLabel メソッドしかないことからも分かります。さらに,Model オブジェクトを経ることで Label プロパティーを取得することができます。

以外なことは,リスナー以外の場所でも oSource に相当するオブジェクトを使用できたことです。

これを使えば,始めに作成したボタンをコピーしてラベルを変更するだけでさまざまな文字列を入力可能です。

&ref(form_1.sxc);



-- [[はにゃ?]] &new{2004-10-28 (木) 01:52:33};
-ありがとうございます。理想通りです。Oooのマニュアル本を2冊(オフィシャル、完全)を購入したのですがボタンについての記述が無く困っていました。ボタンやマクロの説明が有るマニュアルはどこに有るのでしょうか? ファイルメーカーのようにボタンで色々 -- [[toro]] &new{2004-10-28 (木) 20:54:15};
-ファイルメーカーのようにボタンで色々できるようになれば、自分にとって最適なソフトになるので、勉強したいと思います。 -- [[toro]] &new{2004-10-28 (木) 20:55:51};
-OOo のマニュアル本は購入したことがないのですが,マクロやフォームについての説明はほぼないといった状態ですね。現在知られている OOo Basic に関するドキュメントは [[OOoBasic/Link]] のページからほとんどたどれると思います。日本語のドキュメントは数えるほどしかないです。フォームに関する記述があるのは,[[「StarSuite 7 Office Suite - Basic プログラマ向けガイド」>http://jp.sun.com/starsuite/docs/]] や [[開発者向けドキュメントの翻訳>http://www.opendt.org/pukiwiki/pukiwiki.php?Translation]] くらいでしょうか。
「開発者向けドキュメントの翻訳」は OOo API など全般に関するドキュメントですが,詳しさについては欠けます。OOoBasic のドキュメントとしては上記のもの以外に [[Tutorial>http://api.openoffice.org/servlets/ProjectDocumentList]] (このページの一番下のファイル) などが有名です。Andrew Pitonyak 氏のドキュメントも慣れてきたらいいと思います。絶対に必要と思えるのは OOo SDK 付属の IDL Reference Manual (API Reference Manual) です。
-- [[はにゃ?]] &new{2004-10-29 (金) 00:57:38};

#comment

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