Excel VBA質問箱 IV

当質問箱は、有志のボランティア精神のおかげで成り立っています。
問題が解決したら、必ずお礼をしましょうね。
本サイトの基本方針をまとめました。こちら をご一読ください。

投稿種別の選択が必要です。ご注意ください。
迷惑投稿防止のため、URLの入力を制限しています。ご了承ください。


11936 / 13645 ツリー ←次へ | 前へ→

【13178】shellについて VBA初心者 04/4/26(月) 11:55 質問[未読]
【13186】Re:shellについて ちん 04/4/26(月) 20:06 発言[未読]
【13193】Re:shellについて VBA初心者 04/4/27(火) 11:11 お礼[未読]
【13194】Re:shellについて ちん 04/4/27(火) 12:08 回答[未読]
【13202】Re:shellについて VBA初心者 04/4/27(火) 16:15 お礼[未読]
【13198】Re:shellについて Kein 04/4/27(火) 13:51 発言[未読]
【13204】Re:shellについて VBA初心者 04/4/27(火) 16:27 お礼[未読]

【13178】shellについて
質問  VBA初心者  - 04/4/26(月) 11:55 -

引用なし
パスワード
   エクセルにてVBAを使用しているのですがFTPでデータを取得した後、下記の処理へ行きたいのですがどうすればいいですか教えて下さい。ちなみに今はVBAでSHELL(FTP取得)した後、下記記述でFTPが完全に終わるであろうと思われるまでloopでカウントUPし時間稼ぎしてます。なにかFTPが完全に終わったと認識する方法を教えて下さい。

【13186】Re:shellについて
発言  ちん  - 04/4/26(月) 20:06 -

引用なし
パスワード
   VBA初心者 さん こんばんは、ちんといいます。
▼VBA初心者 さん:
>エクセルにてVBAを使用しているのですがFTPでデータを取得した後、下記の処理へ行きたいのですがどうすればいいですか教えて下さい。ちなみに今はVBAでSHELL(FTP取得)した後、下記記述でFTPが完全に終わるであろうと思われるまでloopでカウントUPし時間稼ぎしてます。なにかFTPが完全に終わったと認識する方法を教えて下さい。

【参考までに・・・】
 だいぶ昔なので、思い出せませんが、
 API関数ですが、(VB4かVB5で開発したとき、
 VBAからでも使用できると思います。)
 CreateProcessを使用したような記憶が???あります。
 サンプルは、インターネットで入手できると思います。

【ファイル操作で、終了を判断する】
 1.FTPを実行する前に、OPEN命令でダミーファイルを作成する。
 2.FTPを実行する。
 ※FTP終了後、1.で作成したダミーファイルを削除する。

 3.FTPの終了を監視する。
  DIR命令で、ダミーファイルが削除されるまで監視する。
  ※LOOP中は、必ずDoEvents命令をしようするか、
   API関数のSleep命令を使用するように。

以上、参考までに・・・

【13193】Re:shellについて
お礼  VBA初心者  - 04/4/27(火) 11:11 -

引用なし
パスワード
   ちんさんありがとうございます。^^

>  1.FTPを実行する前に、OPEN命令でダミーファイルを作成する。
>   ※FTP終了後、1.で作成したダミーファイルを削除する。

それは『FTPのバッチ内でファイル作成し、FTP終了後にバッチ内で削除する。』とゆう事ですね。そうするとバッチが終わるまでファイルは存在し、VBAに戻ってきてもDELETEされてないとゆうことですか。DELETEされる時にはFTPが終了していると。
なるほど早速やってみます。
ありがとうございます^^。

ちなみにFTPの終了コードなどは認識する事は出来ないんですか?
もしよろしければ返答をお願いします。
大変参考になりました。

