年月を付けて、ブックを保存したい

このQ&Aのポイント
  • Excel2007でマクロ作成中の初心者です。毎月、「24年月次報告 年 月.xls 」というブックを作成しています。このコードを修正して、5月中に作成したら、「24年月次報告24年5月.xls」 というブック、6月中に作成したら、「24年月次報告24年6月.xls」 というブックを作成したいのです。
  • Excel2007でマクロ作成中の初心者です。毎月、「24年月次報告 年 月.xls 」というブックを作成しています。修正したいコードは、5月中に作成したら、「24年月次報告24年5月.xls」 というブック、6月中に作成したら、「24年月次報告24年6月.xls」 というブックを作成するものです。
  • Excel2007でマクロ作成中の初心者です。毎月、「24年月次報告 年 月.xls 」というブックを作成しています。修正したいコードは、5月中に作成したら、「24年月次報告24年5月.xls」 というブック、6月中に作成したら、「24年月次報告24年6月.xls」 というブックを作成するものです。
回答を見る
  • ベストアンサー

年月を付けて、ブックを保存したい

Excel2007でマクロ作成中の初心者です。 毎月、「24年月次報告 年 月.xls 」というブックを作成しています。 以下のコードで、作成しています。 このコードを実行すると、デスクトップの「常勤」というフォルダの中の「一覧表」というフォルダに 「24年月次報告 年 月.xls」 というブックができます。 このコードを修正して、5月中に作成したら、「24年月次報告24年5月.xls」 というブック、 6月中に作成したら、「24年月次報告24年6月.xls」 というブックを作成したいのです。 どのように修正したら、それが実行できるのでしょうか。ご指導お願いします。 Sub 給与計算24年データの保存() Dim Path As String, WSH As Variant Set WSH = CreateObject("WScript.Shell") Path = WSH.SpecialFolders("Desktop") & "\常用\一覧表\24年月次報告" ActiveWorkbook.SaveAs Path & " 年 月.xls" Set WSH = Nothing End Sub

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

  • ベストアンサー
  • nda23
  • ベストアンサー率54% (777/1415)
回答No.1

次のようにしてみたら如何でしょう Path = WSH.~ ’★ここまでは同じ ’和暦の年月で編集する Path = Path & Format(Date, "ee年m月") & ".xls" '存在しない場合のみ作成する If Dir(Path) = "" Then   ThisWorkbook.SaveAs Path End If

aitaine
質問者

お礼

ありがとうございました。完璧にできました。またよろしくおねがいします。

