• 締切済み

vba 作成

博学の方ご教授願います。 office2007のVBAで下記の様なものを作りたいのでお願いします。 SHEET1 A列に管理番号 C列にお客様名 D列に通し番号 H列に入庫日 が入ったシート があり在庫に一つづつ入庫シートを張り付けています。 今は一枚ずつ手で書いてますがそれを自動で出せるようにしたいのです。 SHEET2にその入庫シートを作りA列C列D列H列を1から順番にSHEET2の入庫シート に入れた上プリントアウト出来るものを作成したいです。 希望はSHEET2のC1にSHEET1のH列の入庫日を SHEET2のE2にSHEET1のD列の通し番号 SHEET2のE3にSHEET1のC列のお客様名 SHEET2のL1にSHEET1のA列の管理番号 を 1から順番に自動入力した上プリントアウト出来ればありがたいです。

みんなの回答

  • CC_T
  • ベストアンサー率47% (1038/2202)
回答No.1

accessで帳票印刷・・・・というのは置いときましょうかね。 ひねりも無いベタなものですけど、どうぞ。 sheet1の2行目(gyou=2)から初めて、下に向かって通し番号(C列)のセルの値がゼロ(未記入)になるまでsheet2の指定セル情報を更新しては印刷、を繰り返します。 macro2はおまけ。 指定の通し番号のセルを探して、その行の分を印刷します。 ~~~ Sub Macro1() ' Dim gyou As Integer ' gyou = 2 Sheets("Sheet2").Select While (Sheet1.Cells(gyou, 3) > 0) Cells(1, 3) = Sheet1.Cells(gyou, 8) Cells(2, 5) = Sheet1.Cells(gyou, 3) Cells(3, 5) = Sheet1.Cells(gyou, 2) Cells(1, 12) = Sheet1.Cells(gyou, 1) ActiveWindow.SelectedSheets.PrintOut From:=1, To:=1, Copies:=1, Collate _ :=True, IgnorePrintAreas:=False gyou = gyou + 1 Wend End Sub Sub Macro2() ' Dim gyou As Integer Dim Obj As Object numb = InputBox("印字対象の通し番号を入力", "物品貼り付け票印刷", "") If numb = "" Then MsgBox "無効な入力です。中断します" Exit Sub End If Set Obj = Worksheets("Sheet1").Cells.Find(numb, LookAt:=xlWhole) If Obj Is Nothing Then MsgBox "指定された「" & numb & "」がリストにありません。" Exit Sub End If gyou = Worksheets("Sheet1").Cells.Find(numb).Row Sheets("Sheet2").Select Cells(1, 3) = Sheet1.Cells(gyou, 8) Cells(1, 5) = Sheet1.Cells(gyou, 3) Cells(2, 5) = Sheet1.Cells(gyou, 2) Cells(1, 12) = Sheet1.Cells(gyou, 1) ActiveWindow.SelectedSheets.PrintOut From:=1, To:=1, Copies:=1, Collate _ :=True, IgnorePrintAreas:=False End Sub

関連するQ&A