マクロの登録

Excelのシートにコマンドボタンを配置して、コマンドボタンをクリックすることで
マクロを実行できるようにします。

挿入タブ→図形→額縁をクリックします。
2506281

コマンドボタンを作りたい場所でクリックし、サイズはドラッグしながら調整して下さい。
2506282
これでコマンドボタンの配置が完了しました。

次にマクロを登録します。
配置したコマンドボタンの上で、右クリックを押して、マクロの登録をクリックします。
2506283

ここで登録したいマクロを選択し、OKをクリック。
2506284
これでマクロの登録も完了しました。これでコマンドボタンを押すことで、マクロが実行できるようになりました。

Accessの起動

著書では、Accessの基本的な操作までは解説していないので、基本中の基本から解説します。
書籍の内容で本に書ききれなかったことについては、このサイトで触れますが、
本に書かれている内容については著作権の関係上、表示することができないのでご了承下さい。

最初にAccessの起動です。
ACCESSを開くと次の画面が表示されます(Access2013)。
2506272
ここで、空のデスクトップデータベースをクリック。

ファイル名を変更し、①その横のデータベースの保存先をクリック。
2506276

②作成するデータベースの保存する場所とファイルの種類を変更し、OKをクリック。

そして③作成をクリックします。

Accessが起動し、テーブルを作成する画面になります。
2506274

ここからAccessのテーブルの設定を行います。

小口経費精算表はAccessで

「著書 経理業務のためのAccess実践講座」で、最初のサンプルとして小口現金精算表を作ります。
小口経費精算表はどちらかと言えば、Excelで十分では?と思うかもしれません
が、絶対にAccessで作った方が後々の運用が楽になります。

それは、精算表は枚数がどんどん増えるので、仮に100枚になった場合、シートもしくは
ファイルが100あることになります。

Accessで運用した場合は一つのファイルに全てのデータが格納されます。

この違いが分かりますか?

まずExcelの場合、ファイルの管理が大変です。
そして、もう古いものは見ないということであると、もうそのファイルのデータは
生かすことができません。

Accessではファイルの管理はほぼ不要です。

そして経理では小口経費精算表を会計ソフトに入力します。Excelの場合折角作った
のに、それを一度紙に打ち出したデータを基に入力する場合、この時点で二度手間が
発生します。

では、Accessの場合はというと、Accessのデータをそのまま仕訳に変換して会計ソフト
にインポートします。インポートの概要は今まで解説してきた通りです。

Excelでもできますが、Excelの場合はシートやファイルに散在
しているデータをまとめる作業が必要なので、Accessほど効率よくできません。

是非小口経費精算表は簡単に導入できるので、まず手始めにAccessで始めてみては
いかがでしょうか。

行数の調整

シート間のデータのやりとりについて追加したプログラムです。
Dim a As Integer
a = 3
Worksheets(“元のデータ”).Activate
Do Until Cells(a, 1).Value = “”
Worksheets(“インポート”).Cells(a – 1, 1).Value = Cells(a, 1).Value
Worksheets(“インポート”).Cells(a – 1, 5).Value = Cells(a, 2).Value
If Cells(a, 4).Value = “” Then
Worksheets(“インポート”).Cells(a – 1, 2).Value = 101
Worksheets(“インポート”).Cells(a – 1, 3).Value = 999
Worksheets(“インポート”).Cells(a – 1, 4).Value = Cells(a, 3).Value
Else
Worksheets(“インポート”).Cells(a – 1, 3).Value = 101
Worksheets(“インポート”).Cells(a – 1, 2).Value = 999
Worksheets(“インポート”).Cells(a – 1, 4).Value = Cells(a, 4).Value
End If
If Cells(a, 2).Value Like “*印紙*” Then
Worksheets(“インポート”).Cells(a – 1, 2).Value = 726
End If
If Cells(a, 2).Value Like “*切手*” Then
Worksheets(“インポート”).Cells(a – 1, 2).Value = 724
End If
If Cells(a, 2).Value Like “*引出し*” Then
Worksheets(“インポート”).Cells(a – 1, 3).Value = 121
End If
a = a + 1
Loop
End Sub
①シート名「インポート」を参照しているときは、Cells(a-1,1)
②シート名「元のデータ」を参照しているときは、Cells(a,1) となっています。
2506271
これはシート名「インポート」では、3行目からデータがスタートしていますが、
シート名「元のデータ」では2行目からデータがスタートしています。
このずれを調整するためにシート名「インポート」ではa-1としています。

Worksheets(“インポート”).Cells(a – 1, 1).Value = Cells(a, 1).Value
a=3のとき 
Worksheets(“インポート”).Cells(a – 1, 1).Value →A2
Cells(a, 1).Value →A3
・・・
a=12のとき 
Worksheets(“インポート”).Cells(a – 1, 1).Value →A11
Cells(a, 1).Value →A12 

