Excel VBA質問箱 IV

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

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


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

【15964】DOSにてファイルコピーに関して yasu 04/7/13(火) 16:43 質問[未読]
【15975】Re:DOSにてファイルコピーに関して IROC 04/7/13(火) 18:23 回答[未読]
【15976】Re:DOSにてファイルコピーに関して yasu 04/7/13(火) 18:45 発言[未読]
【15978】Re:DOSにてファイルコピーに関して [名前なし] 04/7/13(火) 20:53 発言[未読]
【15986】Re:DOSにてファイルコピーに関して ちゃっぴ 04/7/13(火) 23:15 回答[未読]
【16000】Re:DOSにてファイルコピーに関して yasu 04/7/14(水) 11:11 お礼[未読]

【15964】DOSにてファイルコピーに関して
質問  yasu  - 04/7/13(火) 16:43 -

引用なし
パスワード
   お世話になります。

エクセルにて作成したCSVデータをある個所のファイルにコピーしたいのですが
教えて頂けないでしょうか。

なんとかCSVファイルは作成出来たのですがよろしくお願いします。

【15975】Re:DOSにてファイルコピーに関して
回答  IROC  - 04/7/13(火) 18:23 -

引用なし
パスワード
   ファイルにコピーとは、どのような意味でしょうか?

【15976】Re:DOSにてファイルコピーに関して
発言  yasu  - 04/7/13(火) 18:45 -

引用なし
パスワード
   ▼IROC さん:
>ファイルにコピーとは、どのような意味でしょうか?
はい。すいません。言葉足らずで申し訳ございません。

  Const MyCom1 As String = "COMMAND.COM /C copy "
  
  Set ファイルオープン = CreateObject("Shell.Application"). _
  BrowseForFolder(0, "保存先フォルダを選択してください", 0)
  If ファイルオープン Is Nothing Then Exit Sub
    ファイルオープン = ファイルオープン.Items().Item().Path & "\"
     
  コピー先ファイル名 = ファイルオープン & "TEST.txt"
 
  Shell MyCom1 & コピー元ファイル名 & " " & コピー先ファイル名, 6


とするとShellで止まってしまいます。
※間は省略しておりますが、これで分かりますでしょうか。
お手数おかけ致しますが、よろしくお願いします。
今日は出かけないと行けないため(仕事です^^;)ご返事が出来ないですかよろしくお願いします。

【15978】Re:DOSにてファイルコピーに関して
発言  [名前なし]  - 04/7/13(火) 20:53 -

引用なし
パスワード
   選択されたフォルダにファイル名を変えてコピーしてるだけですよね?

FileCopy ステートメントじゃダメなんですかね。

【15986】Re:DOSにてファイルコピーに関して
回答  ちゃっぴ  - 04/7/13(火) 23:15 -

引用なし
パスワード
   >FileCopy ステートメントじゃダメなんですかね。

パス名が長いとFileCopy ステートメントはエラーになるので
FileSystemObjectのCopyFile、もしくはCopyメソッドを
使用したほうがいいと思います。

また、

> ファイルオープン = ファイルオープン.Items().Item().Path & "\"

は感心しません。ファイルオープンはオブジェクト型(Shell32.Folder)と
String型になりますので、Variant型変数以外で宣言されていると
エラーになります。

どうせやるなら、
Dim ファイルオープン As Object
Dim コピー先ファイル名 As String

コピー先ファイル名 = ファイルオープン.Items().Item().Path & "\" _
   & "TEST.txt"

としたほうがいいと思います。

Dosコマンドを実行するときはパス名に半角スペースが含まれる場合を考慮して、
パス名全体をダブルコーテーションで囲っておいたほうがいいです。

あと、Shell関数は別のプロセスとして動作するため、
Shell関数を呼び出したものの終了後、
何かを実行する場合には、プロセスが終了するまで
待機するようプログラミングする必要があります。

これを避けるには、WSHのRUNメソッドを使用して
呼び出す方法があります。
こちらなら、引数指定で終了するまでプロシジャーの実行を
待機させることができます。

【16000】Re:DOSにてファイルコピーに関して
お礼  yasu  - 04/7/14(水) 11:11 -

引用なし
パスワード
   ▼yasu さん:
>お世話になります。
>
>エクセルにて作成したCSVデータをある個所のファイルにコピーしたいのですが
>教えて頂けないでしょうか。
>
>なんとかCSVファイルは作成出来たのですがよろしくお願いします

教えて頂きました方本当に有り難うございます。
皆さんの意見を参照しながら頑張ってやってみます。
今後ともよろしくお願いします。

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