「Web出版サイト」ベータ公開

Q&A集[?]

当サイトでのご質問の受付は終了しました

すべてのコンテンツを読み込み専用としたため、回答欄からも投稿できません

Apache OpenOffice/LibreOfficeのご質問はそれぞれのフォーラムへご投稿ください

質問コーナー

サイト内検索

分類メニュー

関連サイト


本日:3
昨日:2
総数:1668
現在:4


Selectなしでコピペする方法

ページOpenOffice.org FAQの登録ページ
投稿者鬼太郎
分類
edit/refer
優先順位
edit/refer
状態
edit/refer
カテゴリー
edit/refer
投稿日2011-05-08 14:06:18 (日)
OSWin XP
依存するページ
バージョン
edit/refer

メッセージ

回答ページでは行末に「~」を付加する必要はありません

お世話になります。

Sub Main
	Dim oFrame as Object
	Dim dispatcher as object
	Dim oCellB As Object
	Dim oCellC As Object
	Dim oCellD As Object
	
	
oFrame = ThisComponent.getCurrentController().getFrame()
dispatcher = createUnoService("com.sun.star.frame.DispatchHelper")

oCellB = ThisComponent.getSheets().getByName("Sheet1").getCellRangeByName("A1")
oCellC = ThisComponent.getSheets().getByName("Sheet1_2").getCellRangeByName("C1:C10")
oCellD = ThisComponent.getSheets().getByName("Sheet1_2").getCellRangeByName("D1")

ThisComponent.getCurrentController().select(oCellB)
dispatcher.executeDispatch(oFrame, ".uno:Copy", "", 0, Array())

ThisComponent.getCurrentController().select(oCellC)
dispatcher.executeDispatch(oFrame, ".uno:Paste", "", 0, Array())

ThisComponent.getCurrentController().select(oCellD)
dispatcher.executeDispatch(oFrame, ".uno:Paste", "", 0, Array())
End Sub 

上記内容でコピぺできますが、セレクトを使わず 行いたいのですが良いアドバイスお願い致します。


無題

tani (2011-05-09 15:26:06 (月))

copyRangeメソッドとか使うとシンプルに書けると思います。
http://api.openoffice.org/docs/common/ref/com/sun/star/sheet/XCellRangeMovement.html#copyRange

# コピーしたい範囲に図形とかが入ってたり、ドキュメントをまたがったコピーだったりするとうまくいかないかもしれません。

セレクトでの画面切り替えが嫌なのでしょうか?

ike@九州 (2011-05-10 09:59:00 (火))

セレクトでは不要な画面切り替えが起こりますね。
もしそれがお嫌でしたら、以下の手順で OK かと思います

ThisComponent.lockControllers
〜セレクトによるコピペ処理〜
最終的に表示しておきたいシートのセルを選択
".uno:DeSelect" の実行
ThisComponent.unlockControllers


".uno:Copy" や copyRangeメソッド は書式もコピーされてしまいます
http://hermione.s41.xrea.com/pukiwiki/pukiwiki.php?OOoBasic%2FCalc%2Fcellrange

書式は必要ないのであれば(セル数が同じである必要がある)

oCellD.setDataArray(oCellB.getDataArray)


単一セルの内容をセル範囲の全てのセルに書き込みたい場合には、簡単なメソッドが用意されていないので ".uno:Copy" を使った方が For〜Next を使うより速いのが現実です。

有難う御座いました

鬼太郎 (2011-05-15 10:38:56 (日))

有難う御座いました

完了にします

M.Kamataki (2011-05-15 15:25:20 (日))

コメントありがとうございました。

お名前:
題名: