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)の両方で動作する
・ボタンを押すとオープンダイアログが開き、ファイル名を返す(もしくはファイルを開く)
というマクロです。
そこまで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
ちゃんとした回答じゃなくてスイマセン。
ありがとうございます。
ExcelかOOoか判別して切り替えという方法でもいいですね。それで書いてみます。