人力検索はてな
モバイル版を表示しています。PC版はこちら
i-mobile

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)の両方で動作する
・ボタンを押すとオープンダイアログが開き、ファイル名を返す(もしくはファイルを開く)

というマクロです。

●質問者: hot_ic
●カテゴリ:コンピュータ
✍キーワード:application Calc Excel EXIT go-oo
○ 状態 :終了
└ 回答数 : 1/1件

▽最新の回答へ

1 ● CoolDriver
●60ポイント

そこまで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か判別して切り替えという方法でもいいですね。それで書いてみます。

関連質問


●質問をもっと探す●



0.人力検索はてなトップ
8.このページを友達に紹介
9.このページの先頭へ
対応機種一覧
お問い合わせ
ヘルプ/お知らせ
ログイン
無料ユーザー登録
はてなトップ