Excel VBA質問箱 IV

当質問箱は、有志のボランティア精神のおかげで成り立っています。
問題が解決したら、必ずお礼をしましょうね。
本サイトの基本方針をまとめました。こちら をご一読ください。

投稿種別の選択が必要です。ご注意ください。
迷惑投稿防止のため、URLの入力を制限しています。ご了承ください。


63130 / 76738 ←次へ | 前へ→

【18207】Re:行数が不定の集計処理について
回答  Kein  - 04/9/18(土) 0:31 -

引用なし
パスワード
   えっとですね・・
>次にその日の最後(集計後)に集計したシートをコピーして、その後値をクリアして
>シート名に明日の日付を付けて準備完了
という現在の作業形態を "止めて"
>朝、ブックを開いた時点で、その日(システム日付)のシートが存在しない場合は、
>原紙となる未記入シートをブック内に持って置いて、そのシートをコピーして名前に
>その日の日付を付けて開き、作業を開始する。
>また、その日(システム日付)のシートが存在する場合(中断等で保存後再開する場合)
>は、そのシートを開いて作業を続行する
という処理形態に移行したい、ということなんですね ?
なんか殆ど仕事の依頼みたいだけど、まぁいいです。
これはまず
>その日(システム日付)のシートが存在しない場合
を無くすことが第一のポイントでしょう。それはマクロを使えばわけなく出来ます。
>原紙となる未記入シート
これはつまり、テンプレートのようなもので、項目とか罫線などの書式を作ってあって
データだけが未記入のシートなわけですね ? 
それなら当月一ヶ月分の、新しいブックを作成するマクロを提示しましょう。

Sub ThisMonth_Make_NewBook()
  Dim MkFile As String
  Dim Ans As Integer, Scnt As Integer, NewS As Integer
  Dim SDay As Date
  Dim WS As Worksheet
 
  MkFile = Application.DefaultFilePath & _
  "\" & Month(Date) & "月.xls"
  If Dir(MkFile) <> "" Then
   Ans = MsgBox("今月のブックは既に存在します" & vbLf & _
   "削除して新規にブックを作成しますか", 36)
   If Ans = 7 Then Exit Sub
  End If
  NewS = Day(DateSerial(Year(Date), Month(Date) + 1, 1) - 1)
  SDay = DateSerial(Year(Date), Month(Date), 1)
  With Application
   Scnt = .SheetsInNewWorkbook
   .SheetsInNewWorkbook = NewS
   .ScreenUpdating = False
  End With
  Workbooks.Add
  With ActiveWorkbook
   For Each WS In .Worksheets
     WS.Name = CStr(Format(SDay, "m月d日"))
     SDay = SDay + 1
   Next
   ThisWorkbook.Sheets("Mytemplate").Copy Before:=.Worksheets(1)
   .Sheets.FillAcrossSheets .Sheets("Mytemplate").UsedRange
   .Sheets("Mytemplate").Visible = False
   .SaveAs Application.DefaultFilePath & "\" & Month(Date) & "月.xls"
   .Close
  End With
  With Application
   .ScreenUpdating = True
   .SheetsInNewWorkbook = Scnt
  End With
End Sub

これをどこかのブックに入れて、"Mytemplate" という仮のシート名を実際の
>原紙となる未記入シート
に変更して実行してみて下さい。これで記入する日のシートが見つからない、
という事態が避けられるのだから、ほぼ解決すると思います。ただ、質問の内容から
推測するに、月単位にブックを作っていくのでなく、一つのブックを使いまわしたい
みたいな感じですね・・。それならそれで、また別のコードを考えてみますから
説明して下さい。
あと、最初の質問の「合計を最終入力行の下に入れる」という処理に関しては、
原紙となる未記入シートに、データの入力可能な範囲を充分にとって雛型の表を
作り、その表の最終行に予め数式を入れておけば良いでしょう。そうすると、
どのシートも一定の行に数式がある形になるから、最後に当月の集計をするにも
3D参照(串刺し計算)の数式とか、統合機能などが使えて便利なのです。
よく検討してみてください。

0 hits

【18165】行数が不定の集計処理について ackkn 04/9/16(木) 21:15 質問
【18166】Re:行数が不定の集計処理について Kein 04/9/16(木) 22:08 回答
【18167】Re:行数が不定の集計処理について ackkn 04/9/16(木) 22:49 お礼
【18168】Re:行数が不定の集計処理について ackkn 04/9/16(木) 23:04 質問
【18171】Re:行数が不定の集計処理について Kein 04/9/17(金) 1:46 発言
【18189】Re:行数が不定の集計処理について ackkn 04/9/17(金) 17:08 発言
【18207】Re:行数が不定の集計処理について Kein 04/9/18(土) 0:31 回答
【18208】Re:行数が不定の集計処理について Kein 04/9/18(土) 0:34 発言
【18213】Re:行数が不定の集計処理について ackkn 04/9/18(土) 11:47 回答
【18217】Re:行数が不定の集計処理について ackkn 04/9/18(土) 14:02 回答
【18223】Re:行数が不定の集計処理について Kein 04/9/18(土) 18:25 回答
【18224】Re:行数が不定の集計処理について Kein 04/9/18(土) 18:32 発言
【18249】Re:行数が不定の集計処理について ackkn 04/9/19(日) 14:41 回答
【18256】Re:行数が不定の集計処理について Kein 04/9/19(日) 20:11 回答
【18257】Re:行数が不定の集計処理について ackkn 04/9/19(日) 23:22 回答
【18259】Re:行数が不定の集計処理について Kein 04/9/20(月) 0:56 回答
【18263】Re:行数が不定の集計処理について ackkn 04/9/20(月) 6:38 お礼
【18289】Re:行数が不定の集計処理について ackkn 04/9/20(月) 17:58 質問
【18293】Re:行数が不定の集計処理について Kein 04/9/20(月) 22:18 回答
【18299】Re:行数が不定の集計処理について ackkn 04/9/20(月) 23:42 質問
【18301】Re:行数が不定の集計処理について Kein 04/9/21(火) 2:13 回答

63130 / 76738 ←次へ | 前へ→
ページ:  ┃  記事番号:
2610219
(SS)C-BOARD v3.8 is Free