Top > OOoBasic > Calc > font

セルのフォントとフォント効果 Edit

メニュー -> 書式 -> セル で開くダイアログのセルの書式設定ではフォントタブでフォントが,フォント効果タブで文字の効果を設定できます。また,セルだけでなく同じプロパティーを持つ,セル範囲,シートオブジェクトでも設定可能です。

フォント名 Edit

フォントの種類やサイズは英数字用フォントと日本語用フォント (アジア圏の 2 バイトフォント) を別々に設定します。英数字用フォントの設定には,フォントの種類に CharFontName, 文字のサイズに CharHeight プロパティーを使用します。また,日本語用フォントの設定には,フォントの種類に CharFontNameAsian, 文字のサイズに CharHeightAsian プロパティーを使用します。

Sub font_test1()
Dim oSheet As Object, oCell As Object
  oSheet = ThisComponent.CurrentController.ActiveSheet
  oCell = oSheet.getCellByPosition( 1, 3 ) ' "B4"
  oCell.String = "font" + Chr(12424) + Chr(12426)
  oSheet.getCellByPosition( 2, 3 ).String = oCell.CharFontName
  oCell.CharFontName = "Courier"
  oCell.CharHeight = 12 ' in pt
  oCell.CharFontNameAsian = "Andale Sans UI"
 oCell.CharHeightAsian = 9
End Sub

持っていないフォント名も指定可能ですが,別のフォントが表示されます。また,サイズもフォントが持っていないサイズの場合には表示が変更されます (ラスターフォントの場合)。

また,CharFontNameComplex, CharHeightComplex プロパティーを使用すれば混ざった文も指定が可能です。

フォントのスタイル Edit

フォントのスタイルの斜体と太字は別々に設定します。

斜体 Edit

フォントスタイルの斜体は,CharPosture, CharFontNameAsian プロパティーで設定します。それぞれ英数字用フォントと,日本語用フォントの設定に使用します。これらのプロパティーは com.sun.star.awt.FontSlant enums で指定します。

Sub posture()
Dim oSheet As Object, oCell As Object
  oSheet = ThisComponent.CurrentController.ActiveSheet
  oCell = oSheet.getCellRangeByName( "B3" )
  oCell.String = "ITALIC"
  oCell.CharPosture = com.sun.star.awt.FontSlant.ITALIC
  oCell.CharPostureAsian = com.sun.star.awt.FontSlant.ITALIC
End Sub

このプロパティーは設定しても使用しているフォントに斜体が含まれている場合にしか有効ではありません。最近の多くの TrueType フォントや OpenType フォントには斜体があるので ITALIC で十分です。

太字 Edit

フォントスタイルの太字は,CharWeight, CharWeightAsian プロパティーで設定します。それぞれ英数字用フォントと,日本語用フォントの設定に使用します。これらのプロパティーは com.sun.star.awt.FontWeight constants の定数で設定します。この定数には様々な値がありますが,これはフォントの特定に用いられる値であるためです。文字を太字にするには BOLD だけで十分です。

Sub weight()
Dim oSheet As Object, oCell As Object
  oSheet = ThisComponent.CurrentController.ActiveSheet
  oCell = oSheet.getCellRangeByName( "B4" )
  oCell.String = "BOLD"
  MsgBox oCell.CharWeight
  oCell.CharWeight = com.sun.star.awt.FontWeight.BOLD
  MsgBox oCell.CharWeight
End Sub

日本語用フォントも同様に設定できます。また,これらの定数のうち使用しているフォントにそのスタイルが用意されていなければ表示が正しくなりません。

太字斜体 Edit

太字斜体は斜体と太字を両方設定するだけです。

フォントの言語 Edit

フォントの言語 (ロケール) の設定には,CharLocale, CharLocaleAsian プロパティーを使用します。これらのプロパティーは com.sun.star.lang.Locale struct で指定します。この struct には Language, Country, Variant の要素がありますが,ここでは LanguageCountry だけで十分です。

Sub font_locale()
Dim oSheet As Object, oCell As Object
Dim oLocale As New com.sun.star.lang.Locale
 oSheet = ThisComponent.CurrentController.ActiveSheet
 oCell = oSheet.getCellRangeByName( "B4" )
 MsgBox oCell.CharLocaleAsian.Language + ", " + oCell.CharLocaleAsian.Country
 oCell.String = "korean"
 oLocale.Language = "ko"
 oLocale.Country = "KR"
 oCell.CharLocaleAsian = oLocale
 MsgBox oCell.CharLocaleAsian.Language + ", " + oCell.CharLocaleAsian.Country
End Sub

上のコードを実行すると,日本語用フォントの側の言語が韓国語になります。 Language, Country は共に ISO コードを文字列で指定します。日本語の場合は順に "ja", "JP" となります。

フォントの色 Edit

フォントの色を設定するには,CharColor プロパティーを使用します。

