[リストへもどる]
一括表示

投稿時間:2004/02/23(Mon) 15:11
投稿者名:UEKEIDA
Eメール:uekeida1969@yahoo.co.jp
URL :
タイトル:
ファイル操作について
はじめまして。会社でプログラムをしておりましてよく利用させていただいてます。

あるディレクトリにあるファイルを新規フォルダにコピーしたいのですが、うまくいきません。
ご存知のかた教えてください。

---------Sample Code

    Dim objFileSystem As Object
    Dim strFolderName As String
    Dim SysDate As String
    Dim Fso As New FileSystemObject
    Dim FsoFile As File
    
    '現在時刻
    SysDate = Format(Date, "yyyymmdd") & Format(Time, "hhmmss")
    
    strFolderName = "C:\Data\受注\"
    Set objFileSystem = CreateObject("Scripting.FileSystemObject")

    '現在時刻名でフォルダを作成
    objFileSystem.CreateFolder (strFolderName + SysDate)

    Set objFileSystem = Nothing
    
&&&&&&ここまではうまくいきました。
    
    'この中にある受注データファイルを上で作成したフォルダにコピーしたいのです
    Set FsoFile = Fso.GetFile("\Data\受注\Today\受注データ.xls")

    
    '上記作成フォルダのパスが取得できずにうまくいきません。
    '(SysDate)の変数をうまく認識できないみたいです
    Fso.CopyFile "\Bin5\受注\Today\受注データ.xls", ("" & SysDate &
amp; "\受注データ.xls")
    
    
    Set FsoFile = Nothing


このような処理をするのが初めてなもので、上の記述が正解とも思えないのです。
(適当になってみました)

ご存知の方〜
宜しくお願いします

投稿時間:2004/02/23(Mon) 16:25
投稿者名:ひでかず
Eメール:
URL :
タイトル:
Re: ファイル操作について
> はじめまして。会社でプログラムをしておりましてよく利用させていただいてます。
>
> あるディレクトリにあるファイルを新規フォルダにコピーしたいのですが、うまくいきません。
> ご存知のかた教えてください。
>
> ---------Sample Code
>
>     Dim objFileSystem As Object
>     Dim strFolderName As String
>     Dim SysDate As String
>     Dim Fso As New FileSystemObject
>     Dim FsoFile As File
>    
>     '現在時刻
>     SysDate = Format(Date, "yyyymmdd") & Format(Time, "hhmmss")
>    
>     strFolderName = "C:\Data\受注\"
>     Set objFileSystem = CreateObject("Scripting.FileSystemObject")
>
>     '現在時刻名でフォルダを作成
>     objFileSystem.CreateFolder (strFolderName + SysDate)
>
>     Set objFileSystem = Nothing
>      
> &&&&&&ここまではうまくいきました。
>    
>     'この中にある受注データファイルを上で作成したフォルダにコピーしたいのです
>     Set FsoFile = Fso.GetFile("\Data\受注\Today\受注データ.xls")
>
>    
>     '上記作成フォルダのパスが取得できずにうまくいきません。
>     '(SysDate)の変数をうまく認識できないみたいです
>     Fso.CopyFile "\Bin5\受注\Today\受注データ.xls", ("" & SysDate &
> amp; "\受注データ.xls")
>    
>    
>     Set FsoFile = Nothing
>
>
> このような処理をするのが初めてなもので、上の記述が正解とも思えないのです。
> (適当になってみました)
>
> ご存知の方〜
> 宜しくお願いします

コピー先の指定の仕方が間違っているだけではないですかね?
コピー先をフルパスで指定すればいけると思いますが。

投稿時間:2004/02/23(Mon) 16:29
投稿者名:ひでかず
Eメール:
URL :
タイトル:
Re: ファイル操作について
Dim objFileSystem As Object
Dim strFolderName As String
Dim SysDate As String
    
SysDate = Format(Date, "yyyymmdd") & Format(Time, "hhmmss")
    
strFolderName = "C:\Data\受注\"
Set objFileSystem = CreateObject("Scripting.FileSystemObject")

objFileSystem.CreateFolder (strFolderName + SysDate)

objFileSystem.CopyFile "\Bin5\受注\Today\受注データ.xls", ("" & SysDate & "\受注データ.xls")
    
Set objFileSystem = Nothing

