質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.50%
VBA

VBAはオブジェクト指向プログラミング言語のひとつで、マクロを作成によりExcelなどのOffice業務を自動化することができます。

Q&A

解決済

3回答

10365閲覧

VBAを使って複数のデータを決まったフォーマットで印刷したい

退会済みユーザー

退会済みユーザー

総合スコア0

VBA

VBAはオブジェクト指向プログラミング言語のひとつで、マクロを作成によりExcelなどのOffice業務を自動化することができます。

0グッド

0クリップ

投稿2016/11/06 12:30

ストレスチェックの回答データをフォーマットに反映させた上で印刷したいのですが
VBAを利用するにあたり質問です。

エクセル内容
・Sheet1:回答データ一覧
(データフィールド: 所属 氏名 従業員番号 点数A 点数B 点数C)
・Sheet2:フォーマット(帳票となる様式)

1 Sheet1で印刷対象となる回答の行を複数選択する
2 Sheet2のフォーマットで1枚ずつ印刷する

上記1、2のコードはどのように書けばよいでしょうか。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答3

0

Sheet1とSheet2に関する具体的情報がないのであまり具体的な回答ではないですが、流れは以下の通りです。
以下1)~4)の繰り返しとなります。

  1. Sheet1の「所属」をコピーし、Sheet2の所定の位置に貼り付け
  2. Sheet1の「氏名」をコピーし、Sheet2の所定の位置に貼り付け
  3. 「従業員番号」「点数A」「点数B」「点数C」も同様にコピー、貼り付け
  4. Sheet2を印刷

コピー、貼り付け、印刷に関しては、まずはマクロの記録機能を使って作成してみることをお勧めします。
複数のレコードの繰り返しについては、セル番地を変数で指定し、for文でループさせます。
「セル番地の変数指定」「for文」はググれば情報はたくさんあります。

まずはご自身である程度コードを作成してみて、詰まった段階で改めて質問をされるとよいと思います。

投稿2016/11/06 12:40

ynakano

総合スコア1894

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

ベストアンサー

シート1がデータシート、シート2はテンプレートとして利用されるということですね。
やりかたはいろいろあると思いますが、自分ならこうする、という観点で処理の流れのみアドバイスさせていただきます。


案1:テンプレートシートにデータシートの値を毎回上書きで入力し、1枚ずつ印刷する
⇒ 印刷終了後、印刷したイメージは残らない。
⇒ 1枚作成→印刷→破棄→1枚作成・・を繰り返すため、総ページ数などは取得できない。

案2:1データ毎にテンプレートシートを複製し、データシートの値を入力。最後にまとめて印刷する
⇒ 印刷終了後、印刷したイメージが不要な場合はシート削除すればよい
⇒ 総ページ数が取得できる

案1はシートの複製が不要な分、案2よりもお手軽にできると思いますが、制約もあります。
案2は制約は減りますが、シートを複製する分、処理は多少遅くなると思います。


案1の場合の処理の流れは
①シート1のデータ行をループ処理(選択行のみ処理する)
(ループ内)
②シート2にデータ行の内容を反映する
④シート2を印刷
(ループ終了)

のようになると思います。

案2の場合は
①シート1のデータ行をループ処理(選択行のみ処理する)
(ループ内)
②シート2を複製する。(必要であればシート名も変更)
③複製したシートにデータ行の内容を反映する
(ループ終了)
④作成したシートをすべて選択して印刷
のようになると思います。

案2の方が多少面倒ですが融通が利くので、処理速度が気にならないのであれば自分なら案2で行くと思います。
参考になれば幸いです。

投稿2016/11/07 01:56

jawa

総合スコア3013

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

投稿2016/11/06 13:45

iwamoto_takaaki

総合スコア2883

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.50%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問