
VBA 初心者です。強縮ですがまたお力添え頂けたらと思います。
出来ないことが3点あります。。。
①売上データを基に請求書を作成するマクロを組んでいる所なのですが、ひとまず1枚のデータ基を請求書に転記するマクロは組めました。
次の段階として、2枚目以降のデータを対象の列から最終行を取得して貼り付ける。ということを行いたく、Cells(Rows.Count, "").End(xlUp).Rowを使うのは解るのですがデータ基の繰り返しForの値との組み合わせ?方がわかりません。
下記に1枚のデータ基を請求書に起こすVBAを記載いたします。
どこにどのように追記したらよいのか教えて頂けたらと思います。
また、請求書のD列を対象として小計1、小計2に再度新しいデータ情報をB~I列迄貼付を行いたいです。(B・C列は最初のみ ※写真1枚目参照下さい)
②データ基で金額(AC列)が0の場合はY~AB列の情報も転記せず次の内容に~としたいのですが
わからない状態です。(写真2枚目参照下さい)
IfでAC列が0の場合とするのはわかりますが組込み方がわかりません・・・
③データ基のブック名・シート名が一部変更になっても大丈夫なVBAを組もうと*を使って作ったのですがエラーが起きてしまいつくれませんでした。
ブック名・シート名共にD6までは固定で00101~どんどん変動していきます。
エラーの対応策をご教授頂けたらと思います。
※今は請求書作成をとりあえず先に。と1つの名前で作成しています。
周りにVBA組める人がいないのでここに頼ってしまい申し訳ありませんが宜しくお願い致します。
-------------
Sub 請求書作成()
'シートの指定
Dim wb1, wb2 As Workbook
Dim sh1, sh2 As Worksheet
Dim x, y, m, n As Long
Set wb1 = Workbooks("売上管理票(D600101).xlsx")
Set wb2 = Workbooks("請求書.xlsm")
Set sh1 = wb1.Worksheets("D600101")
Set sh2 = wb2.Worksheets("請求書")
x = 168 & y = 17 & m = 172 & n = 28
With sh2 '小計1
For x = 168 To 171
For y = 17 To 20
Cells(6, 2) = sh1.Cells(3, 14) '取引先名
Cells(17, 2) = sh1.Cells(2, 8) '案件コード
Cells(17, 3) = sh1.Cells(2, 14) '案件名
Cells(y, 4) = sh1.Cells(x, 25) '項目
Cells(y, 5) = sh1.Cells(x, 26) '数量
Cells(y, 6) = sh1.Cells(x, 27) '単位
Cells(y, 7) = sh1.Cells(x, 28) '単価
Cells(y, 8) = sh1.Cells(x, 29) '金額
x = x + 1
Next
Next
With sh2 '小計2
For m = 172 To 174
For n = 28 To 30
Cells(28, 2) = sh1.Cells(2, 8) '案件コード
Cells(28, 3) = sh1.Cells(2, 14) '案件名
Cells(n, 4) = sh1.Cells(m, 25) '項目
Cells(n, 5) = sh1.Cells(m, 26) '数量
Cells(n, 6) = sh1.Cells(m, 27) '単位
Cells(n, 7) = sh1.Cells(m, 28) '単価
Cells(n, 8) = sh1.Cells(m, 29) '金額
m = m + 1
Next
Next
End With
End With
End Sub
A 回答 (1件)
- 最新から表示
- 回答順に表示
No.1
- 回答日時:
取り合えず。
>Dim wb1, wb2 As Workbook
この宣言方法はwb2は確かにWorkbook型になりますが、wb1はValiant型になります。
他もそうですがVBAではこのような書き方で宣言する型の省略は出来ません。
VB.Net であればこの書き方でも同じ型の宣言としてみなされます。
>x = 168 & y = 17 & m = 172 & n = 28
書き方としては初めて見たので合っているのか否かは不明ですが、『何を目的としている?』と疑問はあります。
x = 168 : y = 17 : m = 172 : n = 28
これなら各変数への代入をしようとしているって事はわかりますけど。
>With sh2 '小計1~2
With ~ End With文として意味を成しているとは思えません。
>Cells(6, 2) = sh1.Cells(3, 14) '取引先名
右辺がsh1のシートを指しているとして左辺がsh2のシートのセルをってことであれば、
.Cells(6, 2) = sh1.Cells(3, 14) '取引先名
Cellsの前にピリオドを付けないとWith文とは繋がらないかと。
と本題からずれましたが、本題の回答については理解できていませんのでそちらは常連さん(過去質との関係あり?)にお任せです。
色々とご指摘ありがとうございます。まだ始めたばかりできちんと組み立て、理解が出来ていないのが現状なのでとても勉強になります。
手元のVBAは修正したいとおもいます!!
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) VBA 請求書自動作成 3 2022/04/24 01:58
- Visual Basic(VBA) マクロで最終行を取得したい 4 2023/05/28 12:14
- Visual Basic(VBA) 追記する列を増やしたい 2つのデータを検索・照合して元データにないデータを下記マクロで商品名を追記し 9 2022/10/05 10:50
- Excel(エクセル) VBAで組み合わせ算出やCOUNTIFSの処理を高速化したいです。 4 2022/04/07 02:38
- Visual Basic(VBA) 【ご教示ください】VBAの記述方法がわかりません。 2 2022/08/12 21:28
- Visual Basic(VBA) vbaを早くしたい 5 2022/09/09 10:58
- Visual Basic(VBA) vba 重複データ合算 5 2023/07/05 18:55
- Visual Basic(VBA) VBA 別ブックからの転記の高速化について VBA 別ブックからの転記の高速化についてご教授下さい。 19 2022/07/26 13:07
- Visual Basic(VBA) 複数シートの複数列に入力されているデータを重複なしで抽出するVBAを作りたいです。 9 2022/06/17 10:33
- Visual Basic(VBA) VBA Userformで一部別シートに転記がしたいのですが 2 2023/05/24 13:08
このQ&Aを見た人はこんなQ&Aも見ています
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
Excel VBA インデックスの境...
-
Excel で行を指定回数だけコピ...
-
Excelマクロで空白セルを詰めて...
-
エクセルVBAで SendKeys "{TAB}"
-
VBA別シートの最終行の下行へ貼...
-
セルの一部を任意の条件で貼り...
-
エクセルVBA 別シートの複数の...
-
Excel VBAでシート内全体に非表...
-
excelの差込印刷で可視セルだけ...
-
エクセルVBAで 2種のリストを...
-
Excel・VBAで同じものだけを表...
-
VBA:同じ文字列データの比...
-
機種変更時にデータは見られる?
-
スマホ機種変更で旧機種のGoogl...
-
携帯修理出して戻ってきたら、L...
-
携帯電話にくわしい人!!!
-
着信ボイス「You've got mail」...
-
電話帳のデータをmicroSDカード...
-
パソコンに音楽を取り込みたい...
-
PNG画像は 携帯で表示できますか?
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
Excel で行を指定回数だけコピ...
-
Excel VBA インデックスの境...
-
VBA:同じ文字列データの比...
-
エクセル:VBAで月変わりで、自...
-
Excelマクロで空白セルを詰めて...
-
excelの差込印刷で可視セルだけ...
-
VBA別シートの最終行の下行へ貼...
-
エクセルVBAで 2種のリストを...
-
VBAで条件が一致する行のデータ...
-
Excelマクロ データが上書きさ...
-
WorkbooksとWorksheetsを簡単に...
-
VBA 貼付先範囲(行)がいっぱ...
-
ExcelVBAで改ページを追加したい
-
【WORD差し込み印刷】複数レコ...
-
エクセルVBAで SendKeys "{TAB}"
-
Excel VBAでシート内全体に非表...
-
Excel VBA :2回目以降実行で貼...
-
Excel VBA 複数条件にマッチし...
-
エクセル2007で、マクロで、結...
-
Excel VBA元データから別シー...
おすすめ情報
請求書の画像です
データ基の画像です
VBAの修正、Withの意味がないとのことでしたのでWith文やめました。
再度きちんと質問させて頂くため、こちらの質問はクローズさせて頂きます。