投稿時間:2004/02/24(Tue) 08:38
投稿者名:UEKEIDA
Eメール:uekeida1969@yahoo.co.jp
URL :
タイトル:
Re^2: ファイル操作について
> Dim objFileSystem As Object
> Dim strFolderName As String
> Dim SysDate As String
>    
> SysDate = Format(Date, "yyyymmdd") & Format(Time, "hhmmss")
>    
> strFolderName = "C:\Data\受注\"
> Set objFileSystem = CreateObject("Scripting.FileSystemObject")
>
> objFileSystem.CreateFolder (strFolderName + SysDate)
>  
> objFileSystem.CopyFile "\Bin5\受注\Today\受注データ.xls", ("" &
SysDate & "\受注データ.xls")
>      
> Set objFileSystem = Nothing


やはりここだけうまく取得してくれないんですよ

objFileSystem.CopyFile "\Bin5\受注\Today\受注データ.xls", ("" & SysDa
te & "\受注データ.xls")

("" & SysDate & "\受注データ.xls")にしか問題なさそうなんですが。

変数を当てるのがだめなんですかね〜

投稿時間:2004/02/24(Tue) 09:05
投稿者名:花ちゃん
Eメール:
URL :
タイトル:
Re^3: ファイル操作について
> objFileSystem.CopyFile "\Bin5\受注\Today\受注データ.xls", ("" & SysDa
> te & "\受注データ.xls")

objFileSystem.CopyFile "\Bin5\受注\Today\受注データ.xls", SysDate & "\受注データ.xls"

これではどうですか?


SysDate のところへマウスをポイントしてみると変数の中身が表示されますし、

イミディエイトウィンドウで ?("" & SysDate & "\受注データ.xls")  と入力
してみるとパスが表示されますので合っているか確認して下さい。
(次の行にブレークポイントを入れておいてから実行して)

投稿時間:2004/02/24(Tue) 09:30
投稿者名:UEKEIDA
Eメール:uekeida1969@yahoo.co.jp
URL :
タイトル:
色々ありがとうございました

なんとか解決できました。最終的にはフルパス指定なんですかね〜

Last Code

Private Sub Command1_Click()

    Dim objFileSystem As Object
    Dim strFolderName As String
    Dim SysDate As String
        
    SysDate = Format(Date, "yyyymmdd") & Format(Time, "hhmmss")
        
    strFolderName = "C:\Bin5\受注\"
    Set objFileSystem = CreateObject("Scripting.FileSystemObject")
    
    objFileSystem.CreateFolder (strFolderName + SysDate)
    
    objFileSystem.CopyFile "C:\Bin5\受注\Today\受注データ.xls", _
    "C:\Bin5\受注\" & SysDate & "\受注データ.xls"
        
    Set objFileSystem = Nothing
End Sub

ありがとうございました。

投稿時間:2004/02/24(Tue) 11:00
投稿者名:nobu
Eメール:
URL :
タイトル:
Re: 色々ありがとうございました
> なんとか解決できました。最終的にはフルパス指定なんですかね〜

静観させていただいていましたが、そうだと思います。
私は objFileSystem.CopyFile を使った事が無いので書かないでいましたが
最初から Fso.CopyFile "\Bin5\受注\Today\受注データ.xls" に
ドライブ名(今回は C: )が無いのが気になっていました。

自分ではテストをしていないので 
objFileSystem.CopyFile ではフルパスで無くても良いのかも...と。

私は何時も Filecopy で左右の両方共フルパス記載です。
Filecopy  "C:\Bin5\受注\Today\受注データ.xls", "C:\Bin5\受注\" & SysDate & "\受注データ.xls"

投稿時間:2004/02/24(Tue) 13:28
投稿者名:UEKEIDA
Eメール:uekeida1969@yahoo.co.jp
URL :
タイトル:
Re^2: 色々ありがとうございました
> > なんとか解決できました。最終的にはフルパス指定なんですかね〜
>  
>  静観させていただいていましたが、そうだと思います。
>  私は objFileSystem.CopyFile を使った事が無いので書かないでいましたが
>  最初から Fso.CopyFile "\Bin5\受注\Today\受注データ.xls" に
>  ドライブ名(今回は C: )が無いのが気になっていました。
>  
>  自分ではテストをしていないので 
>  objFileSystem.CopyFile ではフルパスで無くても良いのかも...と。
>  
>  私は何時も Filecopy で左右の両方共フルパス記載です。
>  Filecopy  "C:\Bin5\受注\Today\受注データ.xls", "C:\Bin5\受注\" &
; SysDate & "\受注データ.xls"


ありがとうございます。
今回はじめてのチャレンジなもので他にも分からないことだらけなので
これからも宜しくおねがいします。