[[20071126220130]] 『Sheetのコピー』(PONATA) ページの最後に飛ぶ

[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]

 

『Sheetのコピー』(PONATA)

 Sheetのコピーについて質問させていただきます。少し複雑なのですが
 下のCODEに追加してSheet1を別のBookにコピー&移動するマクロを考えていまして
 移動先のBook名に規則性も持たしたく、自動で○○071126.xls というファイル名を
 指定してマイドキュメントに保存したいと考えています。

 ○○はSheet1のA2を参照したいと思っています。
 日時については、いつマクロを実行しても
 今日の日付にする方法と、日付の前のファイル名に
 A1を反映させる方法は無いものでしょうか?
 もしお分かりになりましたら教えて下さい。よろしくお願いします。 

 Sub コピー()

  Sheets(Array("Sheet1", "Sheet2")).Select

    Sheets("Sheet2").Activate
    Sheets(Array("Sheet1", "Sheet2")).Copy
    ActiveWorkbook.SaveAs Filename:= _
        "C:\Documents and Settings\*****\My Documents\○○071128.xls",
    FileFormat:= _
    xlNormal, Password:="", WriteResPassword:="", ReadOnlyRecommended:=False _
    , CreateBackup:=False

 End Sub


 こんな感じになろうかと思いますが
     (SHIOJII)

 >○○はSheet1のA2を参照したいと思っています。
 の場合

 Sub コピー()
    Sheets(Array("Sheet1", "Sheet2")).Select

 '    Sheets("Sheet2").Activate
     Sheets(Array("Sheet1", "Sheet2")).Copy
     ActiveWorkbook.SaveAs Filename:="C:\Documents and Settings\*****\My Documents\" _
       & Sheets("Sheet1").Range("A2").Value & Format(Date, "yymmdd") & ".xls"
         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~   ~~~~~~~~~~~~~~~~~~~~~~
       ' ↑シート1のA2            ↑今日の日付
 End Sub


 (SHIOJII)さま
 完全に思い通りに動きました。大変役立ちました。ありがとうございます。(PONATA) 

 またまた問題が発生してしまいました。
 教えていただいた下記CODEでファイル名"○○071127.xls"
 というファイル名が自動作成&保存されましたが、1日に2回同じ作業をした場合
 「この場所に*******という名前のファイルが既に有ります。置き換えますか?」
 と聞いてきます。上書きされては困るので「いいえ」をクリックすると

 実行時エラー1004':
 'SaveAs'メゾッドは失敗しました。'_WorkBook'オブジェクト

 というエラーが出てしまいます。こういう時、ファイル名を"○○071127-2.xls"
 または時刻もファイル名に入れ"○○071127 15:12.xls"
 として自動で保存することは出来ないものでしょうか? 宜しくお願いします。
                                      (PONTA)

  Sub コピー()
    Sheets(Array("Sheet1", "Sheet2")).Select

 '    Sheets("Sheet2").Activate
     Sheets(Array("Sheet1", "Sheet2")).Copy
     ActiveWorkbook.SaveAs Filename:="C:\Documents and Settings\*****\My Documents\" _
       & Sheets("Sheet1").Range("A2").Value & Format(Date, "yymmdd") & ".xls"
         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~   ~~~~~~~~~~~~~~~~~~~~~~
       ' ↑シート1のA2            ↑今日の日付
 End Sub


横からスミマセン。上記の解決には至りませんが…別法を1つ如何でしょう。

 ファイル名は、「Sheet1のA2」&「今日の日付」.xls ですよね。
 では、ここに現在の時刻(時:分:秒)を追加してみてはどうでしょう。

 Format(Time, "h:mm:ss")

これだったら、相当がんばらない限り、大丈夫かと… (くみりん)


 コロンはファイル名に使えないので、
 >    ActiveWorkbook.SaveAs Filename:="C:\Documents and Settings\*****\My Documents\" _
 >      & Sheets("Sheet1").Range("A2").Value & Format(Date, "yymmdd") & ".xls"
      ↓
     ActiveWorkbook.SaveAs Filename:="C:\Documents and Settings\*****\My Documents\" _
       & Sheets("Sheet1").Range("A2").Value & Format(Date, "yymmddhhmm") & ".xls"
 にするとか。
 あとは、乱数などを最後につけてFSOなどでファイルの存在を調べてから、大丈夫ならば保存。
 そうでなければ、再度乱数をつけるとか。
 (ROUGE)


 > & Sheets("Sheet1").Range("A2").Value & Format(Date, "yymmddhhmm") & ".xls"
 は
 & Sheets("Sheet1").Range("A2").Value & Format(Now, "yymmddhhmm") & ".xls" ??
                                               ^^^^
 (seiya)

 失礼しました<(__)>
 (ROUGE)

 (くみりん) さま、(seiya)さま、(ROUGE)さま
 ありがとうございます。おかげ様で無事解決しました。 (PONTA)

コメント返信:

[ 一覧(最新更新順) ]


YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki. Modified by kazu.