このようにシートによってどの行からスタートさせるのか違う場合は変数に対して
引き算で調整します。 

Accessは魔法のソフトです。

今まで作ってきたAccessデータベースは、
販売管理システム
工事原価管理システム
給与計算データベース
事務所の顧客管理データベース
手形管理データベース
中古車販売業の庫車管理データベース
その他にもお客様の要望に応じたシステムを作ってきました。

Accessのいいところは、何でも作れるということです。そして
高度なデータベースの知識がなくてもできるということです。

ちなみに私はどこかでAccessの勉強をしたわけではなく、独学で
身に付けてきました。そんな私でも今では思い通りのデータベース
が自由に作れるということは、やはりAccessというソフトのすごい
ところだと思います。

と言っても当然いきなり作れるようにはなりません。

一からテーブルの作成方法、クエリの設定、フォームとレポートの作成、
更にはAccessVBAまで一通りこなす必要があります。

しかし使えるようになると、大変便利です。
そしてその知識を必要としている中小企業はごまんとあります。

是非このサイトを通じて一人でも多くの会計人がデータベースの
必要性と作り方を理解し、日本の中小企業を元気にするためにご尽力頂ければ
幸いです。

微力ながらそのお手伝いをさせて頂きたいと思います。

今までのおさらい

これが完成型のプログラムです。
Sub 変換()
Dim a As Integer
a = 3
Do Until Cells(a, 1).Value = “”
Cells(a, 7).Value = Cells(a, 1).Value
Cells(a, 11).Value = Cells(a, 2).Value
If Cells(a, 4).Value = “” Then
Cells(a, 8).Value = 101
Cells(a, 9).Value = 999
Cells(a, 10).Value = Cells(a, 3).Value
Else
Cells(a, 9).Value = 101
Cells(a, 8).Value = 999
Cells(a, 10).Value = Cells(a, 4).Value
End If
If Cells(a, 2).Value Like “*印紙*” Then
Cells(a, 8).Value = 726
End If
If Cells(a, 2).Value Like “*切手*” Then
Cells(a, 8).Value = 724
End If
If Cells(a, 2).Value Like “*引出し*” Then
Cells(a, 9).Value = 121
End If
a = a + 1
Loop
End Sub

これが基本形です。
最初のうちは、セルがどこを参照しているのか、理解しにくかも
しれません。そんなときはF8を押して一行ずつコードを進め、変数が
今いくつでどこのセルを参照しているのかしっかり確認する、または
自分でCells(a,○)がどこのセルなのかしっかり確認して下さい。

またa=a+1を忘れると無限ループに突入するので気を付けて下さい。

最後に大事なこと、コートが書き終わったら必ず保存してから実行して
下さい。
マクロを実行しても意図したとおりにならなかった場合、
元に戻そうと思っても戻せません。そんなときは、実行前に保存して
元の状態に戻すときは保存しないで終了し、再度そのファイルを開いて
下さい。

IF関数を使って科目を判別させる

科目の判断もExcelVBAでできます。

科目の判断までパソコンにやらせることに、不安を感じる方もいらっしゃるかも
しれませんが、ご安心下さい。
例えば、
①摘要の中に「印紙」という言葉があれば、租税公課
②摘要の中に「切手」という言葉があれば、通信費
③摘要の中に「引出し」という言葉があれば、普通預金
等々
結局人もパソコンも考え方は同じです。もし間違いがあればあとでソフトの方で
直せばそれで済む話です。

ではプログラムはどう書くか?
①の場合
If Cells(a, 2).Value Like “*印紙*” Then
Cells(a, 8).Value = 726   →(租税公課の科目CD)
End If
②の場合
If Cells(a, 2).Value Like “*切手*” Then
Cells(a, 8).Value = 724   →(通信費の科目CD)
End If
③の場合
If Cells(a, 2).Value Like “*引出し*” Then
Cells(a,9).Value = 121   →(普通預金の科目CD)
End If
こんな具合です。
「Like “*○×*”」は、○×というキーワードを含むという意味です。
このコードをどこに当てはめるのかというと、

Sub 変換()
・・・
End If
→ ここです!
a = a + 1
Loop
End Sub
実行後の画面です。もうあとは会計ソフトにそのままインポートするだけです。
2506251

このやり方だと、科目を判別したい摘要の数だけIF関数のコードを追加して頂く必要
があります。ですのですべての摘要を入れることは難しいですが、よく使うものだけを
コードに追加して下さい。
それでも振込料、飲食代、交際費、交通費、消耗品等々20くらい追加すれば、7割8割は
フォローできるのではないかと思います。