Top > OOobbs > 16

OOobbs/16

  • サマリ: Calcドキュメントで、ある行が表示か非表示か取得する方法はありますか? 
  • 環境: Calc
  • 状態: 解決
  • 投稿者: suou?
  • 投稿日: 2004-05-31 (月) 11:36:05

質問

マクロの自動記録を使うことによって、ある行を非表示にしたり、表示させたりする方法は分かります。しかし、ある行の状態が表示か、非表示かを取得する方法が見つかりません。行の高さがゼロであることは非表示と同等ではないかと考えて、行の高さを取得すること方法を探してみましたが、これも見つかりません。VBAではCells(x,y).EntireRow.Hidden=TrueがPropertyとMethodを兼ねていて簡単ですが、OOoではこれをどのように取得すればいいのでしょう。どなたか教えて頂けないでしょうか?

回答

  • ドキュメントを作成したと思っていたら,どうやら作成していなかったようです。 行が表示されているか,非表示かどうかを判断するには,行オブジェクトの IsVisible プロパティーを使います。

たとえば,あるセル "Sheet1.A2" が含まれている行について考えます。

Sub row
Dim oDoc As Object, oSheet As Object
Dim oCell As Object, oRow As Object
  oDoc = ThisComponent
  oSheet = oDoc.getSheets().getByName("Sheet1")
  oCell = oSheet.getCellRangeByName( "A2" )
  oRow = oCell.Rows
  MsgBox oRow.IsVisible
  oRow.IsVisible = false
  MsgBox oRow.IsVisible
End Sub

まず,最初に表示されるダイアログでは,その行が表示されているかを調べました。そして,次の行で oRow.IsVisible = false として行を非表示にし,次の行で再度,行が表示されているかを調べています。

行オブジェクトを取得するために使用しているのが oRow = oCell.Rows の部分です。 Rows プロパティーがそのセルまたはセル範囲が属している行オブジェクトを保持しています。列オブジェクトの場合には, Columns プロパティーになります。

一応,OOoBasic/Calc/rcisvisible にドキュメントを作成しておきました。

  • はにゃ?? 2004-06-01 (火) 00:53:22
  • はにゃ先生、早速教えて頂いたとおりやってみたところうまくいきました。大変ありがとうございました。解決です。 -- suou? 2004-06-01 (火) 09:40:01
  • 先生、これはりっぱに解決です!「未解決」なのは、状態がピンクの「未解決」から緑の「解決」に変わっていないところだけです。 -- suou? 2004-06-05 (土) 09:40:23
  • ページの上のほうにある「編」をクリックすると,ページの編集ができるので,そこで「未解決」から「解決」に書き直してやると,解決に変わります。 -- はにゃ?? 2004-06-06 (日) 01:06:10
  • 生徒が自分で解決へ変更するのですね。その方が合理的です。試したらできました。ありがとうございました。 -- suou? 2004-06-06 (日) 08:28:07


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