表計算ド ュメントの書式設定

From Apache OpenOffice Wiki
Jump to: navigation, search
doc OOo
Book.png


▼\'95\'5c計算ドキュメントには、セルおよびページ単位での書式設定を行うための属性とメ\'83\'5cッドが用意されています。

▼セル属性

▼セルの書式設定としては、\'95\'5c示フォントの種類やサイズなど、各種の項目が存在します。個々のセルは com.sun.star.style.CharacterProperties および com.sun.star.style.ParagraphProperties サービスをサポートしていますが、これらが使用する主要な属性については 「文書ドキュメント で説明しています。また特殊なセル書式については、com.sun.star.table.CellProperties サービスで処理します。▼このサービスで使用する主要な属性については、以下の節で説明します。

▼これらの属性は、個々のセルおよびセル範囲に対して指定できます。

Template:Documentation/Note

▼背景色および影

com.sun.star.table.CellProperties サービスには、背景色および影の表示指定用に、以下の属性が用意されています。

CellBackColor (Long)
テーブルのセルの背景色。
IsCellBackgroundTransparent (Boolean)
背景色を透明にする指定。
ShadowFormat (struct)
セルの影の指定 (com.sun.star.table.ShadowFormat に定められた構造体)。

com.sun.star.table.ShadowFormat 構造体とセルの影指定は、以下のような関係になっています。

Location (enum)
影の位置 (com.sun.star.table.ShadowLocation 構造体の値)。
ShadowWidth (Short)
100 分の 1 ミリ単位で指定した影の幅。
IsTransparent (Boolean)
影を透明にする指定。
Color (Long)
影の色。

以下のサンプルコードでは、B2 セルへの数値 1000 の入力、CellBackColor 属性による背景色の赤への変更、左下側 1 mm の位置への明るい灰色の影の表示を行います。

Dim Doc As Object
Dim Sheet As Object
Dim Cell As Object
Dim ShadowFormat As New com.sun.star.table.ShadowFormat
 
Doc = StarDesktop.CurrentComponent
Sheet = Doc.Sheets(0)
Cell = Sheet.getCellByPosition(1,1)
 
Cell.Value = 1000
 
Cell.CellBackColor = RGB(255, 0, 0)
 
ShadowFormat.Location = com.sun.star.table.ShadowLocation.BOTTOM_RIGHT
ShadowFormat.ShadowWidth = 100
ShadowFormat.Color = RGB(160, 160, 160)
 
Cell.ShadowFormat = ShadowFormat

▼テキストの配置

Apache OpenOffice▼には、セルのテキスト配置を指定する各種の機\'94\'5cが用意されています。

▼以下の属性は、テキストの水平および垂直方向の配置を指定するものです。

HoriJustify (enum)
テキストの水平方向の配置 (com.sun.star.table.CellHoriJustify の値)。
VertJustify (enum)
テキストの垂直方向の配置 (com.sun.star.table.CellVertJustify の値)。
Orientation (enum)
テキストの向き (com.sun.star.table.CellOrientation に定められた値)。
IsTextWrapped (Boolean)
セル内の自動行ブレークを許可する指定。
RotateAngle (Long)
100 分の 1 度単位で指定したテキストの回転角。

▼以下のサンプルコードでは、左上隅にあるセルの\'95\'5c示を「縦書き」 (stack) にして、文字を 1 文字ずつ上下方向に並べて\'95\'5c示します。▼なお、文字の回転は指定していません。

Dim Doc As Object
Dim Sheet As Object
Dim Cell As Object
 
Doc = StarDesktop.CurrentComponent
Sheet = Doc.Sheets(0)
Cell = Sheet.getCellByPosition(1,1)
 
Cell.Value = 1000
 
Cell.HoriJustify = com.sun.star.table.CellHoriJustify.LEFT
Cell.VertJustify = com.sun.star.table.CellVertJustify.TOP
Cell.Orientation = com.sun.star.table.CellOrientation.STACKED

▼数値、日付、テキストの\'95\'5c示書式

Apache OpenOffice には、日付および時刻に対する各種の\'95\'5c示書式が用意されています。▼これらの\'95\'5c示書式にはそれぞれ固有の内部番号が割り当てられており、NumberFormat 属性による書式指定もこの番号を使用します。Apache OpenOffice ▼ では、queryKey および addNew メ\'83\'5cッドを利用して、既存の数の書式だけでなく、数の書式をユーザー定義することもできます。▼これらのメ\'83\'5cッドには、以下のようなオブジェクト呼び出しでアクセスします。

