*ビューカーソル [#fa5b2cd9] Writer ドキュメントを取り扱う際にはビューカーソル (ViewCursor) をよく使用します。そこで,このページではこのビューカーソルを取り扱います。ビューカーソルはビジブルカーソル (visible cursor) とも呼ばれます。 ビューカーソルとは,テキストを入力する際や選択する際のカーソルと同じものとみなすことができます。そのため,現在のカーソル位置に挿入したりするときに利用できます。 #contents **取得 [#y4a03c2e] ビューカーソルオブジェクトを取得します。 ビューカーソルオブジェクトは CurrentController から取得することができます。次のようにします。 Sub viewcursor_1 Dim oDoc As Object Dim oController As Object Dim oViewCursor As Object oDoc = ThisComponent oController = oDoc.getCurrentController() oViewCursor = oController.getViewCursor() End Sub Writer ドキュメントオブジェクトの持つ ''getCurrentController'' メソッドを使用して CurrentController オブジェクトを取得します。さらに, ''getViewCursor'' メソッドを使用してビューカーソルオブジェクトを取得します。 **プロパティーとメソッド [#tdb7efa1] ビューカーソルを使用して文字列を入力したりフォントを変更したり,プロパティーを取り扱います。また,文字列中の移動にはメソッドを使用します。 ビューカーソルオブジェクトが持つプロパティーとメソッドは[[このページ>../obj/ViewCursor]]を参考にしてください。 まずは文字列を入力してみます。これには ''String'' プロパティーまたは ''setString'' メソッドを使用します。 Sub viewcursor_2 Dim oDoc As Object Dim oController As Object Dim oViewCursor As Object oDoc = ThisComponent oController = oDoc.getCurrentController() oViewCursor = oController.getViewCursor() oViewCursor.setString("Writer ?") End Sub **ビューカーソルの使い方 [#f57f9b10] ビューカーソルはテキスト範囲オブジェクトとしても使用することができます。たとえば,テキストコンテンツを挿入する際に使用する ''insertTextContent'' メソッドの一つ目の引数や文字列を挿入するメソッド ''insertString'' の引数としても使用できます。 たとえば,次のような使い方ができます。 Sub insert_Chars(sChars As String) 'June 4, 2004. ver. 0.2 Dim oDoc As Object, oController As Object, oViewCursor As Object Dim oText As Object, oRange As Object Dim sChar As String oDoc = ThisComponent oController = oDoc.getCurrentController() oViewCursor = oController.getViewCursor() oRange = oViewCursor.getStart() oText = oViewCursor.getText() 'oViewCursor.gotoRange(oText,false) 'sChar = Chr(nChar) oText.insertString(oViewCursor,sChars,false) End Sub **文字列の設定 [#bee239af] 現在のビューカソルの位置に文字列を設定する ''setString'' メソッドがあります。 void setString( string sString ) ビューカソルで文字列が選択状態の場合には置換されます。 **ビューカーソルの移動 [#vd561eec] テキスト中をビューカーソルが移動する方法です。ページ単位,行単位,文字単位などでの移動が可能です。 ***ページ移動 [#s1f5beb0] ビューカーソルをページ単位で移動する方法です。 まず,現在のページ数を取得するには ''getPage'' メソッドを使用します。 integer getPage ( void ) ドキュメントの最初のページに移動する ''jumpToFirstPage'' メソッド,または最後のページに移動する ''jumpToLastPage'' メソッドがあります。戻り値が false の時は移動に失敗したことを示します。そのときには指定した位置にすでにビューカソルが存在していることを示します。 boolean jumpToFirstPage ( void ) boolean jumpToLastPage ( void ) ページ番号を指定して移動するには ''jumpToPage'' メソッドを使用します。 boolean jumpToPage ( integer nPageNumber ) -nPageNumber: ページ数 現在のページの次のページに移動する ''jumpToNextPage'' メソッド,現在のページのひとつ前のページに移動する ''jumpToPreviousPage'' メソッドがあります。 boolean jumpToNextPage ( void ) boolean jumpToPreviousPage ( void ) ***ページ内移動 [#nf5940f5] ビューカーソルが現在いるページ内で移動するメソッドです。現在のページの最初に移動するメソッド ''jumpToStartOfPage'' および ''jumpToEndOfPage'' メソッドです。 boolean jumpToStartOfPage ( void ) boolean jumpToEndOfPage ( void ) ***行中の移動 [#r1b21717] 行単位でビューカソルを移動するメソッドです。指定した行だけ下に移動する ''goDown'' メソッド,指定した行だけ上に移動する ''goUp'' メソッドがあります。 boolean goDown ( integer nCount, boolean bExpand ) boolean goUp ( integer nCount, boolean bExpand ) -nCount: 移動する行数 -bExpand: 移動したときに選択状態にするかどうか 現在のカーソル位置が行の始めかどうか調べる ''isAtStartOfLine'' メソッドおよび ''isAtEndOfLine'' メソッド。 boolean isAtStartOfLine ( void ) boolean isAtEndOfLine ( void ) 行の最初に移動できる ''gotoStartOfLine'' メソッドおよび,行の最後に移動する ''gotoEndOfLine'' メソッドです。 void gotoStartOfLine ( boolean bExpand ) void gotoEndOfLine ( boolean bExpand ) -bExpand: 移動した際に選択状態にするかどうか ***文字数での移動 [#lfa01ede] ビューカソルを指定した文字数分だけ移動するメソッド,左方向に移動する ''goLeft'' ,右方向に移動する ''goRight'' メソッドがあります。 boolean goLeft ( integer nCount, boolean bExpand ) boolean goRight ( integer nCount, boolean bExpand ) -nCount: 移動する文字数 -bExpand: 移動したときに選択するかどうか **表示の移動 [#r6d85e2a] 現在ウィンドウ中に表示中のページを一ページ分だけ上に移動する ''screenUp'' メソッド,一ページ分だけ下に移動する ''screenDown'' メソッドが利用できます。 boolean screenDown ( void ) boolean screenUp ( void ) ** 範囲への移動 [#y0d5d918] テキスト範囲へ移動します。テキスト範囲の指定にはテキストカーソルなどが使用できます。 gotoRange( [in] .text.XTextRange xRange, [in] boolean bExpand ) **テキストカーソル選択範囲の変更 [#i9225c3e] テキストカーソルは選択ができるため,選択範囲の最初の位置と最後の位置があります。テキストカーソルで範囲が選択されているかどうかを判断する ''isCollapsed'' メソッドでは,選択範囲の最初の位置と最後の位置が同じかどうかを判断します。 boolean isCollapsed( void ) また,選択されている状態を解除するメソッドがあります。選択を解除して最初の位置にカーソル位置を移動する ''collapseToStart'' メソッドおよび,選択を解除して最後の位置にカーソルを移動する ''collapseToEnd'' メソッドがあります。 void collapseToStart( void ) void collapseToEnd( void ) **カーソルのあるページ番号 [#pd294723] カーソルのあるページ番号は Page プロパティから取得できます。ページ数は 1 から始まります。 msgbox oViewCursor.Page |