関連するQ&A

  • Excel2007で拡張子xlsmのブックを保存

    Excel2007でマクロ作成の初心者です。 以下のコードを実行させると、月次24年5月.xlsm-4143というブックができてしまいます。 そして開くこともできません。 どうしたら、月次24年5月.xlsm というブックにできるのでしょうか。 Sub データの保存() Dim Path As String, WSH As Variant Set WSH = CreateObject("WScript.Shell") Path = WSH.SpecialFolders("Desktop") & "\常用\H24年データ\月次" '和暦の年月で編集する Path = Path & Format(Date, "ee年m月") & ".xlsm" & Excel.xlWorkbookNormal '存在しない場合のみ作成する If Dir(Path) = "" Then ThisWorkbook.SaveAs Path End If Set WSH = Nothing End Sub

  • シートAの保存を他のPCのデスクトップにしたい

    Excel2007で見よう見真似でマクロ作成の初心者です。3時間ほどの試行錯誤を繰り返しました。が、お手上げのため質問します。本ブックのシートAを、他のPCでも、マクロが実行できるようにしたいです。よろしくお願いします。 Option Explicit Sub シートAの保存を他のPCでしたい() ' 'Const cnsTITLE = "マクロなしブックの作成" 'Const cnsFILTER = "Excelワークブック (*.xls),*.xls" Dim xlAPP As Application Dim WBK1 As Workbook ' 本ブックの Dim WBK2 As Workbook ' 作成ブック Dim strFileName As String Dim tblSH As Variant Dim lngLines As Long Dim myDate As String Worksheets("シートA").Select myDate = Range("AE4").Value 'Date = Format(Date, "ge年m月度") Set WBK1 = ThisWorkbook ' 本ブック ' シートAをデスクトップの「計算綴り」にコピーする Worksheets("シートA").Copy Set WBK2 = ActiveWorkbook strFileName = Format(myDate, "ge年m月度") & ".xls" ChDir "C:\Users\aaaaa\Desktop\計算綴り"   ’私はaaaaaのため、私しかできないです。 Application.DisplayAlerts = False WBK2.SaveAs "基本計算書" & strFileName, FileFormat:=XlFileFormat.xlExcel8 MsgBox "この計算書を基本計算書 " & myDate & " の名前で保存しました。" Application.DisplayFormulaBar = True WBK2.Close False Application.DisplayAlerts = True Set WBK2 = Nothing MAKE_NEWBOOK_WO_MACROS_EXIT: Set WBK1 = Nothing Set xlAPP = Nothing End Sub -------------------------------------------- いろいろサイトを探していたら次のコードが参考になるようですが これを利用してコードを修正できません。よろしくご指導ください。 ''次のコードは、アクティブブックを「デスクトップ」フォルダに 「Sample.xls」という名前で保存します。 Sub Sample3() Dim Path As String, WSH As Variant Set WSH = CreateObject("Wscript.Shell") Path = WSH.SpecialFolders("Desktop") & "\計算綴り" ActiveWorkbook.SaveAs Path & "Sample1.xls" Set WSH = Nothing End Sub

  • シートを複写して既にあるブックの中に挿入したい

    Excel2007でマクロ作成中の初心者です。 現在下記のコードにより、自分のPC、他のPCで正常に、マクロ実行しています。 1)このマクロは、年間12個のブックができますので、加工が面倒です。そのため これを、デスクトップのフォルダ「実績綴り」内の、「年間集計表」というブックの  最前列のシートの前に追加していきたいのです。そうすれば、1年分がひとつのブックに 保存されるので何かと便利です。 3)追加するシート名が、無いときは問題ないですが、既にある場合は、複製が挿入されるので  最新のシートと古いシートが混在してしまいます。何か工夫はないでしょうか 。以上よろしくご指導をお願いします。 ’-------------------------------------------- Sub シートの保存() ' 現在使用しているマクロコード ’1)ブックには、シートの名「月売上」がある。 ’2)このシートを複写して、新規ブックを作成する。 ’3)このシートの「月売上」セル「R4の値」を、新規ブック名とする。 ’4)保存先は、デスクトップのフォルダ「実績綴り」とする。 ’5)セル「R4の値」が変更されない限り、上書きされるので、データは常に最新である。 Application.ScreenUpdating = False 'Const cnsTITLE = "マクロなしブックの作成" 'Const cnsFILTER = "Excelワークブック (*.xls),*.xls" Dim xlAPP As Application Dim WBK1 As Workbook ' 本ブックの Dim WBK2 As Workbook ' 作成ブック Dim strFileName As String Dim tblSH As Variant Dim lngLines As Long Dim myDate As String Worksheets("月売上").Select myDate = Range("R4").Value Set WBK1 = ThisWorkbook ' 本ブック ' 指定シートを新規ブックにコピーする Worksheets("月売上").Copy Set WBK2 = ActiveWorkbook strFileName = Format(myDate, "ge年m月度") & ".xls" Dim Path As String, WSH As Variant Set WSH = CreateObject("Wscript.Shell") Path = WSH.SpecialFolders("Desktop") & "\実績綴り" Set WSH = Nothing ChDir Path Application.DisplayAlerts = False WBK2.SaveAs "月売上" & strFileName, FileFormat:=XlFileFormat.xlExcel8 Application.DisplayFormulaBar = True WBK2.Close False Application.DisplayAlerts = True Set WBK2 = Nothing MAKE_NEWBOOK_WO_MACROS_EXIT: Set WBK1 = Nothing Set xlAPP = Nothing End Sub

  • 新しいブックを名前を付けて保存したいのですが

    ACCESS2000からEXCEL2000をADOで操作しています。 以下の処理は開いている(アクティブ)シートを 新しいブックにコピーしています。 ----- Dim oApp As Object Dim oWkb As Object Dim oWks As Object Set oWkb = oApp.Workbooks.Open(CurrentProject.Path & "\Excel一覧.xls") Set oWks = oWkb.Worksheets("Sheet1") '新しいブックにシートコピー oWks.copy ----- お尋ねしたいのは 新しいブックを名前を付けて保存したいのですが どのようにすればいいですか?

  • エクセル VBA 新しいブックを作成したいのです。

     VBを記述した親ワークブックから子ワークブックを作成したいのですが、下記コードでは次の障害があるのです。 1.2003バージョンでは開けない。 2.2007バージョンで開こうとすると、メッセージが出る。   「~ファイル拡張子が示す形式と異なります。~」 3.不要なワークシートが残る。   “基本設定/新しいブックの作成/ブックのシート数”に依存している。 【シートを1枚だけにし、2003バージョンで保存したいのです。】 ShName = ThisWorkbook.ActiveSheet.Name Set objWorkBook = Workbooks.Add objWorkBook.ActiveSheet.Name = "○○商事" Call 処理 Set WSH = CreateObject("Wscript.Shell") Path = WSH.SpecialFolders("Desktop") & "\" On Error Resume Next '上書き保存をキャンセルした時の取り合えずの回避策(宿題(^^;)) ActiveWorkbook.SaveAs Path & "○○系_" & ShName & ".xls" Set WSH = Nothing Set objWorkBook = Nothing  新しいブックを作成後、シート数を数えて2枚目以降を消すのも出来るかと思いますが、作成時には既に1枚、しかも2003バージョンで作成する事は可能なのでしょうか?  皆様、よろしく御教示下さいませ・・・。

  • ブックの終了がうまくいきません

    Excel2003 でマクロ作成中の超初心者です。マクロ完成まであと一歩になりました。次から進みません。お願いします。 ブックA ブックB ブックCの3個のブックがあります。 ブックAのコマンドボタン→ ブックBに飛びます。 ブックBには、フォームコントロール(終了するコマンドボタン)と、特定セルにコントロールが張り付けてあります。 ブックA→ブックBの終了ボタン →正常に終了します。 ところが、ブックBのコントロールから、ブックCに移り、 ここからも一度ブックBに戻って終了ボタンを押すとBブックは終了するものの、Cブックが閉じられません。なぜでしょうか? -----Bブックのセルに貼り付けたコントロールのマクロ----- Sub ブックCへ() Application.ScreenUpdating = False Dim wb As Workbook On Error Resume Next '開いて作業中の場合。 Set wb = Workbooks("21年計算01.xls") On Error GoTo 0 If wb Is Nothing Then Set wb = Workbooks.Open(ThisWorkbook.Path & "\21年計算01.xls") End If '開いて作業中の場合。 Workbooks("21年計算01.xls").Activate ActiveWindow.WindowState = xlMaximized - ---最大化 Worksheets(12).Select End Sub -----Bブックのフォームコントロールのマクロ----- Private Sub CommandButton5_Click() Unload Me ActiveWorkbook.Close SaveChanges:=True End Sub -----Cブックのフォームコントロールのマクロ----- Private Sub データ入力_Click() Unload Me Application.ScreenUpdating = False On Error GoTo err: Workbooks("21年計算02.xls").Activate Exit Sub err: Workbooks.Open Filename:=ThisWorkbook.Path & "\21年計算02.xls" '''データ処理.Show Application.ScreenUpdating = True End Sub

  • エクセルVBAで、ある特定な場所にあるブックが開いていたら閉じたい

    こちらでお世話になった者です。その節はありがとうございました。 http://okwave.jp/qa3972230.html 他のブックが開いているとエラーになるので、フォームのブックが開いていたら、 マクロの最初に閉じてしまいたいと思います。 dbase.xls formフォルダ  001.xls  002.xls  003.xls のようなフォルダ構造になっていて、001~003.xlsは入力フォームです。 dbase.xlsを開いて、マクロを貼り付けたボタンをクリックすると、すべてのフォームの データがdbase.xlsに取り込まれます。 ↓のような感じで、最初にメッセージが表示されるようにしたのですが、 自分以外の、formフォルダにあるブックが開いていたらそれをすべて閉じる 方法を教えていただけますか。 Sub data_torikomi() MsgBox ("開いている他のエクセルブックをすべて閉じてください") Dim Fn As String Dim myPath As String Dim dbBkSh As Worksheet Dim i As Long Set dbBkSh = Workbooks("dbase.xls").Worksheets("一覧表") myPath = ThisWorkbook.Path & "\" Fn = Dir(myPath & "form\*.xls") i = 1   ……

  • エクセルVBAでブックを相対パスで保存する

    お世話になります。 苦労しながらもエクセルVBAをいじっています。仕事の効率を上げるために、VBAで自動化をしていますが、わからないことがありますので教えてください。 月ごとのシートを作成して、その月に完成させたプロジェクトのリストを入力するブックを作り、各契約者に配りたいと思っています。そのブックには、報告書提出を簡素化できるように、作成したい該当月のシートだけを抽出して決められた名前で保存し、電子メールに添付して送信できる状態にした報告書作成のプログラムを組んでいます。が、抽出されたシートだけのブックを、オリジナルのブックがあるフォルダと同じところに保存したいんです。"名前を付けて保存"をVBAに設定すると、絶対パスが必要な要ですし、もしも指定しなければ作業フォルダ(カレントフォルダ)に保存されるようですが、何とかしてオリジナルのブックと同じフォルダに保管できないものでしょうか。 どうぞよろしくお願いします。 ちなみに、下記が自分なりにやってみたものです。 --------------------------------- Private Sub CommandButton1_Click() Dim myName As String Dim pasu As String With ListBox1 If (.ListIndex = -1) Then MsgBox "提出用報告書を作成するシートを選択してください" Else Worksheets(.List(.ListIndex)).Select pasu = ActiveWorkbook.Path ActiveSheet.Copy myName = ActiveSheet.Name ActiveWorkbook.SaveAs Filename:= _ "" & myName & "" & Application.UserName & ".xls" _ , FileFormat:=xlNormal, Password:="", WriteResPassword:="", _ ReadOnlyRecommended:=False, CreateBackup:=False Unload UserForm2 End If End With End Sub

  • シートを他のブックに貼付けたい

    Excel2007でマクロ作成中の初心者です。 やりたいことは 1)本ブックの中の「当月売上」シートを他ブックに貼付けたいです。 2)他ブックに貼り付けた「当月売上」シート名は、セルK1の日付に変更したいです。 すると、他ブックのシートが毎月順に、売上(2012年4月) 売上(2012年5月) 売上(2012年6月)というふうに増えます。 3)何月に作成しても、ブックの「当月売上」シートを貼り付けます。 四苦八苦して以下のコードをつくりましたが、「同じ名前のシート名に変更できません。」 というエラーがでるので、このエラーが出ないように、名前が同じ時は上書き保存し、違うときは新しいシート名を作るという コードにしたいです。困ってます。どうかご指導お願いします。 Sub 売上シートの貼付け() Dim WBK1 As Workbook ' 本ブックの Dim WBK2 As Workbook ' 貼付け先他ブック ChDir ThisWorkbook.Path + "\売上" On Error Resume Next Set WBK2 = Workbooks("24年度売上.xls") On Error GoTo 0 If WBK2 Is Nothing Then Set WBK2 = Workbooks.Open(ThisWorkbook.Path & "\売上\24年度売上.xlsm") End If Worksheets("当月売上").Copy After:=Workbooks("24年度売上.xlsm").Sheets(Workbooks("24年度売上.xlsm").Sheets.Count) ActiveSheet.Name = Format(Range("K1").Value, "売上(yyyy年mm月)") Application.DisplayFormulaBar = True WBK2.Close SaveChanges:=True Application.DisplayAlerts = True Set WBK2 = Nothing End Sub

  • Excel VBAを使って、Excelデータを別のExcelファイルに取り込みします

    報告書にexcel VBAを使って、(報告書を開いたまま)報告書のデータを別のexcelファイル(一覧)に取り込みします。 Sub k() Dim ブック As Workbook Set ブック = Workbooks.Open("c:\テスト\" & "一覧.xls") ブック.Worksheets("Sheet1").Cells(3, 2) = Worksheets("企業情報シート").Cells(3, 3) End Sub 報告書の"Worksheets("企業情報シート").Cells(3, 3)"は書き方がおかしいみたいで、正しい書き方を教えてください。

専門家に質問してみよう