「Web出版サイト」ベータ公開

Q&A集[?]

当サイトでのご質問の受付は終了しました

すべてのコンテンツを読み込み専用としたため、回答欄からも投稿できません

Apache OpenOffice/LibreOfficeのご質問はそれぞれのフォーラムへご投稿ください

質問コーナー

サイト内検索

分類メニュー

関連サイト


本日:1
昨日:0
総数:1409
現在:5


Macro(OpenOffice.org Basic)でのAuthor(作成者)の取得

ページOpenOffice.org FAQの登録ページ
投稿者new_OOo3
分類
edit/refer
優先順位
edit/refer
状態
edit/refer
カテゴリー
edit/refer
投稿日2010-06-06 11:11:19 (日)
OSWindowsXP
依存するページ
バージョン
edit/refer

メッセージ

回答ページでは行末に「~」を付加する必要はありません

Manual(手動)にて新規OOo fileを作成・保存する際に
「ファイル」=>「プロパティ」=>「全般」=>「ユーザーデータを使用する」
にcheckを入れて保存・終了後にFileのプロパティを確認すると下図の様に作成者欄にユーザーデータが入ります。

Author_manual.png


しかしながら同様の作業を下記macroにて実行しても作成者欄にユーザーデータが入力されません。

*********** Macro Code ********** 
Sub oAuthor
	Dim oDoc
	Dim oDummy()
	Dim oStore(1) As new com.sun.star.beans.PropertyValue 
	Dim oProps
	Dim oprop
		On Error Goto oBad 
		oDoc =     StarDesktop.loadComponentFromURL("private:factory/scalc", "_blank", 0, oDummy())
		'UserData set in Property
			oDocSettings = oDoc.createInstance("com.sun.star.document.Settings")
			oDocSettings.ApplyUserData = true
		'Parameter to be stored
			sName = "c:\temp\oAuthor.ods"
			sURL = ConvertToUrl(sName)
			oStore(0).Name="Overwrite"
			oStore(0).Value= true
			oStore(1).Name="Author"
			oStore(1).Value= true
		'Store
			oDoc.storeAsUrl(sURL, oStore())
		'get the Author
			oProps = oDoc.getPropertySetInfo()
			oprop = oDoc.getDocumentInfo().Author
			msgbox(oprop)
		'Close
			oDoc.dispose
		Exit sub
	oBad: 
			mErr = Error
			msgbox(mErr & " : i = " & i )
			oDoc.dispose
			Kill(sURL) 
End Sub
*************************************************************
AuthorMacro1.png

つきましては、Macroにて作成するDocumentにて作成者欄を入力する方法をご教示頂けます様お願いします。


無題

(2010-06-06 13:20:45 (日))

oDoc = StarDesktop.loadComponentFromURL("private:factory/scalc", "_blank", 0, Array())
Wait(10)

でOkのようでした。
http://hermione.s41.xrea.com/pukiwiki/pukiwiki.php?OOoBasic%2FGeneric%2FLoadAndStore#c164a65c

上手くいきません。

new_OOo3 (2010-06-06 15:10:50 (日))

ご回答ありがとうございます。

ご指摘の通りWait(10)を追加しましたが結果は変わりません。
当方のPCスペックが低いと思いwait(10000)まで変更しましたが、結果は同じです。
誠に恐縮ですが、他の要因をご教示頂けます様お願いします。
蛇足ですが当方のPCスペックを以下に記します。

[ PC Spec ]
型番 : DELL LATITUDE X300
CPU : PentiumM 1.2GHz
memory : 128MB + 1024MB

わたしの場合はOK

M.Kamataki (2010-06-06 21:35:07 (日))

oDoc = StarDesktop.loadComponentFromURL("private:factory/scalc", "_blank", 0, Array())
Wait(10)

のように書き変えたらOKでしたよ。

>ご指摘の通りWait(10)を追加しましたが結果は変わりません。

書き換えることによって、メッセージボックスの確認時にユーザー名が表示されるようになりました。そのような変化はありませんでしたか。

解決しました。

new_OOo3 (2010-06-07 00:27:48 (月))

無題 様、M.Kamataki

ご回答ありがとうございました。

ご両人のご指摘通りでした。
当方のcodeは「=」の後にTabが入っていたのが原因のようです。

お騒がせしまして申し訳ございません。

0001Author.png

getDocumentInfo について

はにゃ? (2010-06-07 00:58:11 (月))

上記コードで利用されている getDocumentInfo メソッドを実装するインターフェースは 3 系では非推奨になっています。
http://api.openoffice.org/docs/common/ref/com/sun/star/document/XDocumentInfoSupplier.html

その代わりに追加されたインターフェース css.document.XDocumentPropertiesSupplier を利用したほうがいいと思います。
http://api.openoffice.org/docs/common/ref/com/sun/star/document/XDocumentPropertiesSupplier.html

お名前:
題名:


添付ファイル: file0001Author.png 838件 [詳細] fileAuthorMacro1.png 829件 [詳細] fileAuthor_manual.png 857件 [詳細]