Sub fontcolor()
Dim oSheet As Object, oCell As Object
 oSheet = ThisComponent.CurrentController.ActiveSheet
 oCell = oSheet.getCellRangeByName( "B7" )
 oCell.setString( "color1" )
 oCell.CharColor = RGB( 255, 0, 0 )
 oCell = oSheet.getCellRangeByName( "C7" )
 oCell.setString( "color2" )
 oCell.CharColor = "&H0000ff"
End Sub

下線 Edit

下線を設定するには,CharUnderline, CharUnderlineColor, CharUnderlineHasColor プロパティーを使用します。

下線の種類を設定するのに CharUnderline プロパティーを使用します。このプロパティーは com.sun.star.awt.FontUnderline constants の定数で指定します。CharUnderlineColor プロパティーでは下線の色を設定します。CharUnderlineHasColor プロパティーは下線が自動以外の色を持つかどうかを調べます。

Sub underline()
Dim oSheet As Object, oCell As Object
 oSheet = ThisComponent.CurrentController.ActiveSheet
 oCell = oSheet.getCellByPosition( 2, 1 ) ' "C2"
 oCell.String = "double line"
 oCell.CharUnderline = com.sun.star.awt.FontUnderline.DOUBLE
 MsgBox oCell.CharUnderlineHasColor
 oCell.CharUnderlineColor = "&HCC0033"  ' RGB( 204, 0, 51 )
 MsgBox oCell.CharUnderlineHasColor
End Sub

上の例では文字に二重線の下線を設定したのち,下線の色を設定しています。

取り消し線 Edit

取り消し線の設定には,CharStrikeout, CharCrossedOut, CharWordMode プロパティーを使用します。

取り消し線の種類を設定するのに CharStrikeout プロパティーを使用します。このプロパティーは com.sun.star.awt.FontStrikeout constants の定数で設定します。CharCrossedOut プロパティーは取り消し線が引かれているかどうかを特定します。CharWordMode プロパティーは取り消し線を単語ごとに引くかどうかを設定します。

Sub strikeout()
Dim oSheet As Object, oCell As Object
 oSheet = ThisComponent.CurrentController.ActiveSheet
 oCell = oSheet.getCellRangeByName( "C3" )
 oCell.setString( "strikeouted text" )
 MsgBox oCell.CharCrossedOut
 oCell.CharStrikeout = com.sun.star.awt.FontStrikeout.SINGLE
 oCell.CharWordMode = True
 MsgBox oCell.CharCrossedOut
End Sub

強調記号 Edit

強調に用いる記号の設定には,CharEmphasis プロパティーを使用します。 CharEmphasis プロパティーの設定には com.sun.star.awt.FontEmphasisMark constants の定数で設定します。

Sub emphasis()
Dim oSheet As Object, oCell As Object
 oSheet = ThisComponent.CurrentController.ActiveSheet
 oCell = oSheet.getCellRangeByName( "D3" )
 oCell.String = "empasized text"
 oCell.CharEmphasis = com.sun.star.awt.FontEmphasisMark.CIRCLE
 MsgBox oCell.CharEmphasis
 oCell.CharEmphasis = com.sun.star.awt.FontEmphasisMark.CIRCLE + 10
 MsgBox oCell.CharEmphasis
End Sub

装飾 (浮き出し,中抜き,影) Edit

フォントの浮き出しの設定には, CharRelief プロパティーを, 中抜きの設定には, CharContoured プロパティーを, 影の設定には,CharShadowed プロパティーを使用します。

フォントの浮き出しの種類を設定は CharRelief プロパティーを com.sun.star.awt.FontRelief constans の定数で設定します。

Sub relief()
Dim oSheet As Object, oCella As Object, oCellb As Object
  oSheet = ThisComponent.CurrentController.ActiveSheet

  oCella = oSheet.getCellRangeByName( "E2" )
  oCella.String = "relief EMBOSSED"
  oCella.CharRelief = com.sun.star.awt.FontRelief.EMBOSSED

  oCellb = oSheet.getCellRangeByName( "E3" )
  oCellb.setString( "relief ENGRAVED" )
  oCellb.CharRelief = com.sun.star.awt.FontRelief.ENGRAVED
End Sub

いまのところ,フォントの浮き出しには浮き出しと浮き彫りの二つがあります。 中抜きおよび影の設定では使用するかしないかのどちらかをそれぞれ CharContoured, CharShadowed プロパティーに Boolean 型で設定します。

Sub contoured_and_shadowed()
Dim oSheet As Object, oCellc As Object, oCelld As Object
  oSheet = ThisComponent.CurrentController.ActiveSheet

  oCellc = oSheet.getCellRangeByName( "E4" )
  oCellc.String = "CONTOURED text"
  oCellc.CharContoured = True

  oCelld = oSheet.getCellRangeByName( "E5" )
  oCelld.String = "SHADOWED text"
  oCelld.CharShadowed = True
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