DDEで楽天RSSにリンク †
ページ | OpenOffice.org FAQの登録ページ |
---|---|
投稿者 | princes19 |
分類 | |
優先順位 | |
状態 | |
カテゴリー | |
投稿日 | 2010-08-19 09:39:32 (木) |
OS | vista |
依存するページ | |
バージョン |
メッセージ †
回答ページでは行末に「~」を付加する必要はありません |
教えてください
楽天RSSを使って日経225先物の分足データを自動記録、リアルタイムグラフ表示する自作EXCELソフトのOOo移植にトライしています。
OOoで問題なく作れると言う印象を持っていますが、次の点で煮詰まっています。
と言うかエクセルのように簡単にいくのかと不安です。
まず、RSSにDDEリンクを貼った状態で起動すると毎回「編集→リンク→リンクを編集」の「ステータス(項目)」が「有効でない」になっています。
いちいち「更新」クリックで「自動」と言う表示に切り替えないとリンクしないのですがここを自動化する方法がわかりません。
また、
「[任意セル]="=DDE(""RSS"";""N225.FUT01.OS"";""現在値"")"」と言ったマクロ構文を作ってリンク式をマクロから埋め込んだ場合、セルには「=DDE("RSS";"N225.FUT01.OS";"現在値")」と正常に式が埋め込まれているのですが、「編集→リンク→リンクを編集」の「更新」のクリック操作が全く機能しない(反映されない)状態になります。
マクロで自動的にリンクを有効にする方法、及びマクロからの埋め込みについての症状に対する解説をお願いしたいのですが。
どうかよろしくお願いします。
もしかすると同じご質問 †
M.Kamataki (2010-08-19 10:55:10 (木))
マルチポストされているようですが、それはそれとして、どちらかで解決したら、当ページにもコメントくださいね。
で、同じ趣旨の質問が過去にもありました。faq/5/287「一定時間ごとにマクロを自動実行したい」です。質問された方の「まとめ」がないので、どの方法で解決されたのか、わからないのですが、いくつか解決策が紹介されています。
「楽天RSS」については、証券会社の口座が必要だったり、専用プログラムをインストールしたりと、簡単に試せるものではなさそうですから、できるだけ自己解決を試みてください。
マルチポストの件 †
princes19 (2010-08-19 11:24:06 (木))
先に質問したサイトで数日待ちましたが回答が寄せられない雰囲気なのでこちらでも質問させて貰いました。
もし、マナー違反とかならどちらかを閉鎖しますので指導してください。
よろしくお願いします。
コメントを忘れずに †
M.Kamataki (2010-08-19 11:50:55 (木))
当ページにコメントがないことを避けていただければ、良いと思います。
コメントの件は了解しました。 †
princes19 (2010-08-19 12:14:24 (木))
「一定時間ごとにマクロを自動実行したい」の記事は先週参考にさせていただきましたが、今回の質問とは内容が重複していないものです。
「一定時間ごとにマクロを自動実行したい」の質問の趣旨は「wait 5000」で問題なく実現できるものだと思います。
自己解決 その1 †
princes19 (2010-08-19 15:40:26 (木))
「できるだけ自己解決を試みてください。」とのお言葉なのでググりまくってみました。<DDEの有効化>
「ツール」→「オプション」→「CALC(ツリー)」→「全般(ツリー)」→「更新/読み込むときにリンクの更新」→常にするにチェック
これで、{起動すると毎回「編集→リンク→リンクを編集」の「ステータス(項目)」が「有効でない」になっています。}の件はわかりましたが、この有効化のプロセスをマクロ構文にするとどうなるのでしょうか?
また、マクロからの埋め込みについての症状に対する解説については引き続きどなたか是非お教えください。
よろしくおねがいします。
自動更新 †
ike@九州 (2010-08-19 16:12:37 (木))
リンクの自動更新はドキュメントの読み込み時の更新動作ですね。
以下では確認が取れました。Sub Test oDoc = ThisComponent '読み込み時に更新を常にするにチェック oSettings = oDoc.createInstance("com.sun.star.sheet.DocumentSettings") oSettings.LinkUpdateMode = 0 'DDEの挿入 oSheet = oDoc.getSheets.getByName("Sheet1") oCell = oSheet.getCellRangeByName("A1") oCell.Formula = "=DDE(""soffice"";""C:/test.ods"";""Sheet1.A1"")" 'マクロによる全てのリンク更新 oDDELink = oDoc.DDELinks.createEnumeration While oDDELink.hasMoreElements oDDELink.nextElement.refresh Wend End sub
#失礼しましたコピペ元は正常なのですが、コピペ後投稿欄内で改行されていてBackSpaceキーを使った為消えたようです。修正しました
問題解決 †
princes19 (2010-08-19 16:22:54 (木))
ありがとうございました。
(追伸)
Dim oSettings as object
Dim oDoc as object
oDoc = ThisComponent
'読み込み時に更新を常にするにチェック
→oSettings = oDoc.createInstanc("com.sun.star.sheet.DocumentSettings")
→oSettings.LinkUpdateMode = 0
「createInstancが見つからない」と表示されるのですが、何か誤って使っていますでしょうか?
教えて貰った他の部分は上手くいきました。
Typeミスと思います。 †
new_OOo3 (2010-08-19 22:24:56 (木))
肝心な処の回答はできないので、追伸に記されたエラーは
oSettings = oDoc.createInstanc("com.sun.star.sheet.DocumentSettings")
oSettings = oDoc.createInstance("com.sun.star.sheet.DocumentSettings")
の「e」漏れでは無いでしょうか?
当方の環境ではerrorが無くなりました。
参考までに。
ありがとうございます。 †
princess19 (2010-08-19 22:39:24 (木))
こちらもいましがた気付いて投稿しようとしたところでした。
指摘いただいたとおりです。