連結会計システム比較27選!会社の特徴別おすすめ製品と選び方 » 連結会計をExcelで行うメリット・限界とシステム化の選択肢 » 連結仕訳をExcel VBAで自動化する方法とサンプル

連結仕訳をExcel VBAで自動化する方法とサンプル

連結決算における仕訳作業は、内部取引の消去や投資と資本の相殺など、繰り返し発生する定型処理が多く含まれます。Excelを使ってこれらを手作業で行うと時間がかかり、ミスのリスクも高まります。そこで役立つのがVBAによる自動化です。本記事では、連結仕訳を自動で処理するExcel VBAのサンプルと実務での活用方法を解説します。VBAによる自動仕訳を理解すれば、連結決算の効率化が大きく進みます。

連結仕訳の代表的な処理

連結決算で必要となる仕訳には大きく3つの種類があります。第一に、親子会社間や子会社同士の取引を相殺する「内部取引消去」。第二に、親会社の投資勘定と子会社の資本金を相殺する「投資と資本の消去」。第三に、未実現利益やのれんの処理です。定型化しやすい仕訳を中心にVBAで自動化するのが実務的です。

VBA自動化のメリット

Excel関数だけで処理しようとすると、複雑な数式やリンクが増えてブラックボックス化しやすくなります。VBAを導入することで、処理の流れをコード化し、誰でも再現できる形に残せるのが大きな利点です。

さらに、処理をワンクリックで実行できるようになるため、作業時間を大幅に削減できます。特に子会社数が多いグループ企業では、時間短縮効果が顕著に表れます。

サンプルコード:内部取引消去

以下は、内部取引の消去仕訳を自動で生成する簡易的なVBAサンプルです。2つのシートにある売上と仕入を突合し、相殺仕訳を出力します。


Sub EliminateIntercompanyTransactions()
    Dim wsSales As Worksheet, wsPurchases As Worksheet, wsOutput As Worksheet
    Dim lastRowS As Long, lastRowP As Long, i As Long, j As Long, rowOut As Long
    
    Set wsSales = ThisWorkbook.Sheets("Sales")
    Set wsPurchases = ThisWorkbook.Sheets("Purchases")
    Set wsOutput = ThisWorkbook.Sheets("Elimination")
    
    lastRowS = wsSales.Cells(wsSales.Rows.Count, 1).End(xlUp).Row
    lastRowP = wsPurchases.Cells(wsPurchases.Rows.Count, 1).End(xlUp).Row
    rowOut = 2
    
    For i = 2 To lastRowS
        For j = 2 To lastRowP
            If wsSales.Cells(i, 1).Value = wsPurchases.Cells(j, 1).Value _
               And wsSales.Cells(i, 2).Value = wsPurchases.Cells(j, 2).Value Then
               
                wsOutput.Cells(rowOut, 1).Value = "売上消去"
                wsOutput.Cells(rowOut, 2).Value = wsSales.Cells(i, 3).Value
                wsOutput.Cells(rowOut, 3).Value = -wsPurchases.Cells(j, 3).Value
                rowOut = rowOut + 1
            End If
        Next j
    Next i
End Sub

このコードは非常にシンプルですが、取引先コードや金額が一致する場合に自動で仕訳を作成できます。突合と仕訳生成を同時に実行できるのがVBAの強みです。

サンプルコード:投資と資本の消去

次に、親会社の投資勘定と子会社の資本金を自動で相殺するVBAのサンプルです。


Sub EliminateInvestmentAndCapital()
    Dim ws As Worksheet
    Dim lastRow As Long, i As Long, rowOut As Long
    
    Set ws = ThisWorkbook.Sheets("Investment")
    rowOut = 2
    lastRow = ws.Cells(ws.Rows.Count, 1).End(xlUp).Row
    
    For i = 2 To lastRow
        ws.Cells(i, 4).Value = "投資と資本の消去"
        ws.Cells(i, 5).Value = -ws.Cells(i, 2).Value
        ws.Cells(i, 6).Value = ws.Cells(i, 3).Value
    Next i
End Sub

このサンプルでは、投資額と資本金を突き合わせて自動で相殺仕訳を出力します。資本消去の自動化によって入力の手間が大幅に軽減されます。

実務で使う際の工夫

サンプルコードをそのまま実務に使うのではなく、会社ごとの勘定科目体系や仕訳ルールに合わせてカスタマイズする必要があります。マスタ参照方式を取り入れると柔軟に対応可能です。

また、ログ出力やエラー検出を組み込むことで、仕訳の正確性を担保できます。特に金額が一致しなかった取引は別シートに抽出し、差異一覧を自動生成する仕組みが有効です。

VBA活用の注意点

便利な一方で、VBAには注意点もあります。まず、担当者依存になりやすい点です。コードがブラックボックス化すると、引き継ぎが難しくなります。属人化の回避にはコメントやマニュアルの整備が欠かせません。

また、Excelのバージョン更新や環境変更で動作が不安定になることもあります。定期的にテストを行い、保守性を意識した管理を続けることが大切です。

まとめ

連結仕訳の自動化は、Excel VBAを活用すれば比較的容易に実現できます。内部取引の消去や投資と資本の相殺など定型作業を効率化し、正確性とスピードを両立することが可能です。自社に合った形にカスタマイズし、安定した運用を目指しましょう。

会社の特徴別
おすすめの連結会計システム
3選を見る

会社の特徴から選ぶ
連結会計システム
(連結決算システム)3選

連結会計システム(連結決算システム)は多機能なシステムを導入すればいいというわけではなく、自社に適したシステムを見極めて導入することが欠かせません。
本サイトでは、会社の特徴別におすすめの連結会計システムを紹介します。

少人数体制でも、将来の成長を
見据えて導入したい
中堅企業向け
iCAS/連結DX
(インプレス)
インプレス公式HP
画像引用元:インプレス公式HP
https://www.imprex.co.jp/lp/dx_package
iCAS/連結DXが
おすすめな理由
  • Excel感覚のまま操作ができるから、現場にすぐ定着。
  • 600項目以上の自動エラーチェックで、ミスと手戻りを削減、予実管理・管理連結にも対応
  • 1人からでも回せる!専任コンサルタント伴走の安心な導入・運用サポート体制
複雑な管理体系を
統合・最適化したい
大企業向け
DIVASystem LCA
(ディーバ)
ディーバ公式HP
画像引用元:ディーバ公式HP
https://www.diva.co.jp/products_services/lca/
DIVASystem LCAが
おすすめな理由
  • SAP®含む各種システムと高い連携性で、グループ全体を一元管理
  • 導入実績33,000社超!※1豊富な導入ノウハウで安心。
  • 連結決算を軸に、開示書類作成、単体決算まで決算業務のアウトソーシングに対応可能
海外拠点との一元管理を
行いたい
グローバル企業向け
mcframe GA
(ビジネスエンジニアリング)
mcframe公式HP
画像引用元:mcframe公式HP
https://www.mcframe.com/product/ga
mcframe GAが
おすすめな理由
  • 33の国と地域への導入実績!※2多通貨・多言語・各国税制に対応
  • 海外現地のサポート体制で、グローバル運用も安心。
  • 購買・販売・在庫なども含めたグループ横断の経営管理が可能
※1参照元:DIVA公式サイト(https://www.diva.co.jp/products_services/lca/)2024年9月9日時点
※2参照元:mcframe公式サイト(https://www.mcframe.com/product/ga)2024年7月25日時点
会社の特徴から選ぶ
連結会計システム3選