NumberFormats = Doc.NumberFormats

書式の指定は、Apache OpenOffice Basic の Format 関数とよく似た形式のフォーマット用文字列を使用します。▼ただし両者の間には大きな違いがあり、Format 関数のフォー\'83\'7dット用文字列は英語式の小数点と千単位の桁区切り記号を使用しますが、NumberFormats オブジェクトのフォー\'83\'7dット用文字列には、各ロケール別の記号を使う必要があります。

▼以下のサンプルコードでは、B2 セルに対して、小数部を 3 桁\'95\'5c示とし、コン\'83\'7dを千単位の桁区切りの記号とする数の書式を指定しています。

Dim Doc As Object
Dim Sheet As Object
Dim Cell As Object
Dim NumberFormats As Object
Dim NumberFormatString As String
Dim NumberFormatId As Long
Dim LocalSettings As New com.sun.star.lang.Locale
 
Doc = StarDesktop.CurrentComponent
Sheet = Doc.Sheets(0)
Cell = Sheet.getCellByPosition(1,1)
 
Cell.Value = 23400.3523565
 
LocalSettings.Language = "en"
LocalSettings.Country = "us"
 
NumberFormats = Doc.NumberFormats
NumberFormatString = "#,##0.000"
 
NumberFormatId = NumberFormats.queryKey(NumberFormatString, LocalSettings, True)
If NumberFormatId = -1 Then
   NumberFormatId = NumberFormats.addNew(NumberFormatString, LocalSettings)
End If
 
MsgBox NumberFormatId
Cell.NumberFormat = NumberFormatId

▼セルの書式設定用オプションについては、' Calc 上の通常の操作で書式設定を行う際に用いる、Template:セルの書式設定OOo のダイアログも参照してください。

▼ページ属性

ページ属性では、ドキュメントの各ページの示内容に対する書式設定および、全ページに共通して配置する項目の設定などを行います。▼具体的には、以下のようなオプションを指定します。

  • ▼用紙サイズ
  • ▼ページ余白
  • ▼ヘッダとフッタ

▼ページ書式は、他の書式指定と設定法が異なります。セル、段落、テキストの書式は直接指定できますが、ページ書式はページスタイルを用いた間接的な設定も行えます。▼たとえば、ヘッダやフッタは、ページスタイルとして登録できます。

▼以降の節では、\'95\'5c計算ドキュメントの主要なページ書式設定オプションについて説明します。▼ここで説明するページスタイルの多くは、文書ドキュメントと共通するものです。こうした共通で使用されるページ属性は、com.sun.star.style.PageProperties サービスで定義されています。これに対して、表計算ドキュメント固有のページ属性は、com.sun.star.sheet.TablePageStyle サービスで定義されています。

Template:Documentation/Note

▼ページ背景

com.sun.star.style.PageProperties サービスには、ページ背景に関する以下の属性が用意されています。

BackColor (long)
背景の色。
BackGraphicURL (String)
背景に表示する画像の URL。
BackGraphicFilter (String)
背景用の画像に対するフィルタ名。
BackGraphicLocation (Enum)
背景用の画像の位置 (列挙型で定められた値)。
BackTransparent (Boolean)
背景を透明にする指定。

▼ページ書式

ページ書式の指定には、com.sun.star.style.PageProperties サービスを使用します。

IsLandscape (Boolean)
横長書式。
Width (long)
100 分の 1 ミリ単位で指定したページの幅。
Height (long)
100 分の 1 ミリ単位で指定したページの高さ。
PrinterPaperTray (String)
使用するプリンタの用紙トレイの名前。

▼以下のサンプルコードでは、「標準」ページスタイルのページサイズを、A5 サイズ (高さ 14.8 cm、幅 21 cm) の横方向に設定します。

Dim Doc As Object
Dim Sheet As Object
Dim StyleFamilies As Object 
Dim PageStyles As Object
Dim DefPage As Object
 
Doc = StarDesktop.CurrentComponent
StyleFamilies = Doc.StyleFamilies
PageStyles = StyleFamilies.getByName("PageStyles")
DefPage = PageStyles.getByName("Default")
 
DefPage.IsLandscape = True
DefPage.Width = 21000
DefPage.Height = 14800

▼ページ余白、外枠、影

