
マクロ素人で途中まで作成したんですがこの後が分かりません。
教えて頂けますでしょうか?
見積書シートから請求書シートに転記したいのですが天気までは出来たんですが、次に転記した時に次の行に転記したいです。
今だと何度も同じところに転記する状態です。
アドバイスよろしくお願い致します。
Sub 転記()
Dim ws1 As Worksheet
Dim ws2 As Worksheet
Set ws1 = Worksheets("見積書")
Set ws2 = Worksheets("請求書")
ws2.Range("B16:N33").Value = ws1.Range("B16:N33").Value
MsgBox "請求書へ転記が完了しました。"
End Sub

No.3ベストアンサー
- 回答日時:
duffer_dog です。
同じ見積もり先様への請求書を作成するのに見積書を何度かの作業に分けて入力し、各見積りを先に作成した請求書の下に加えていくということでしょうか?
だとすれば、仮に請求書の書式が見積書と同じとして項目見出しが第15行として合計が書かれている行を(30, 2)とした場合以下のようではいかがでしょうか。
※合計行(30, 2)が異なる場合は変数 e と t の値を変えてください。
-----
Sub 転記()
Dim ws1 As Worksheet
Dim ws2 As Worksheet
'
Set ws1 = Worksheets("見積書")
Set ws2 = Worksheets("請求書")
'
Dim r As Integer ' 処理を開始する見積書の行番号
Dim l As Integer ' 転記する請求書の行番号
Dim e As Integer ' 合計を表示する行番号
Dim t As Integer ' 合計が書かれている列番号
r = 16
' 書式が異なる場合 e と l の値を書式に合わせてください
e = 30 ' 仮に第30行目に「合計」があるとする
t = 2 ' 仮に第2列目に「合計」があるとする
' 請求書の最終行を得る
' 「合計」の書かれている行から上に向かって値のあるセル
l = ws2.Cells(e, t).End(xlUp).Row
l = l + 1
'
Do While ws1.Cells(r, 2) <> "" ' 値が無くなるまで繰り返す
ws2.Range(ws2.Cells(l, 2), ws2.Cells(l, 15)).Value = _
ws1.Range(ws1.Cells(r, 2), ws1.Cells(r, 15)).Value
r = r + 1 ' 次の行へ移るため加算
l = l + 1
Loop
'
MsgBox "請求書へ転記が " & l - 1 & " 行目まで完了しました。"
End Sub
再度アドバイス頂き誠にありがとうございます。
解決致しました。
私の言い方が悪く大変ご面倒をお掛け致しました、今回の頂きましたものをそのまま入力致しましたら希望どおり動作いたしました。
大変助かりました、とても感謝いたします。本当にありがとうございました。
No.2
- 回答日時:
1行1行転記処理を行うマクロを組めば全行を転記できます。
品番のタイトル行の次の行を開始行(16)として1行づつ行(r)加算していき、品番。品名の値が空白(<>)になったら処理を終わる、というマクロです。以下見本の書式に従って組んでみました。
Sub 転記()
Dim ws1 As Worksheet
Dim ws2 As Worksheet
'
Set ws1 = Worksheets("見積書")
Set ws2 = Worksheets("請求書")
'
Dim r As Integer ' 処理を開始する行番号
r = 16
'
Do While ws1.Cells(r, 2) <> "" ' 値が無くなるまで繰り返す
ws2.Range(ws2.Cells(r, 2), ws2.Cells(r, 15)).Value = _
ws1.Range(ws1.Cells(r, 2), ws1.Cells(r, 15)).Value
r = r + 1 ' 次の行へ移るため加算
Loop
'
MsgBox "請求書へ転記が完了しました。"
End Sub
ご連絡頂きありがとうございます。
とても詳しく教えて頂きそのまま書きもめましたのでとても助かりました。
アドバイス頂きましたもので作成してみましたがうまく次の行に移りませんでした、同じところに何度も転記されてしまいます。転記するたびに前回転記したものの下に転記されていくようにしたかったのですが。
でも本当に教えて頂きありがとうございました。
No.1
- 回答日時:
こんにちは
>次に転記した時に次の行に転記したいです。
次に転記する元がどうなっているのか不明なのでセンテンスにはできませんけれど、ws2の最終行が求められれば良いということと解釈しました。
仮にB列には必ず値があるものと仮定できるのなら、
ws2.Cells(Rows.Count, 2).End(xlUp)
で、B列の最終セルを取得できます。
(B列を基準にできない場合は、必ず値のある列を基準にしてください)
例えば、その次の行のN列までのセル範囲であれば、
ws2.Cells(Rows.Count, 2).End(xlUp).Offset(1).Resize(, 13)
のような要領で、セル範囲として取得可能です。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
このQ&Aを見た人はこんなQ&Aも見ています
-
エクセルvbaで、別シートの最下行にデータを取り込むコードを教えてください。
Visual Basic(VBA)
-
マクロ転記で指定した列の最終行に転記するコードを教えてください。
Excel(エクセル)
-
Excel VBA、 別ブックの最終行セルへのコピー&値ペースト
Visual Basic(VBA)
-
-
4
VBA別シートの最終行の下行へ貼り付けされるようにしたいです。
その他(Microsoft Office)
-
5
別シートの最終行に貼り付けするマクロを教えてください。 シートYのE3からE15までをコピー シート
Excel(エクセル)
-
6
マクロで最終行を取得してコピーしたい
Visual Basic(VBA)
-
7
VBA 空白行に転記する
Visual Basic(VBA)
-
8
エクセル:マクロ「Application.CutCopyMode = False」って?
Excel(エクセル)
-
9
エクセルVBAで、条件に一致するセルへ移動
Excel(エクセル)
-
10
vba 2つの条件が一致したらコピーして別シートに値のみ貼り付け
Visual Basic(VBA)
-
11
別のブック最終行最終列の次への転記
Excel(エクセル)
-
12
マクロ 最終列をコピーして最終列の次の列に挿入する
Visual Basic(VBA)
-
13
VBAで繰り返しコピーしながら下へ移動させる方法
Excel(エクセル)
-
14
エクセルVBA 4行飛ばしで転記するループ処理
Excel(エクセル)
-
15
EXCELマクロで、シート間でのコピーペーストを繰り返す方法
Excel(エクセル)
-
16
エクセル マクロ 貼り付け先が空白でない場合 1行下に貼りつける
Excel(エクセル)
-
17
マクロで空白セルを詰めて別シートに転記
Visual Basic(VBA)
-
18
excel VBA 2つのシートの特定の列を比較して同じ値のセルがあったらその行を上書きしたい
Excel(エクセル)
-
19
VBA 別ブックからコピペしたいのですが、軽くしたいです
Visual Basic(VBA)
-
20
セルの値と同じ名前のシートをアクティブにするには?
Excel(エクセル)
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
マクロ実行後に別シートの残像...
-
マクロの「SaveAs」でエラーが...
-
VBA 空白行に転記する
-
EXCELのSheet番号って変更でき...
-
VBA 別ブックからの転記の高速...
-
VBAでEXCELから固定長...
-
Changeイベントで複数セルへの...
-
Excelマクロで不要な行を繰り返...
-
【VBA】データを各シートに自動...
-
VBA別シートの最終行の次行へ転...
-
VBA : エクセルの列を5列追加し...
-
Count Ifのセルの範囲指定に変...
-
楽天RSSからエクセルVBAを使用...
-
複数シートの複数列に入力され...
-
Excel VBA オートフィルターで...
-
VBA 実行時エラー1004 rangeメ...
-
グラフマクロで系列を変数にす...
-
Unionでの他のシートの参照につ...
-
VBAで変数の数/変数名を動的に...
-
●エクセルのセルロックについて…
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
マクロの「SaveAs」でエラーが...
-
EXCELのSheet番号って変更でき...
-
VBA別シートの最終行の次行へ転...
-
VBA 空白行に転記する
-
マクロ実行後に別シートの残像...
-
Count Ifのセルの範囲指定に変...
-
楽天RSSからエクセルVBAを使用...
-
VBA 別ブックからの転記の高速...
-
VBAで変数の数/変数名を動的に...
-
Changeイベントで複数セルへの...
-
100万件越えCSVから条件を満た...
-
【Excel VBA】自動メール送信の...
-
VBA 実行時エラー1004 rangeメ...
-
エクセルでデータの比較をした...
-
アクセスからエクセルへ出力時...
-
Excel VBA オートフィルターで...
-
【VBA】データを各シートに自動...
-
複数シートの複数列に入力され...
-
Unionでの他のシートの参照につ...
-
VBA Userformで一部別シートに...
おすすめ情報