• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:エクセルVABを使ってデータの取得・印刷までをしたいのですが・・・)

エクセルVBAを使ってデータの取得・印刷までをする方法

このQ&Aのポイント
  • エクセルで簡単なデータを入力し、整理番号、住所、生年月日の情報を専用フォームにコピーして印刷する方法について、VBAの利用方法を教えてください。
  • 日々のデータ量に合わせて印刷枚数を設定することも可能です。
  • VBAを利用することでエクセルVBAでデータの取得・印刷を効率的に行うことができます。VBA初心者でも問題ありません。

質問者が選んだベストアンサー

  • ベストアンサー
  • agricap
  • ベストアンサー率40% (79/195)
回答No.1

直接の回答ではありませんが、その程度であれば、「自動記録」 をしてみれば大抵解決します。 http://www.asahi-net.or.jp/~ef2o-inue/vba_k/sub04_020.html 「自動記録(記憶)から始める。 」を参照してやってみてください。

すると、全ての回答が全文表示されます。

その他の回答 (2)

  • imogasi
  • ベストアンサー率27% (4737/17070)
回答No.3

本当はそんなことは、しなくても良いが、関数を使って、VBAを簡単にするため、下記の方法で何度か回答をしています。 もと データのシート1の各行に連番を空き列に振ります。( A列A2からとします) フォームの印刷外の1セル(仮にA1とします)に、番号を入れます。 (実際はVBAで順次入れる。下記関数を設定後は、手作業で入れてシート2の内容が変化するさまを確認できます) フォームの整理番号を入れるセルに =VLOOKUP(A1,シート1!$A$2:$F$200,2,FALSE) 住所を入れるセルに =VLOOKUP(A1,シート1!$A$2:$F$200,3,FALSE) 以下略 を入れます。 VBEの標準モジュールで Sub test01() Worksheets("Sheet2").Select d = Range("B65536").End(xlUp).Row For i = 2 To d Range("A1") = i Range("A2:j30").PrintOut Next i End Sub を貼り付け、実行すればd-1枚内容を変えて印刷します。 Range("A2:j30")はシート2(フォーム)の印刷範囲です。 適当に実際にあわせて変えてください。 帳票見出し、項目見出し、フォント、配置、セル高、色、書式、罫線などは手作業で、VBA実行前に整えておいてください。VBAでもできるが、勉強して先の話です。

すると、全ての回答が全文表示されます。
  • merlionXX
  • ベストアンサー率48% (1930/4007)
回答No.2

シート2に作成してある専用のフォームのレイアウトがわからないので適当に、整理番号がA2、住所がB2、生年月日がC2としました。 Sub test() Set sh1 = Sheets("Sheet1") 'Sheet1をsh1とする Set sh2 = Sheets("Sheet2") 'Sheet2をsh2とする x = sh1.Range("A65536").End(xlUp).Row 'Sheet1のA列最終行を取得し、Xとする For n = 1 To x 'Sheet1の1行目から最終行のデータまで繰り返す。 sh2.Range("A2") = sh1.Cells(n, "A") 'Sheet2のA2にSheet1のA列n行目のデータ sh2.Range("B2") = sh1.Cells(n, "C") 'Sheet2のB2にSheet1のC列n行目のデータ sh2.Range("C2") = sh1.Cells(n, "E") 'Sheet2のC2にSheet1のE列n行目のデータ sh2.PrintOut 'Sheet2を印刷する Next '繰り返す End Sub

6765
質問者

お礼

有難う御座いました。 マルチポストのつもりはなかったのですが… お気に触られたのであれば、申し訳ありませんでした。 早速がんばってみます。

すると、全ての回答が全文表示されます。

関連するQ&A