【VBA】請求書から台帳へ自動転記【一覧形式にまとめると集計しやすいです】

แชร์
ฝัง
  • เผยแพร่เมื่อ 27 ธ.ค. 2024

ความคิดเห็น • 5

  • @syouzama
    @syouzama ปีที่แล้ว +2

    大変勉強になる動画ありがとうございます。動画中で質問があるのですが
    With Sheets("台帳").Cells(Rows.Count, "A").End(xlUp)
    .Offset(1, 0).Resize(3) = Sheets("請求書").Range("A2").Value '取引先
    .Offset(1, 1).Resize(3) = Sheets("請求書").Range("A10:A12").Value '品目
    .Offset(1, 2).Resize(3) = Sheets("請求書").Range("D10:D12").Value '単価
    .Offset(1, 3).Resize(3) = Sheets("請求書").Range("E10:E12").Value '数量
    End With
    とwithを使用した場合は問題ないのですが、withを使わずにいちいち
    Sheets("台帳").Cells(Rows.Count, "A").End(xlUp)を冒頭に記入した場合、
    B列以降、行がずれます。起点が移ってoffsetでずれていくのだと思うのですが、
    with でくくった場合はなぜずれないのでしょうか?

    • @IT-gx8sf
      @IT-gx8sf  ปีที่แล้ว +1

      コメントありがとうございます!
      「With」を使った場合は、Withでくくった部分のVBAコードが「記憶」されますので、セルの値が変更された場合でも、最初に実行したセル位置が使われることになります。
      「With」でくくらない場合は、その都度、VBAコードが実行されて最終行を更新してしまい、Offsetで1行下に移動されてしまいますので、行がずれてしまいます。
      わかりづらい場合は、次のように変数に行番号を保存する方法もあります。
      ↓最終行を取得
      「A=Sheets("台帳").Cells(Rows.Count, "A").End(xlUp).Row」
      ↓Withを使わない場合
      Sub TEST2()
      '最終行を取得
      Dim A
      A = Sheets("台帳").Cells(Rows.Count, "A").End(xlUp).Row
      '最終行+1行目に値を転記
      Sheets("台帳").Cells(A + 1, 1).Resize(3) = Sheets("請求書").Range("A2").Value
      Sheets("台帳").Cells(A + 1, 2).Resize(3) = Sheets("請求書").Range("A10:A12").Value
      Sheets("台帳").Cells(A + 1, 3).Resize(3) = Sheets("請求書").Range("D10:D12").Value
      Sheets("台帳").Cells(A + 1, 4).Resize(3) = Sheets("請求書").Range("E10:E12").Value
      End Sub
      わかりやすい方法を使う方が良いかなと思いましたので、Withを使わない場合も記載してみました。
      参考になればと思います(^^)

    • @syouzama
      @syouzama ปีที่แล้ว +2

      @@IT-gx8sf 納得です。スッキリしました!ありがとうございます。
      大体でITさんの動画は簡単なコードから書き始めて、段階を一つずつ踏んで
      完成させるのでとても分かりやすいと思います。感謝しかありません😀

  • @ひきまさみ
    @ひきまさみ 7 หลายเดือนก่อน +1

    見積書をデータベース化しようと思っています。
    複数シートを転記は不要ですが
    紹介いただいた内容で試してみます。
    ありがとうございました。
    行き詰まったら
    教えていただけると助かります😊

  • @秋山庄一
    @秋山庄一 10 หลายเดือนก่อน +1

    動画大変役に立ちました、有難う御座いました。
    お願いがあります、請求書シートに取引先を変えて転記し、商品を3行だけではなく
    数行を使えたいのですが、よろしくご指導をお願いいたします。