Top > OOoBasic > Writer > Paragraph

段落 Edit

段落はセクションに含まれる文章の一部分です。改段落マーク (CR) により次の段落になります。段落には行が含まれます (改行は LF)。

段落は段落スタイルでもフォーマットされます。

Writer の文章は多くの部分に段落が使われています。たとえば、ヘッダやフッタ、見出しなども全て段落です。

改段落 Edit

改段落は制御文字を挿入することで行います。

Sub paragraph_1
  oDoc = ThisComponent
  oText = oDoc.getText()
  oEnd = oText.getEnd()
  
  nPB = com.sun.star.text.ControlCharacter.PARAGRAPH_BREAK
  oText.insertControlCharacter(oEnd,nPB,False)
End Sub

Writer で Enter を押したときには改段落として CR が利用されています。また改行は LF です。一つの段落の最大文字数は 65535 文字なので改段落が必要です。

実際には CR だけでは段落が変更されるだけで、改行のために LF も必要です。CR + LF で改行を含めた改段落になります。

段落ごとの移動 Edit

テキストカーソルは段落単位で移動できます。OOoBasic/Writer/textcursor

段落のプロパティ Edit

OOoBasic/Writer/paragraph_properties

全段落処理 Edit

ドキュメント中などテキストオブジェクト中の全ての段落を列挙型として処理できます。

Sub paragraph_6
  oDoc = ThisComponent
  oText = oDoc.getText()
  oParagraphs = oText.createEnumeration()
  While oParagraphs.hasMoreElements()
    oParagraph = oParagraphs.nextElement()
  WEnd
End Sub

段落のプロパティ変更 Edit

下記の様に全段落処理を行い段落のスタイル ParaStyleName を変更しようとすると失敗します。エラーの理由は Property not found ですが、設定のみが不可で取得は可能です。

  oParagraphs = oText.createEnumeration()
  While oParagraphs.hasMoreElements()
    oParagraph = oParagraphs.nextElement()
    'oParagraph.ParaStyleName = "MyStyle" ' <-- error
  WEnd

変更が必要な場合にはテキストカーソルを作成してから変更します。

oCursor = oText.createTextCursorByRange(oParagraph.getStart())
oCursor.ParaStyleName = "MyStyle"

全ての段落のテキスト Edit

スペルチェックやスマートタグなどの特殊な用途のために全ての段落のテキストに順にアクセスする方法があります。この方法ではテキストの全ての書式設定属性にはアクセスできません。

  0
  1
  2
  3
  4
  5
  6
  7
  8
  9
 10
 11
 12
 13
Sub ParseAllParagraphText
  oDoc = ThisComponent
  oParagraphs = oDoc.getFlatParagraphIterator( _
      com.sun.star.text.TextMarkupType.SENTENCE, False)
  
  oPara = oParagraphs.getFirstPara()
  
  While NOT IsNull(oPara)
    'mri oPara.getText
    msgbox oPara.getText()
    
    oPara = oParagraphs.getNextPara()
  WEnd
End Sub

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