アプリ版:「スタンプのみでお礼する」機能のリリースについて

 ExcelのVBAでPDFファイルを自動作成しています。
 それを振り分ける必要があるのですが、今は、
FileCopy "C:\Documents and Settings\administrator\デスクトップ\" & (ActiveCell) & ".pdf", "D:\documents\temp\" & (ブック名) & "\" & (シート名) & "\" & (ActiveCell) & ".pdf" ' ファイルをコピー
Kill "C:\Documents and Settings\administrator\デスクトップ\" & (ActiveCell) & ".pdf" ' 元ファイルを削除
 のように1つファイルが出来たら、そのファイルを移動して削除して、次のPDFファイル作成をさせています。
 これを、シート全体のファイルの作成が終わったら、そこで一括移動したいのですが、(ActiveCell)の部分をワイルドカードみたいにはできないのでしょうか?
 それができれば、全ての処理が終わってから、一括移動して、デスクトップにあるPDFファイルを全て削除するという方法にして、時間短縮したいのですが。
 意味わかります?
 

A 回答 (2件)

>すでに同一名のファイルが存在する場合は、


>上書きせずにエラーになるのですね。
それなら、CopyFileメソッドとDeleteFileメソッドを使用すればいいと思います。
CopyFileメソッドでは、第3引数で上書きする・しないの指定が出来ます。
また、両メソッドとももちろんワイルドカードが使用出来ます。
詳細は、先のMicrosoftのページの下の方の参照で、それぞれのメソッドのページへ行ってみて下さい。
    • good
    • 0
この回答へのお礼

ありがとうございました。これでうまくいきそうです。

お礼日時:2004/01/07 12:01

こんにちは。

maruru01です。

ファイルシステムオブジェクトを利用すれば出来ます。


Dim myFSO As Object

Set myFSO = CreateObject("Scripting.FileSystemObject")
myFSO.MoveFile "C:\Documents and Settings\administrator\デスクトップ\*.pdf", _
    "D:\documents\temp\" & (ブック名) & "\" & (シート名) & "\"

Set myFSO = Nothing


ファイルシステムオブジェクトについては、以下のページを参考にして下さい。

http://www.microsoft.com/japan/msdn/library/defa …

参考URL:http://www.microsoft.com/japan/msdn/library/defa …
    • good
    • 0
この回答へのお礼

ありがとうございました。
 エラーが出るのでなぜかな?って思っていたら、すでに同一名のファイルが存在する場合は、上書きせずにエラーになるのですね。
 仕方がないので、以前の方法で試しています。
他にも時間短縮しなくてはいけない個所はたくさんあるので。

お礼日時:2004/01/06 13:04

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!