Top > OOobbs2 > 58

OOobbs2/58 Edit

  • サマリ: ソートして値だけ別の場所に貼り付けたい
  • 環境: Calc
  • 状態: 未解決
  • 投稿者: AMERI?
  • 投稿日: 2007-08-01 (水) 09:46:20

質問 Edit

セル範囲を並び替えて別の場所に貼り付けるために、OOoBasic/Calc のページにある並び替えのサンプル「Sub sort_5」を参考にさせてもらいました。しかし、これは書式もコピーされました。ソートして値だけ別なセル範囲に貼り付けたいのですが、そういう設定はできないものでしょうか。ソートをした後に、以前に教えていただいた値だけコピーの方法を使えばできるのですが、それを一括してできる方法がもしあるのなら教えていただけたらと思います。

回答 Edit

  • 私は見たことがないです。もうひとつセル範囲からセル範囲へデータをコピーする方法を書いておきます。

DataArray を使う方法です。

データの配列はセットする範囲と同じサイズでなければいけません。また、この方法でコピーできるのは "数値"と"文字列" のみで、数式はコピーされません(数式の代わりに表示されている数値か文字列がコピーされる)。

ソートはされません。

Sub Main
Dim oSheet As Object
  oSheet = ThisComponent.getSheets().getByIndex(0)
  oCellRange = oSheet.getCellRangeByPosition(0,0,1,2)
  
  aDataArray = oCellRange.getDataArray()
  
  oSheet.getCellRangeByPosition(0,4,1,6).setDataArray(aDataArray)
End Sub

配列を手動で作成するなら、配列に行ごとの配列を入れます。

 aDataArray = array( _
   array(A1, "B1"),_
   array(A2, "B2"),_
   array(3.123, "C") )
  • はにゃ?? 2007-08-01 (水) 11:23:18

感想,コメント,メモ Edit

  • わかりました。ソートと今回教えていただいたDataArray を使ってコピーする方法を組み合わせてマクロを組んでみます。ありがとうございました -- AMERI? 2007-08-01 (水) 12:16:35


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