>>▼ちん さん:
>>VBA初心者 さん こんばんは、ちんといいます。
>>▼VBA初心者 さん:
>>>エクセルにてVBAを使用しているのですがFTPでデータを取得した後、下記の処理へ行>きたいのですがどうすればいいですか教えて下さい。ちなみに今はVBAでSHELL(FTP取>得)した後、下記記述でFTPが完全に終わるであろうと思われるまでloopでカウントUP>し時間稼ぎしてます。なにかFTPが完全に終わったと認識する方法を教えて下さい。
>>
>>【参考までに・・・】
>> だいぶ昔なので、思い出せませんが、
>> API関数ですが、(VB4かVB5で開発したとき、
>> VBAからでも使用できると思います。)
>> CreateProcessを使用したような記憶が???あります。
>> サンプルは、インターネットで入手できると思います。
>>
>>【ファイル操作で、終了を判断する】
>> 1.FTPを実行する前に、OPEN命令でダミーファイルを作成する。
>> 2.FTPを実行する。
>> ※FTP終了後、1.で作成したダミーファイルを削除する。
>>
>> 3.FTPの終了を監視する。
>>  DIR命令で、ダミーファイルが削除されるまで監視する。
>>  ※LOOP中は、必ずDoEvents命令をしようするか、
>>   API関数のSleep命令を使用するように。
>>
>>以上、参考までに・・・

【13194】Re:shellについて
回答  ちん  - 04/4/27(火) 12:08 -

引用なし
パスワード
   VBA初心者 さん こんにちは、ちんといいます。
▼VBA初心者 さん:
>ちんさんありがとうございます。^^
>
>>  1.FTPを実行する前に、OPEN命令でダミーファイルを作成する。
>>   ※FTP終了後、1.で作成したダミーファイルを削除する。
>
>それは『FTPのバッチ内でファイル作成し、FTP終了後にバッチ内で削除する。』とゆう事ですね。そうするとバッチが終わるまでファイルは存在し、VBAに戻ってきてもDELETEされてないとゆうことですか。DELETEされる時にはFTPが終了していると。
>なるほど早速やってみます。
>ありがとうございます^^。
>
>ちなみにFTPの終了コードなどは認識する事は出来ないんですか?
>もしよろしければ返答をお願いします。
>大変参考になりました。
>

コマンドプロンプトだと、終了コード認識はだめと思います。
FTPの操作をログファイルに書き込み、
VBAからログファイルを読み込んで
正常・異常の見極めができるかもしれません。

FTP >c:\Log.txt
get ???
quit

quit実行後、Log.txtを読んで、正常時に吐き出されるメッセージと
異常時に吐き出されるメッセージを 自身で判断してみてはどうですか?

応用として、
dir >c:\log.txt  とすると、ディレクトリー情報がLog.txt に書かれます。

以上、参考までに

【13198】Re:shellについて
発言  Kein  - 04/4/27(火) 13:51 -

引用なし
パスワード
   いちおうAPIで処理するサンプルが、↓にありますが。
http://www.geocities.co.jp/SiliconValley/4805/vbtips/vbtips103.htm

【13202】Re:shellについて
お礼  VBA初心者  - 04/4/27(火) 16:15 -

引用なし
パスワード
   ちんさん毎回お手間を取らせましてすいません。
ものすごく勉強になります。
ちなみにファイルの作り方まで勉強にもなりました^^;
最初教わったやり方で成功しました。
もし同じなやみの初心者の方の為に下記に示しておきます。
--------------------------------------------------------
《VBA コード》
  Dim finenum As Long
  Dim fname  As Variant
 
  filenum = FreeFile()
  
  Open "dummyファイル名" For Output As #filenum
  Close #filenum
  
  Shell ("バッチFTP名")
  
  fname = Dir("dummyファイル名", vbNormal)
  
  Do While fname <> ""
    fname = Dir("dummyファイル名", vbNormal)
  Loop
----------------------------------------------------
《バッチFTP》
----------------------------------------------------
  ftp -i -s:test.fff 255.255.255.255 > test.log
  copy /y testend.log test.flg
  del dummyファイル名
-----------------------------------------------------
上記のコーディングでうまくいきました^^。

【13204】Re:shellについて
お礼  VBA初心者  - 04/4/27(火) 16:27 -

引用なし
パスワード
   kein さん ありがとうございます。
今、解析をしています。む、む、難しい^^;
私の今のレベルではなかなか理解が難しいけれど頑張ります。

また解析後、質問があればまた教えて下さい。

本当に有難う御座います。

11936 / 13645 ツリー ←次へ | 前へ→
ページ:  ┃  記事番号:
2610219
(SS)C-BOARD v3.8 is Free