VBA初心者です。 Excelにてプルダウンで選択した整理番号の申請者の情報を「ひな形」シートの該当する項目に入力し印刷したいと考え、マクロを組もうとしています。
VBA初心者です。 Excelにてプルダウンで選択した整理番号の申請者の情報を「ひな形」シートの該当する項目に入力し印刷したいと考え、マクロを組もうとしています。 しかし、いざマクロを実行してみると「ひな形」シートに何も入力されない状態で印刷されてしまうのですが、下記をどう修正すれば良いでしょうか? Sub 申請書() Dim nowCells Set nowCells = Cells(2, "A").Offset(0, Cells(2, "D").Value) '① 必要なデータをひな形へ入力 ThisWorkbook.Sheets("ひな形").Range("B3") = nowCells.Offset(1, 0) ThisWorkbook.Sheets("ひな形").Range("B4") = nowCells.Offset(2, 0) ThisWorkbook.Sheets("ひな形").Range("B5") = nowCells.Offset(3, 0) ThisWorkbook.Sheets("ひな形").Range("B6") = nowCells.Offset(4, 0) '② ひな形シートを印刷する。 ThisWorkbook.Sheets("ひな形").PrintOut End Sub ※コード3行目の「Cells(2, "D").Value」の代わりに1や2,3と数字を入力した場合は「ひな形」シートに差し込みが正常に行われ、印刷できました。 ※
Excel | Visual Basic・86閲覧・250
ベストアンサー
全員でなくプルダウンで選択した人のみを印刷したいということですか? まず、プルダウンの入力規則を =OFFSET(リスト!A2,0,1,1,COUNTA(リスト!2:2)-1) にします。これでリスト数に自動的にプルダウンの番号が対応します。 コードは↓で。 Sub 印刷() Dim ws1 As Worksheet, ws2 As Worksheet Dim myRng As Range Set ws1 = Worksheets("リスト") Set ws2 = Worksheets("ひな形") Set myRng = ws1.Cells(2, 1).CurrentRegion With ws2 myRng.Offset(1, .Cells(2, 4)).Resize(4, 1).Copy _ Destination:=.Cells(3, 2) .PrintOut End with End Sub
ただプルダウンを選択した時点で反映される訳ではないので、リスト内容を確認して印刷したいのであればVBAじゃなくワークシートで数式を入れておいた方が早いですね。
質問者からのお礼コメント
ご回答いただきありがとうございます。 どなたにベストアンサーを付けようか迷いましたがあなた様に付けさせていただきました。またまだ知識不足ですが少しずつ知識を付けていきたいと思います!
お礼日時:5/19 19:23