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

 Excel2003です。
 日々の売り上げ集計ファイルをボタン一つで保存していくマクロを作っています。

Application.DisplayAlerts = False
If Dir(ThisWorkbook.Path & "\" & Format(Date, "yy") & "年集計", vbDirectory) = "" Then
MkDir Path:=ThisWorkbook.Path & "\" & Format(Date, "yy") & "年集計"
ActiveWorkbook.SaveAs Filename:=ThisWorkbook.Path & "\" & Format(Date, "yy") & "年集計\" & Format(Date, "yymmdd") & ".xls", FileFormat:=xlNormal, _
Password:="", WriteResPassword:="", ReadOnlyRecommended:=False, _
CreateBackup:=False
Else
ActiveWorkbook.SaveAs Filename:=ThisWorkbook.Path & "\" & Format(Date, "yy") & "年集計\" & Format(Date, "yymmdd") & ".xls", FileFormat:=xlNormal, _
Password:="", WriteResPassword:="", ReadOnlyRecommended:=False, _
CreateBackup:=False

 とりあえず指定のフォルダに「yymmdd.xls」という名前をつけて保存、もしフォルダがなければ作るというところまで作れました。そこで、今度は「**年度」というフォルダに自動的に保存され、もし「**年度」というフォルダがなければ作るようにしたいのです。上に上げたマクロでは「**年」というフォルダを作ってその中に保存というところまでは出来ているのですが……。とにかく年度で分ける場合の処理がよくわかりません。

 回答よろしくお願いします。

A 回答 (1件)

>今度は「**年度」というフォルダに自動的に保存され、


>もし「**年度」というフォルダがなければ作るようにしたいのです。
年度というのは『例えば』2008年4月1日から2009年3月31日までは『08年度』という意味の『年度』ですか?

そうだと仮定すると

Sub try()
  Dim nend As String

  Application.DisplayAlerts = False
  With ThisWorkbook
    'ここの 4 が起算月
    If Month(Date) < 4 Then
      nend = .Path & "\" & Right$(Year(Date) - 1, 2) & "年度\"
    Else
      nend = .Path & "\" & Format$(Date, "yy") & "年度\"
    End If
  End With
  
  If Len(Dir(nend, vbDirectory)) = 0 Then
    MkDir Path:=nend
  Else
    Dir Application.Path
  End If

  ActiveWorkbook.SaveAs Filename:=nend & Format$(Date, "yymmdd") & ".xls"
  Application.DisplayAlerts = True
End Sub

こんな感じですか。
    • good
    • 0
この回答へのお礼

なるほどこういう風に書けばいいんですね!
ありがとうございます。

お礼日時:2008/11/08 17:47

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