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

Q&A集[?]

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

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

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

質問コーナー

サイト内検索

分類メニュー

関連サイト


本日:2
昨日:0
総数:1151
現在:2


最初の一セルだけ指示し、ある範囲のセルデータを一度に書き込みたい

ページOpenOffice.org FAQの登録ページ
投稿者Mr_Happy
分類
edit/refer
優先順位
edit/refer
状態
edit/refer
カテゴリー
edit/refer
投稿日2011-03-25 17:06:19 (金)
OSWin7
依存するページfaq/6/184
バージョン
edit/refer

メッセージ

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

お世話になります。お陰様で少しわかってきました。

今回の質問:

下記はあるファイルの2頁のセル E6:F8 のデータを 現在使用している0頁のセル G7:H9 に書き込むプログラムで、正常に動作しています。

これを受ける側で G7 のみ指示して書き込む方法はありませんか?

Sub Y_DocYomiKaki_Main()
   Dim oMyCmp As Object, oYuCmp As Object, oYuDoc As Object, oYuDat As Object
   
   oMyCmp = ThisComponent
   '既に開いている特定ブックの有無
   If Y_GetYuCmp(oYuCmp,"絵本.xlsx") = FALSE Then Exit Sub

   oYuDat = oYuCmp.Sheets(2).getCellRangeByName("E6:F8").getDataArray
   oMyCmp.Sheets(0).getCellRangeByName("G7:H9").setDataArray(oYuDat)
End Sub

インデックスで位置を指定してセル範囲を取得

はにゃ? (2011-03-25 23:27:01 (金))

次のような感じで、指定したセルアドレスを基点としてデータソースのセル範囲と同じサイズのセル範囲オブジェクトを取得して利用します。

Sub SetDataTest
 oDoc = ThisComponent
 oRange1 = oDoc.getSheets().getByIndex(0).getCellRangeByName("A1:C2")
 oDoc2 = StarDesktop.loadComponentFromURL("private:factory/scalc", "_blank", 0, Array())
 oSheet = oDoc2.getSheets().getByIndex(0)
 
 SetDataToPosition(oRange1, oSheet, "B2")
End Sub


Sub SetDataToPosition(oRange1, oSheet, sDest)
 aRangeAddr = oRange1.getRangeAddress()
 oCell = oSheet.getCellRangeByName(sDest)
 aCellAddr = oCell.getCellAddress()
 oRange2 = oSheet.getCellRangeByPosition(_
   aCellAddr.Column, _
   aCellAddr.Row, _
   aCellAddr.Column + aRangeAddr.EndColumn - aRangeAddr.StartColumn, _
   aCellAddr.Row + aRangeAddr.EndRow - aRangeAddr.StartRow)
 oRange2.setDataArray(oRange1.getDataArray())
End Sub

ありがとうございます。完了です

Mr_Happy (2011-03-27 16:18:57 (日))

はにゃ? さん ありがとうございます。
結局は自分で作るということなのですね。

お名前:
題名: