• ベストアンサー

マクロの組み方ですが

「入力シート」を作成し、日々その日の売上日報を入力しています。 今は日々名前をつけて保存しているのですが、 「入力シート」の横に「1日」「2日」「3日」・・・と1か月分のシートを作成し、「入力シート」内で入力した日付に対応したシートに 日々コピーする事は出来ないでしょうか? マクロを使ってみたのですが、初心者の為、せいぜい「入力シート」を別のシートにコピー出来ただけで、 日付に対応したシートにコピーする事ができません。 どのようにすればよいでしょうか? 教えてください。

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

  • ベストアンサー
  • papayuka
  • ベストアンサー率45% (1388/3066)
回答No.3

#1です。 #2さんの回答で解決と思いますが、、、 ちょっと違うアプローチのサンプルを挙げておきます。 事前に日付毎のシートを用意せず、シート名「入力」のセルC1の値によってその都度作成する例です。 参考まで。 Sub Test() Dim ws As Worksheet, tSheet As Worksheet, sName As String  Set tSheet = Worksheets("入力")  sName = tSheet.Range("C1").Text & "日"  '同一シートが無いかチェック  For Each ws In Worksheets   If ws.Name = sName Then     MsgBox sName & "のシートは既にあります。" & vbCrLf & _        "日付を見直して下さい。", vbExclamation, "重複"     Exit Sub   End If  Next ws  'シートを追加して処理  Set ws = Worksheets.Add(after:=Worksheets(Worksheets.Count))  tSheet.Cells.Copy Destination:=ws.Cells  ws.Cells.Copy  ws.Cells.PasteSpecial xlPasteValues  On Error Resume Next  ws.Name = sName  Application.CutCopyMode = False  tSheet.Activate End Sub

その他の回答 (2)

  • pkh4989
  • ベストアンサー率62% (162/260)
回答No.2

こんにちは。 こんな感じかな~ Sub 入力データ貼付け()   Dim WS   As String   '   With ActiveSheet '←入力シート     WS = .Range("C1")      '入力値(1~31)     WS = WS & "日"       'シート名が(1日~31日)の場合、→ 1~31の場合は不要     Selection.Copy '選択範囲をコピー     Sheets(WS).Range("A1").PasteSpecial Paste:=xlValues     .Range("D7").Select   End With End Sub

  • papayuka
  • ベストアンサー率45% (1388/3066)
回答No.1

Excelだと思いますけど、、、一応ソフトは何でしょう? 日々のシートと入力シートのデータの持ち方が解らないのですが、入力シートを日々の名前で保存しているならば、日々のシートと入力シートは同様の書式って事でしょうか? ならば毎日、それぞれのシートに入力すれば良いだけに思いますけど、、、 > せいぜい「入力シート」を別のシートにコピー出来ただけで、 各シートの構成とシート名、このマクロを提示された方が良いかも。

assam28jp
質問者

補足

すみません・・・エクセルです。入力シートも日々のシートも同じ書式で作成しています。 日々の名前で保存しているのですが、その保存の仕方では他の作業に支障が出てしまって・・・。会社内のことなので詳しくは・・・ 「入力シート」に売上金額や商品番号など入力したものを、その日付に応じた「○日」のシートに「値だけ」貼り付けをしていこうと思います。 エクセルのマクロで作成したのですが、精々以下のことしか出来ず・・・ Cells.Select Selection.Copy Sheets("1日").Select Cells.Select Selection.PasteSpecial Paste:=xlValues, Operation:=xlNone, SkipBlanks:= _ False, Transpose:=False Range("D7").Select End Sub 入力シートのセルC1などに、日付(1など)を入力しておくと、その日付の数字に対応したシートへコピーが出来ないかと思っているのですが。 パソコンに詳しくなく、見よう見まねでマクロをしています。 この程度の説明しかできませんが、どうぞよろしくお願いします。

関連するQ&A