ページ 11

解決 VBAからCALC 文字列の配置

投稿記事Posted: 2月 8th, 2011, 7:57 am
by htmMaMs
VB(できればVBA)からCALCドキュメントを開き、セルの文字列の配置を縦書きに設定する方法を教えてください。
windowsXP、ACCESS2000のVBAで作業しています。

Re: VBAからCALC 文字列の配置

投稿記事Posted: 2月 8th, 2011, 2:00 pm
by tani
まずはOOo Basicでどう書くか調べると良いと思います。
(英語の情報しかないことが多いのでググる際には英単語のみを使うと良いと思います。)

で、OOo BasicではA1のセルを縦書きにするのに以下のように書くということが分かると、
コード: 全て選択   展開ビュー折りたたみビュー
Sub Main
  oDoc = ThisComponent
  oSheets = oDoc.getSheets()
  oSheet = oSheets.getByIndex(0)
  oRange = oSheet.getCellRangeByName("A1")
  oRange.setString("ああああ")
  oRange.Orientation = 3
  oRange.AsianVerticalMode = True
End Sub

これをVBAに書きなおせば良いということになります。こんな感じです。
コード: 全て選択   展開ビュー折りたたみビュー
Sub Main()
  ' oDoc = ThisComponent
  Set OOo = CreateObject("com.sun.star.ServiceManager")
  Set oDesktop = OOo.createInstance("com.sun.star.frame.Desktop")
  Dim dummy()
  Set oDoc = oDesktop.LoadComponentFromURL("private:factory/scalc", "_blank", 0, dummy)
  Set oSheets = oDoc.getSheets()
  Set oSheet = oSheets.getByIndex(0)
  Set oRange = oSheet.getCellRangeByName("A1")
  oRange.setString ("ああああ")
  oRange.Orientation = 3
  oRange.AsianVerticalMode = True
End Sub


※Access2003のVBAと、LibreOfficeで試しています。

Re: VBAからCALC 文字列の配置

投稿記事Posted: 2月 8th, 2011, 4:44 pm
by htmMaMs
tani様

早速、投稿していただきありがとうございます。
無事、縦書きにできました。
一応、ooo basicの方を調べるのですが、
なかなかうまくいきません :(
本当にありがとうございました。

Re: 解決 VBAからCALC 文字列の配置

投稿記事Posted: 2月 8th, 2011, 6:01 pm
by tani
APIの一次情報っぽいのは↓ですね。(ホントの一次情報はOOo本体のソースコードですが。。。)
http://api.openoffice.org/docs/common/r ... le-ix.html

例えば今回のセルのプロパティだと以下です。
http://api.openoffice.org/docs/common/r ... rientation

参考までに。

Re: 解決 VBAからCALC 文字列の配置

投稿記事Posted: 2月 9th, 2011, 6:04 am
by htmMaMs
tani様

ありがとうございます。
参考にさせていただきます :D