com.sun.star.style.PageProperties サービスには、ページの余白、外枠、影の設定用に、以下の属性が用意されています。

LeftMargin (long)
100 分の 1 ミリ単位で指定したページの左余白。
RightMargin (long)
100 分の 1 ミリ単位で指定したページの右余白。
TopMargin (long)
100 分の 1 ミリ単位で指定したページの上余白。
BottomMargin (long)
100 分の 1 ミリ単位で指定したページの下余白。
LeftBorder (struct)
左側の外枠線の指定 (com.sun.star.table.BorderLine 構造体)。
RightBorder (struct)
右側の外枠線の指定 (com.sun.star.table.BorderLine 構造体)。
TopBorder (struct)
上側の外枠線の指定 (com.sun.star.table.BorderLine 構造体)。
BottomBorder (struct)
ページ罫線の下の線の指定 (com.sun.star.table.BorderLine 構造体)。
LeftBorderDistance (long)
100 分の 1 ミリ単位で指定した、左側の外枠線とページ本文との距離。
RightBorderDistance (long)
100 分の 1 ミリ単位で指定した、右側の外枠線とページ本文との距離。
TopBorderDistance (long)
100 分の 1 ミリ単位で指定した、上側の外枠線とページ本文との距離。
BottomBorderDistance (long)
100 分の 1 ミリ単位で指定した、下側の外枠線とページ本文との距離。
ShadowFormat (struct)
ページのコンテンツ領域の影の指定 (com.sun.star.table.ShadowFormat 構造体)。

▼以下のサンプルコードでは、「標準」ページスタイルの左および右側の余白を、1 センチメートルに指定しています。

Dim Doc As Object
Dim Sheet As Object
Dim StyleFamilies As Object 
Dim PageStyles As Object
Dim DefPage As Object
 
Doc = StarDesktop.CurrentComponent
StyleFamilies = Doc.StyleFamilies
PageStyles = StyleFamilies.getByName("PageStyles")
DefPage = PageStyles.getByName("Default")
 
DefPage.LeftMargin = 1000
DefPage.RightMargin = 1000

▼ヘッダとフッタ

ヘッダおよびフッタもページ属性として扱われるもので、これらも com.sun.star.style.PageProperties サービスで定義されています。▼ヘッダの書式設定には、以下の属性を使用します。

HeaderIsOn (Boolean)
ヘッダを有効化。
HeaderLeftMargin (long)
100 分の 1 ミリ単位で指定した、左ページ余白からヘッダまでの距離。
HeaderRightMargin (long)
100 分の 1 ミリ単位で指定した、右ページ余白からヘッダまでの距離。
HeaderBodyDistance (long)
100 分の 1 ミリ単位で指定した、ページ本文領域からヘッダまでの距離。
HeaderHeight (long)
100 分の 1 ミリ単位で指定したヘッダの高さ。
HeaderIsDynamicHeight (Boolean)
ヘッダの高さを表示内容に自動的に合わせる指定。
HeaderLeftBorder (struct)
ヘッダ周囲の左側の外枠線の詳細指定 (com.sun.star.table.BorderLine 構造体)。
HeaderRightBorder (struct)
ヘッダ周囲の右側の外枠線の詳細指定 (com.sun.star.table.BorderLine 構造体)。
HeaderTopBorder (struct)
ヘッダ周囲の上側の外枠線の詳細指定 (com.sun.star.table.BorderLine 構造体)。
HeaderBottomBorder (struct)
ヘッダ周囲の下側の外枠線の詳細指定 (com.sun.star.table.BorderLine 構造体)。
HeaderLeftBorderDistance (long)
100 分の 1 ミリ単位で指定した、左側の外枠線からヘッダ本文までの距離。
HeaderRightBorderDistance (long)
100 分の 1 ミリ単位で指定した、右側の外枠線からヘッダ本文までの距離。
HeaderTopBorderDistance (long)
100 分の 1 ミリ単位で指定した、上側の外枠線からヘッダ本文までの距離。
HeaderBottomBorderDistance (long)
100 分の 1 ミリ単位で指定した、下側の外枠線からヘッダ本文までの距離。
HeaderIsShared (Boolean)
左右のページで共通のヘッダを使う指定 (HeaderTextHeaderTextLeftHeaderTextRight を参照)。
HeaderBackColor (long)
ヘッダの背景色。
HeaderBackGraphicURL (String)
背景に表示する画像の URL。
HeaderBackGraphicFilter (String)
ヘッダの背景画像に対するフィルタ名。
HeaderBackGraphicLocation (Enum)
ヘッダの背景画像の位置 com.sun.star.style.GraphicLocation の列挙型で定められた値)。
HeaderBackTransparent (Boolean)
ヘッダの背景を透明に表示する指定。
HeaderShadowFormat (struct)
ヘッダの影の詳細指定 (com.sun.star.table.ShadowFormat 構造体)。

