2018年2月24日土曜日

弥生会計インポート形式でエクスポートするコード

こんにちは、Shigeです。
今回はコードの一部分だけのっけます。


  1.     Shcsv.Cells(w, 1).Value = 2000
  2.     Shcsv.Cells(w, 4).Value = ShAc.Cells(i, 1).Value '日付
  3.     Shcsv.Cells(w, 17).Value = ShAc.Cells(i, 7).Text '摘要
  4.     Shcsv.Cells(w, 8).Value = "対象外" '借方税区分
  5.     Shcsv.Cells(w, 14).Value = "対象外" '貸方税区分
  6.     Shcsv.Cells(w, 10).Value = 0 '借方消費税金額
  7.     Shcsv.Cells(w, 16).Value = 0 '貸方消費税金額
  8.     Shcsv.Cells(w, 20).Value = 0 'タイプ
  9.     Shcsv.Cells(w, 25).Value = "no" '調整
  10.     Shcsv.Cells(w, 5).Value = ShAc.Cells(i, 2).Value '借方科目
  11.     Shcsv.Cells(w, 6).Value = ShAc.Cells(i, 3).Value '借方補助科目
  12.     Shcsv.Cells(w, 11).Value = ShAc.Cells(i, 4).Value '貸方科目
  13.     Shcsv.Cells(w, 12).Value = ShAc.Cells(i, 5).Value '貸方補助科目
  14.     Shcsv.Cells(w, 9).Value = ShAc.Cells(i, 6).Value '金額
  15.     Shcsv.Cells(w, 15).Value = ShAc.Cells(i, 6).Value '金額


変数のShcsvはエクスポート用にシートを作成してるので、そのシートを入れてます。
細かく解説するってほどのものでもないですけど「=」の左側が弥生会計のインポート形式に書き出し、右側がインポートしたいデータが入力されているシートのセルを指定しているというコードになります。
ちなみに変数wはcsv側の行列で、変数iはデータ側の行列をforで回してます。
  1. w=1
  2. for i = 5 to MaxRow
  3. ~
  4. w= w+1
  5. next i
みたいな感じですね。
あと、このコードには欠点があります。
免税なら問題ないのですけど、課税事業者の場合は消費税コードを赤文字の部分で強制的に指定しているためインポートをした後に訂正しなければいけないです。
まぁ、どうしてもインポートする時に必要なら、データ側のシートで「税区分」「消費税金額」列でも作成してもらって、「対象外」とか「0」をShAc.Cells(i,〇).valueとかで訂正するとできると思います。
では、また。

0 件のコメント:

コメントを投稿

ブックの全シートをまとめるコード

こんにちは、Shigeです。 今回は、ブックに複数あるシートのデータを「まとめ」のシートにコピペするコードです。 Sub Matome()   Dim i As Integer   Dim lRow As Long, lCol As Long, lRow2 As Lo...