• ベストアンサー

【VBA】「時間+日付.xls」ファイルの作成

vbaで 「Shell ("cmd /C copy """ & 」を使用し、 今日の日付と時間を名前にしたエクセルファイル( Time$ & Time$ をファイル名にして)を作成しているのですが Date$ →2009-05-12 は、エラーになることなくファイルが作成できるのですが Time$→16:00:24 は、↑の様に「:」が入ってしまう為エラーになってしまいます。 VBAを使って現在の「時間+日付.xls」を作成するにはどうしたらよいでしょうか? ちなみにnow$はライブラリにすらありませんでした。 ご教授よろしくお願いします。

質問者が選んだベストアンサー

  • ベストアンサー
  • DOUGLAS_
  • ベストアンサー率74% (397/534)
回答No.1

 ファイル名にコロンは使えないと存じます。 Date$ & " " & Replace(Time, ":", ".") のようにコロンをピリオドなどに変換されてはいかがでしょうか?

1hdthd
質問者

お礼

置換すればいいのですね。ありがとうございます。

その他の回答 (2)

  • imogasi
  • ベストアンサー率27% (4737/17070)
回答No.3

VBAでTime関数やYear、Month,Day関数が有る。 >「Shell ("cmd /C copy """ & 」を使用し 質問者がそういうことを知らないため、珍奇なやり方になっているのでは。 >時間+日付.xls」ファイルの作成 と言う表現ではなく、エクセルファイルのファイル名を、時間+日付.xlsにしたいと表現すべきでは。 ファイル名には記号文字の中で、使えない文字があるが、それと日付の表現(特に区切りの文字)がバッチングするときは、別の文字で代用しなければならないのは常識。区切り文字をどういう文字にするかは質問者が考えること。

1hdthd
質問者

お礼

「Shell ("cmd /C copy """ & 」をは珍奇なやり方なのですね。 汗 >エクセルファイルのファイル名を、時間+日付.xlsにしたいと表現 まさしくそうです。 よく考えます。 ありがとうございます。

  • hallo-2007
  • ベストアンサー率41% (888/2115)
回答No.2

以下のコードは参考になりますでしょうか? Sub Macro1() MsgBox WorksheetFunction.Text(Time, "hh/mm/ss") MsgBox WorksheetFunction.Text(Now, "yy-mm-dd/hh/mm") End Sub ワークシートの関数を利用してみました。

1hdthd
質問者

お礼

なるほど。参考になりました。ありがとうございます。

関連するQ&A