▼フッタの書式設定には、以下の属性を使用します。

FooterIsOn (Boolean)
フッタを有効化。
FooterLeftMargin (long)
100 分の 1 ミリ単位で指定した、左ページ余白からフッタまでの距離。
FooterRightMargin (long)
100 分の 1 ミリ単位で指定した、右ページ余白からフッタまでの距離。
FooterBodyDistance (long)
100 分の 1 ミリ単位で指定した、ページ本文領域からフッタまでの距離。
FooterHeight (long)
100 分の 1 ミリ単位で指定したフッタの高さ。
FooterIsDynamicHeight (Boolean)
フッタの高さを表示内容に自動的に合わせる指定。
FooterLeftBorder (struct)
フッタ周囲の左側の外枠線の詳細指定 (com.sun.star.table.BorderLine 構造体)。
FooterRightBorder (struct)
フッタ周囲の右側の外枠線の詳細指定 (com.sun.star.table.BorderLine 構造体)。
FooterTopBorder (struct)
フッタ周囲の上側の外枠線の詳細指定 (com.sun.star.table.BorderLine 構造体)。
FooterBottomBorder (struct)
フッタ周囲の下側の外枠線の詳細指定 (com.sun.star.table.BorderLine 構造体)。
FooterLeftBorderDistance (long)
100 分の 1 ミリ単位で指定した、左側の外枠線からフッタ本文までの距離。
FooterRightBorderDistance (long)
100 分の 1 ミリ単位で指定した、右側の外枠線からフッタ本文までの距離。
FooterTopBorderDistance (long)
100 分の 1 ミリ単位で指定した、上側の外枠線からフッタ本文までの距離。
FooterBottomBorderDistance (long)
100 分の 1 ミリ単位で指定した、下側の外枠線からフッタ本文までの距離。
FooterIsShared (Boolean)
左右のページで共通のフッタを使う指定 (FooterTextFooterTextLeftFooterTextRight を参照)。
FooterBackColor (long)
フッタの背景色。
FooterBackGraphicURL (String)
背景に表示する画像の URL。
FooterBackGraphicFilter (String)
フッタの背景画像に対するフィルタ名。
FooterBackGraphicLocation (Enum)
フッタの背景画像の位置 (com.sun.star.style.GraphicLocation の列挙型で定められた値)。
FooterBackTransparent (Boolean)
フッタの背景を透明に表示する指定。
FooterShadowFormat (struct)
フッタの影の詳細指定 (com.sun.star.table.ShadowFormat 構造体)。

▼ヘッダおよびフッタの\'95\'5c示テキストの変更

▼\'95\'5c計算ドキュメントのヘッダやフッタの内容へアクセスするには、以下の属性を使用します。

LeftPageHeaderContent (Object)
偶数ページのヘッダの表示内容 (com.sun.star.sheet.HeaderFooterContent サービス)。
RightPageHeaderContent (Object)
奇数ページのヘッダの表示内容 (com.sun.star.sheet.HeaderFooterContent サービス)。
LeftPageFooterContent (Object)
偶数ページのフッタの表示内容 (com.sun.star.sheet.HeaderFooterContent サービス)。
RightPageFooterContent (Object)
奇数ページのフッタの表示内容 (com.sun.star.sheet.HeaderFooterContent サービス)。

偶数ページと奇数ページで共通のヘッダやフッタを用いる場合は (FooterIsShared 属性に False を指定)、それぞれ奇数ページ用の属性を指定します。

これらのオブジェクトは、com.sun.star.sheet.HeaderFooterContent サービスをサポートしたオブジェクトを返します。このサービスは、LeftTextCenterTextRightText という (疑似) 属性を用いて、Apache OpenOffice Calc のヘッダやフッタに関する 3 種類のテキスト情報を取得します。

以下のサンプルコードを使うと「Just a Test.」と表示されます。「デフォルト」テンプレートからヘッダの左側のテキストフィールドに記述します。

