Excelマクロで複数列の値を同時にシートに入力して印刷する方法

Visual Basic

Excelのマクロを使用して、シート上のデータを自動で処理し、印刷する作業は効率的ですが、複数の列を同時に扱いたい場合、少し工夫が必要です。質問者様のように、B列のデータとC列のデータを同時にシート2の指定のセルに入れて、印刷を行いたい場合、どうマクロを修正すれば良いのでしょうか。

1. 既存のマクロにC列の値を追加する

質問者様の現行のマクロは、B列の値をシート2のE2セルに順番に入力し、印刷を行っています。ここにC列のデータも追加するには、簡単に言うと、C列の値をE2の隣のセル(例えばF2)に入れる必要があります。

2. 修正したマクロコード例

以下に、B列の値をE2セルに、C列の値をF2セルに入力して、それぞれ印刷するための修正コードを示します。

Range("B1").Activate
Do While ActiveCell.Text <> ""
    Worksheets(2).Range("E2").Value = ActiveCell.Text
    Worksheets(2).Range("F2").Value = ActiveCell.Offset(0, 1).Text ' C列の値をF2に入力
    Worksheets(2).Range("B1:AM16").PrintOut
    ActiveCell.Offset(1, 0).Activate
Loop

この修正により、B列のデータをE2に、C列のデータをF2に同時に入力し、その後、シート2の指定範囲(B1:AM16)を印刷することができます。

3. 他のセルへのデータ入力方法

上記ではE2とF2セルに入力しましたが、もし他のセルにデータを入力したい場合は、同様にセルの位置を変更することで対応できます。例えば、G2セルにD列の値を入力したい場合は、以下のようにします。

Worksheets(2).Range("G2").Value = ActiveCell.Offset(0, 2).Text ' D列の値をG2に入力

4. 注意点と改善方法

この方法で進める際の注意点として、ActiveCell.Offsetの位置が正しく設定されているか、また、マクロを実行する際に印刷範囲やシートの選択が適切であることを確認してください。

また、もし印刷の設定が頻繁に変更される場合は、マクロ内でその設定も調整できるようにしておくと、より便利に運用できます。

5. まとめ

Excelマクロを使用して、複数の列を同時にシートに入力し、印刷する方法は、少しのコード修正で実現可能です。B列とC列の値を同時にシート2に入力する場合、`Offset`を利用することで簡単に対応できます。マクロの運用をより効率的にするためにも、シートの設定や印刷範囲の確認はしっかり行いましょう。

コメント

タイトルとURLをコピーしました