OpenOfficeのマクロでダイアログを開くには?


OpenOfficeのCalcを使用しています。マクロについて質問です。
ExcelマクロのVBAで、ダイアログボックスを開くのに下記コードを使用しています。

dlgAnswer = Application.Dialogs(xlDialogOpen).Show
If dlgAnswer = False Then
Exit Sub
End If


このコードは、OpenOffice.org(Go-oo 3.1.0)では動作しません。1行目でエラーになります。
OpenOffice.orgで動作するコードはどのようになるでしょうか?

条件としては、

  ・ExcelとOpenOffice.org(Go-oo)の両方で動作する
  ・ボタンを押すとオープンダイアログが開き、ファイル名を返す(もしくはファイルを開く)

というマクロです。

回答の条件
  • 1人2回まで
  • 登録:2009/08/02 17:03:55
  • 終了:2009/08/09 17:05:03

回答(1件)

id:CoolDriver No.1

CoolDriver回答回数20ベストアンサー獲得回数42009/08/03 21:58:31

ポイント60pt

そこまでOOoBasicに詳しくないのでアレなんですけども、ファイルダイアログに関しては、

ExcelとOpenOffice.org(Go-oo)の両方で動作する

は、なかなか厳しいと思います。OOoBasicの場合、以下のコードでダイアログを開くことができます。

   Dim filePicker As Object
   filePicker = createUnoService("com.sun.star.ui.dialogs.FilePicker")

   Dim dialogAnswer As Integer
   dialogAnswer = filePicker.execute()
   If (dialogAnswer = com.sun.star.ui.dialogs.ExecutableDialogResults.CANCEL) Then
     Exit Sub
   End If

以下、ファイル名の取得等は、ここらへんが参考になるかと。

http://hermione.s41.xrea.com/pukiwiki/pukiwiki.php?OOoBasic%2FGe...

http://bd.tank.jp/nikkei/ の 2005.4 「ファイルの読み書き」等


ネタとして、VBAとOOoBasicの判別方法で、こんなことは出来るのですが、なんだかなぁ。

Option Explicit
Function isVBA() As Boolean
  On Error goto undefined
  Dim dummy As Variant 
  dummy = xlDialogOpen '// なんでもいいけど...

  isVBA = True
  Exit Function
undefined:
  isVBA = False
End Function

ちゃんとした回答じゃなくてスイマセン。

id:ikeuchihiroki

ありがとうございます。

ExcelかOOoか判別して切り替えという方法でもいいですね。それで書いてみます。

2009/08/05 19:43:45

コメントはまだありません

この質問への反応(ブックマークコメント)

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

絞り込み :
はてなココの「ともだち」を表示します。
回答リクエストを送信したユーザーはいません