Dim Doc As Object
Dim Sheet As Object
Dim StyleFamilies As Object 
Dim PageStyles As Object
Dim DefPage As Object
Dim HText As Object
Dim HContent As Object
Doc = StarDesktop.CurrentComponent
StyleFamilies = Doc.StyleFamilies
PageStyles = StyleFamilies.getByName("PageStyles")
DefPage = PageStyles.getByName("Default")
 
DefPage.HeaderIsOn = True
HContent = DefPage.RightPageHeaderContent
HText = HContent.LeftText
HText.String = "Just a Test."
DefPage.RightPageHeaderContent = HContent

サンプルコードの最後の行に注意してください。テキストを変更する場合、変更を有効にするには、TextContent オブジェクトをヘッダに再割り当てする必要があります。

文書ドキュメント (Apache OpenOffice Writer) の場合、ヘッダやフッタは単一のテキストブロックから構成されているため、他の方法でヘッダやフッタの表示テキストを変更できます。以下の属性は、com.sun.star.style.PageProperties サービスに定義されています。

HeaderText (Object)
ヘッダの内容が表示されたテキストオブジェクト (com.sun.star.text.XText サービス)。
HeaderTextLeft (Object)
左側のページのヘッダの内容が表示されたテキストオブジェクト (com.sun.star.text.XText サービス)。
HeaderTextRight (Object)
右側のページのヘッダの内容が表示されたテキストオブジェクト (com.sun.star.text.XText サービス)。
FooterText (Object)
フッタの内容が表示されたテキストオブジェクト (com.sun.star.text.XText サービス)。
FooterTextLeft (Object)
左側のページのフッタの内容が表示されたテキストオブジェクト (com.sun.star.text.XText サービス)。
FooterTextRight (Object)
右側のページのフッタの内容が表示されたテキストオブジェクト (com.sun.star.text.XText サービス)。

▼以下のサンプルコードでは、文書ドキュメントの「標準」ページスタイルにヘッダを作成し、その\'95\'5c示テキストを「Just a Test.」としています。

Dim Doc As Object
Dim Sheet As Object
Dim StyleFamilies As Object 
Dim PageStyles As Object
Dim DefPage As Object
Dim HText As Object
 
Doc = StarDesktop.CurrentComponent
StyleFamilies = Doc.StyleFamilies
PageStyles = StyleFamilies.getByName("PageStyles")
DefPage = PageStyles.getByName("Default")
 
DefPage.HeaderIsOn = True
HText = DefPage.HeaderText 
 
HText.String = "Just a Test."

この場合は、HeaderText オブジェクトではなく、HeaderFooterContent 属性を使用してヘッダに直接アクセスしています。

▼中央揃え (\'95\'5c計算ドキュメントのみ)

com.sun.star.sheet.TablePageStyle サービスは、Apache OpenOffice Calc のページスタイルでのみ使用するもので、印刷するセル範囲をページの中央に配置させることができます。▼このサービスでは、以下の属性を利用できます。

CenterHorizontally (Boolean)
テーブルコンテンツを水平方向に中央揃え。
CenterVertically (Boolean)
テーブルコンテンツを垂直方向に中央揃え。

▼印刷対象の指定 (\'95\'5c計算ドキュメントのみ)

▼スプレッドシートの書式設定では、ページ上の各種要素を印刷させるかどうかを指定できます。com.sun.star.sheet.TablePageStyle サービスには、このような処理を行うために以下の属性が用意されています。

PrintAnnotations (Boolean)
セルのコメントを印刷する指定。
PrintGrid (Boolean)
セルのグリッド線を印刷する指定。
PrintHeaders (Boolean)
行と列の見出しを印刷する指定。
PrintCharts (Boolean)
シートに含まれるグラフを印刷する指定。
PrintObjects (Boolean)
埋め込みオブジェクトを印刷する指定。
PrintDrawing (Boolean)
図形描画オブジェクトを印刷する指定。
PrintDownFirst (Boolean)
シートの印刷範囲が複数ページにまたがる場合に、上から下の方向に印刷してから右側のページという順番で印刷する指定。
PrintFormulas (Boolean)
計算された値ではなく数式を印刷する指定。
PrintZeroValues (Boolean)
ゼロの値を印刷する指定。
Content on this page is licensed under the Public Documentation License (PDL).
Personal tools