質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.47%
BASIC

BASICとは、手続き型言語の一つ。英語に準した簡易な記述になっており、基本的には初心者向けのプログラミング言語です。1970年代以降のコンピュータでよく使用された言語で、様々な拡張を加え現在も利用されています。

Q&A

解決済

2回答

266閲覧

Libreoffice basic でファイル名を取得したい。

HorinoTora

総合スコア9

BASIC

BASICとは、手続き型言語の一つ。英語に準した簡易な記述になっており、基本的には初心者向けのプログラミング言語です。1970年代以降のコンピュータでよく使用された言語で、様々な拡張を加え現在も利用されています。

0グッド

0クリップ

投稿2024/01/02 08:13

実現したいこと

Libreoffice basic( writer, calc )でファイル名を取得したい。

前提

ヘッダーに最終更新日時を入れたいと考えています。そのため、まず開いている
ファイル名(.odt/.ods)を取得したい。

発生している問題・エラーメッセージ

「オブジェクト変数は設定できていない」

### 該当のソースコード dim oDoc as Object oDoc = ThisComponent strFileName = oDoc.Url <= ここでエラーとなる ```ここに言語名を入力 libreoffice basic office のバージョンは 7.6

試したこと

ここに問題に対して試したことを記載してください。

補足情報(FW/ツールのバージョンなど)

マクロの杜にあるサンプルはマクロ内にファイル名を与えているので参考にならない。
あるいは新たなファイルを作るものなので、私が探しているものではないのです。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

maisumakun

2024/01/02 08:38

LibreOffice公式、あるいはそれに近いドキュメントは調べてみましたか?
guest

回答2

0

ベストアンサー

LibreOffice、自身のファイル情報を取得する。
(OpenOffice Basic)自身のファイルの最終更新日時を知りたい

BASIC

1dim oDoc as Object 2 oDoc = ThisComponent 3 strFileName = oDoc.getUrl 4

が、正しいようです。
あと
ファイル名
Dir(strFileName ,0)
ファイルパス
ConvertFromUrl(strFileName )
更新日時
FileDateTime( ConvertFromUrl(strFileName ) )
が取得できると書いてありました。

getLocation()でも、取得できるようですが
何が違うのかはよくわかりません。


と回答してしまいましたが、その後試したところ、URLだけでも問題ないようですね。
回答を消すのがいいのか、どうするのがいいのかよくわからないので、追記で書きますが

今回の問題は、エラーメッセージから考えると
ThisComponentで、オブジェクトが取得できてないことが原因のようですね。
どのような使い方で提示のコードを実行したのでしょうか。

普通に実行するとThisComponentで現在の?ドキュメントを取得できるようです。

投稿2024/01/02 20:54

編集2024/01/02 22:44
kts2634

総合スコア42

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

「LibreOffice Basicで他ブックに書き込みたい」への回答にあるリンクたどった情報によると,

dim oDoc as Object oDoc = ThisComponent strFileName = oDoc.getLocation()

とかで取ってこれそうでしょうか?
ただし,hasLocation()trueが返ってくることが前提でしょうが。

投稿2024/01/02 15:10

ujimushi_sradjp

総合スコア2096

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

HorinoTora

2024/01/03 13:02

私の質問に対し、応答して頂いてありがとうございます。 私のテスト用のプログラムでのdim oDoc の位置が間違っていました。 テスト用プログラムのメインプログラムで、oDocを宣言すれば期待した通りに なりました。 どうもありがとうございました。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.47%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問