• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:Excelで毎日変化する複数商品の在庫数を蓄積したい。)

Excelで複数商品の在庫数を蓄積する方法

このQ&Aのポイント
  • Excelで毎日変化する複数商品の在庫数を蓄積する方法を教えてください。
  • 質問者は1000点以上の商品の在庫数を別のExcelブックからリンクして表示していますが、毎日変化する在庫数を保存したいと考えています。
  • Excel関連の書籍を購入し、マクロについても調べたが応用できなかったため、助言を求めています。

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

  • ベストアンサー
  • merlionXX
  • ベストアンサー率48% (1930/4007)
回答No.1

標準モジュールではなくThisWorkbookモジュールに記載してください。 シート名は実際のものに変えてください。 BOOKの終了時に保存先シートに自動転記します。 Private Sub Workbook_BeforeClose(Cancel As Boolean) Dim s1 As Worksheet, s2 As Worksheet Dim c As Integer Set s1 = Sheets("Sheet1") '現在のシート Set s2 = Sheets("Sheet2") '保存先のシート With s2 c = Application.Max(.Cells(1, Columns.Count).End(xlToLeft).Column + 1, 3) '最終列取得 s1.Columns("C:C").Copy '在庫列コピー .Cells(1, c).PasteSpecial '保存先のシート最終列に貼り付け Application.CutCopyMode = False 'コピーモード終了 .Cells(1, c) = Date '保存先のシート最終列最上行に日付 .Columns(c).AutoFit '列幅自動調整 End With End Sub

moon-walker
質問者

お礼

ありがとうございました。 解決しました。 慣れた感じの記述で、とても勉強になります。 実は在庫列(Sheet1のC列)に関数が入っていますので、ただそのままコピーだと関数までコピーしてしまい適切ではありませんでしたので、9行目を .Cells(1, c).PasteSpecial Paste:=xlPasteValues のようにさせていただきました。 改めてExcelの便利さと奥深さを痛感しました。 素早いご回答にも感謝です。 ありがとうございました。

関連するQ&A