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

Q&A集[?]

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

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

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

質問コーナー

サイト内検索

分類メニュー

関連サイト


本日:1
昨日:0
総数:2010
現在:2


マクロでCSVファイルをサーバーにアップ

ページOpenOffice.org FAQの登録ページ
投稿者S-Osaka
分類
edit/refer
優先順位
edit/refer
状態
edit/refer
カテゴリー
edit/refer
投稿日2010-09-16 20:39:49 (木)
OSwin vista
依存するページ
バージョン
edit/refer

メッセージ

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

教えてください。
VBAではまったく仕組みもわからないまま、ネットから拾ってきたスクリプトでアップしていました。
エクセルからVBを起動させるらしいプログラムなのでそのまま試しましたが、ooo basicでは使えませんでした。
VBを起動するらしい別の目的のスクリプトで、私に理解できるような簡単なものがooo basic上で以前そのまま使えたのでやってみたのですが今回はだめでした。
ftp://アカウント名:パスワード@サーバー名/パス名/ファイル名
と言うものを見つけたのでmsgboxに表示させたらプロテクトのかかったディレクトリの内容を表示したので、これをアドレスとしてファイル書込みしようとしたのですが、エラーになりました。
試しに「ツール_オプション_OpenOffice.org_全般でOpenOffice.orgダイアログを使用するにチェックを入れる」と言うのもやってみましたが、その記事にあったダイアログが開きません。
したいことは、記録した株価データ(CSV)を大引けと同時に自動的にレンタルサーバーにアップすると言うことです。
できれば私のようなものに理解できるような方法をご指導よろしくお願いします。


無題

ike@九州 (2010-09-17 10:52:40 (金))

http://www.oooforum.org/forum/viewtopic.phtml?t=96086
以下でOKのようですが、確認していません。

Sub CopyTo 
 sSourceUrl =  ConvertToUrl("C:\dummy.txt") 
 oSFA = createUNOService ("com.sun.star.ucb.SimpleFileAccess") 
 'msgbox(oSFA.exists(sSourceUrl)) 
 
 sDestUrl = "ftp://アカウント名:パスワード@サーバー名/パス名/ファイル名" 
 oSFA.copy(sSourceUrl, sDestUrl)  
End Sub

ftp転送部分

M.Kamataki (2010-09-17 11:03:13 (金))

いくつか方法があると思います。別解ですが、Windowsには、ftpコマンドが備わっているので、ftp転送部分はその機能を使ってはどうでしょう。以下のような感じです。ただし、実行出来るかどうかは未検証です。

Shell("C:\WINDOWS\system32\ftp.exe -s:C:\hoge\upscript.ftp",0)

上記のftpコマンドのパスはWindows XPのものです。Vistaではパスが異なるかもしれません。upscript.ftpの書き方は、たとえば以下のサイトに紹介があります。(Googleで調べればもっと分かりやすいところが見つかるかも)

スクリプトで使うftpコマンド
http://www.atmarkit.co.jp/fwin2k/win2ktips/270ftpscript/ftpscript.html

無題

(2010-09-17 16:08:08 (金))

いつもお世話になります。
ikeさんの方法を試しました。
コピー先URLに"ftp://アカウント名:パスワード@サーバー名/パス名/ファイル名"の書式を使い、(先にこのアドレス書式でディレクトリ内のファイルを表示できたサーバーです)以下の確認を行って、
msgbox(oSFA.emsgbox(oSFA.exists(sSourceUrl))
msgbox(oSFA.emsgbox(oSFA.exists(sDestUrl))
共にtrueの状態で
oSFA.copy(sSourceUrl, sDestUrl)の行にエラーが出ます。
先にOpen fileで直接書き込もうとして失敗したのと同じ結果です。
「Type: com.sun.star.ucb.IntaractiveAugmentedIOException
Nessage:。」
また教えていただいたサイトをゆっくり検証してみるつもりですが、何かトンチンカンなことをしていたら教えてください。
よろしくお願いします。
kamatakiさんの教えてくれたサイトも見て試すつもりです。

Re: ftp転送部分

M.Kamataki (2010-09-17 16:23:00 (金))

ftpコマンドをShell関数で実行する方法ですが、特に問題なく利用できました。ただ、Windowstyleオプションは無意味そうだったので、上記コメントを「0」に修正しておきます。

@ITのサイトの解説にあるように、ftpコマンドではパスワードが平文で流れるので、お使いになるレンタルサーバーはSFTPが利用できるところの方が良いでしょうね。SFTPで同じようにスクリプトを使うなら以下あたりをご覧ください。

WinScpをコマンドラインから使う
http://d.hatena.ne.jp/uriyuri/20090319/1237408576

ごめんなさい

S-Osaka (2010-09-17 17:27:19 (金))

ikeさんの方法で問題ないです。
msgbox(oSFA.emsgbox(oSFA.exists(sDestUrl))がtrueと言うのを疑わないといけませんね。
エラーの理由はファイル名がなかったのでした。
お恥ずかしい。

お名前:
題名: