• 締切済み

VBAを使用した売上管理表の当月表示について

標記の件について、売上管理表から添付画像のように会社ごとにまとめた額を毎月一覧表示させたいと考えています。 画像は売上と仕入が一緒くたになっていますが、売上側の表示ができれば仕入側も同様にできるのではないかとも考えています。 本来はピボットテーブルでやれれば簡単なのですが、PCに不慣れな年配の者が手書きで添付シートを作成し、税理士に投げて経理処理していることから、できるだけ簡素な入力操作にした売上・仕入のシート作成だけで、上記一覧が表示できるようにするつもりです。 よろしければご回答いただければ幸いです。

みんなの回答

  • HohoPapa
  • ベストアンサー率65% (455/693)
回答No.4

拙作マクロを利用する上での留意点を1つ。 出力先に、 例えば前月の集計結果が10行埋まっている状態で 今月の集計結果8行を出力した合 9行目、10行目に前月の集計結果が残ります。 そのため、集計先は予めクリアーしてください。

commupla
質問者

お礼

ありがとうございます。 いただいたご回答、留意します。

  • imogasi
  • ベストアンサー率27% (4737/17070)
回答No.3

エクセルシートの列(項目)の模擬実例も記述・説明しないで、VBAコードを書けと言う、のはおかしいし、丸投げで、VBAコードを書いてくれと言うのも、どうかな。 結果表も大事だが、データのあり様こそ、VBAを作るものの、大関心事だ。 (1)こういうのは本来ソフト業者にお世話になるべきもので、回答者が、作るのに、数時間かかるのをやれと言うのはね。ヒントだけでも、何がわからないのさえも書いてないので、示唆しようもない。 >PCに不慣れな年配の者が手書きで添付シートを作成し、税理士に投げて経理処理しているこ・・ これは質問者のことですか?よく周りの人がエクセルに不慣れだという理由で、ピボットやVBAを避ける理由にしている、質問者が多いが、質問者が相当勉強しないと、業務的なVBAのコードを作れないとおもう。 (3)エクセルでなくても、XX奉行、弥生会計(約4万とか?(注))といった会計ソフトは、ちゃんとしたものがある。データも税理士側で、それら向けの、データで、今と変わらない費用で、作ってくれるのではないか。 (注)Googleで「弥生会計 価格」で照会しただけ、で付帯して、他にいくらかかるかは、知らない。 そこでソフト作成が、業者が仮に10万円と言われたとしたら、回答者にそれだけのものを、無料でやってくれと言うに等しい。 (3)WEBでフリーのソフトもないか、チェックしても良いだろう。 ーー エクセルで処理する、として、会社列+売上コード+仕入れコード(各々。コードがなければ別途列に作成)でフィルタするか、ソートして、そこから会社別+売上、会社別+仕入れ表の印刷表に適したデータを、まず作ることを考えてはどうか(データ並びが肝心)。

commupla
質問者

お礼

ご回答ありがとうございます。 別の質問で回答していただいた特定の方への追加の質問が前提でした。 本質問板の利用の仕方がよくなかったかもしれず、すみません。 いただいたご回答は参考にさせていただきます。

  • HohoPapa
  • ベストアンサー率65% (455/693)
回答No.2

https://okwave.jp/qa/q9612515.html の延長にある質問であれば 次のようなコードです。 Option Explicit Sub Sample2()  Const FDate As String = "#2019/3/1#"  Const TDate As String = "#2019/4/1#"    Dim cn As Object  Dim rs As Object  Dim SQL As String  Dim shF As Worksheet  Dim shT As Worksheet    'シートを定義  Set shF = ThisWorkbook.Sheets("sheet1") '集計元シート  Set shT = ThisWorkbook.Sheets("sheet2") '集計先シート    'DBを定義、設定  Set cn = CreateObject("ADODB.Connection")  Set rs = CreateObject("ADODB.Recordset")  cn.Provider = "Microsoft.ACE.OLEDB.12.0"  cn.Properties("Extended Properties") = "Excel 12.0;HDR=YES;IMEX=1"  cn.Open ThisWorkbook.FullName  'SQL文を組立  SQL = ""  SQL = SQL & "SELECT [会社],SUM([合計請求額]),SUM([売上]),SUM([消費税])"  SQL = SQL & "FROM [Sheet1$A1:Z10000]" & vbCrLf '集計元シート名と範囲  SQL = SQL & "WHERE " & vbCrLf  SQL = SQL & "( [日付] >= " & FDate & ") and " & vbCrLf  SQL = SQL & "( [日付] < " & TDate & ") " & vbCrLf  SQL = SQL & "GROUP BY [会社]"  SQL = SQL & "ORDER BY [会社]"     'SQLを実行  rs.Open SQL, cn  '結果セットを格納  'shT.Cells.ClearContents '出力先シートの全領域をクリアー  shT.Cells(2, 3).CopyFromRecordset rs   '※ .Cells(2, 3) は、出力先左上角のセル位置   '後処理  rs.Close  Set rs = Nothing  cn.Close  Set cn = Nothing   End Sub

commupla
質問者

お礼

度々丁寧なご回答ありがとうございます。 実際に管理表を使う人からは少し時間が空く(できた)ことを聞いたので、いただいたご回答を基に作成してみたいと思います。

  • kkkkkm
  • ベストアンサー率66% (1742/2617)
回答No.1

PCに不慣れな年配の方がデータ入力するのでしょうか。 とすれば会社名が完全に一致するとも思えず、一致しないと会社ごとにまとめることは難しいのではないでしょうか。 また、売上管理表のフォーマットもわからないですし、一覧表示のセルの位置もわかりませんが、回答する人がそのあたりを適当にVBAで答えてcommupla さんがご自身でそちらの環境に合わせて修正できるのでしょうか。 ピボットテーブルが作成できるのでしたら作成して、毎月データの更新だけすればいいのではないでしょうか。

commupla
質問者

お礼

ご回答ありがとうございます。 別の質問で回答していただいた特定の方への追加の質問が前提でした。 本質問板の利用の仕方がよくなかったかもしれず、すみません。 いただいたご回答は参考にさせていただきます。

関連するQ&A