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

マクロの作成、スクリプトの作成、APIの使い方
返信する
htmMaMs
記事: 9
登録日時: 12月 20, 2010, 11:51 am

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

投稿記事 by htmMaMs »

VB(できればVBA)からCALCドキュメントを開き、セルの文字列の配置を縦書きに設定する方法を教えてください。
windowsXP、ACCESS2000のVBAで作業しています。
最後に編集したユーザー htmMaMs [ 2月 8, 2011, 4:44 pm ], 累計 1 回
OpenOffice 3.2 on Windows XP
tani
記事: 60
登録日時: 6月 13, 2008, 10:12 am

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

投稿記事 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で試しています。
htmMaMs
記事: 9
登録日時: 12月 20, 2010, 11:51 am

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

投稿記事 by htmMaMs »

tani様

早速、投稿していただきありがとうございます。
無事、縦書きにできました。
一応、ooo basicの方を調べるのですが、
なかなかうまくいきません :(
本当にありがとうございました。
OpenOffice 3.2 on Windows XP
tani
記事: 60
登録日時: 6月 13, 2008, 10:12 am

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

投稿記事 by tani »

APIの一次情報っぽいのは↓ですね。(ホントの一次情報はOOo本体のソースコードですが。。。)
http://api.openoffice.org/docs/common/r ... le-ix.html

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

参考までに。
htmMaMs
記事: 9
登録日時: 12月 20, 2010, 11:51 am

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

投稿記事 by htmMaMs »

tani様

ありがとうございます。
参考にさせていただきます :D
OpenOffice 3.2 on Windows XP
返信する

“マクロと UNO API”に戻る