- 締切済み
VBAを使用した売上管理表の当月表示について
- みんなの回答 (4)
- 専門家の回答
みんなの回答
- HohoPapa
- ベストアンサー率65% (455/693)
拙作マクロを利用する上での留意点を1つ。 出力先に、 例えば前月の集計結果が10行埋まっている状態で 今月の集計結果8行を出力した合 9行目、10行目に前月の集計結果が残ります。 そのため、集計先は予めクリアーしてください。
- imogasi
- ベストアンサー率27% (4737/17070)
エクセルシートの列(項目)の模擬実例も記述・説明しないで、VBAコードを書けと言う、のはおかしいし、丸投げで、VBAコードを書いてくれと言うのも、どうかな。 結果表も大事だが、データのあり様こそ、VBAを作るものの、大関心事だ。 (1)こういうのは本来ソフト業者にお世話になるべきもので、回答者が、作るのに、数時間かかるのをやれと言うのはね。ヒントだけでも、何がわからないのさえも書いてないので、示唆しようもない。 >PCに不慣れな年配の者が手書きで添付シートを作成し、税理士に投げて経理処理しているこ・・ これは質問者のことですか?よく周りの人がエクセルに不慣れだという理由で、ピボットやVBAを避ける理由にしている、質問者が多いが、質問者が相当勉強しないと、業務的なVBAのコードを作れないとおもう。 (3)エクセルでなくても、XX奉行、弥生会計(約4万とか?(注))といった会計ソフトは、ちゃんとしたものがある。データも税理士側で、それら向けの、データで、今と変わらない費用で、作ってくれるのではないか。 (注)Googleで「弥生会計 価格」で照会しただけ、で付帯して、他にいくらかかるかは、知らない。 そこでソフト作成が、業者が仮に10万円と言われたとしたら、回答者にそれだけのものを、無料でやってくれと言うに等しい。 (3)WEBでフリーのソフトもないか、チェックしても良いだろう。 ーー エクセルで処理する、として、会社列+売上コード+仕入れコード(各々。コードがなければ別途列に作成)でフィルタするか、ソートして、そこから会社別+売上、会社別+仕入れ表の印刷表に適したデータを、まず作ることを考えてはどうか(データ並びが肝心)。
お礼
ご回答ありがとうございます。 別の質問で回答していただいた特定の方への追加の質問が前提でした。 本質問板の利用の仕方がよくなかったかもしれず、すみません。 いただいたご回答は参考にさせていただきます。
- HohoPapa
- ベストアンサー率65% (455/693)
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
お礼
度々丁寧なご回答ありがとうございます。 実際に管理表を使う人からは少し時間が空く(できた)ことを聞いたので、いただいたご回答を基に作成してみたいと思います。
- kkkkkm
- ベストアンサー率66% (1742/2617)
PCに不慣れな年配の方がデータ入力するのでしょうか。 とすれば会社名が完全に一致するとも思えず、一致しないと会社ごとにまとめることは難しいのではないでしょうか。 また、売上管理表のフォーマットもわからないですし、一覧表示のセルの位置もわかりませんが、回答する人がそのあたりを適当にVBAで答えてcommupla さんがご自身でそちらの環境に合わせて修正できるのでしょうか。 ピボットテーブルが作成できるのでしたら作成して、毎月データの更新だけすればいいのではないでしょうか。
お礼
ご回答ありがとうございます。 別の質問で回答していただいた特定の方への追加の質問が前提でした。 本質問板の利用の仕方がよくなかったかもしれず、すみません。 いただいたご回答は参考にさせていただきます。
お礼
ありがとうございます。 いただいたご回答、留意します。