FC2ブログ

エクセルで差し込み印刷

しっかし、VBAなんて何年振り??

って、そもそも「差し込み印刷」って言葉自体知りませんでしたよ。

で、こちらを読んで納得。

差し込み印刷

って、そもそもWord前提じゃん。って、今回はそれをExcelでやりたいとのこと。いろいろ見てみたら、VBA使った方が早いってコトで。ちなみに、要件はこんな感じでした:

こんな3×2のシートの特定のセルに値を埋め込んで印刷ということで。こちらは「Sheet1」。
sheet1

1.B2,F2,J2のセルに3000をセット
2.B8,F8,J8のセルに3001をセット
3.印刷

4.B2,F2,J2のセルに3002をセット
5.B8,F8,J8のセルに3003をセット
6.印刷

...

B2,F2,J2のセルに3998をセット
B8,F8,J8のセルに3999をセット
印刷

かつ、開始と終了は別シートで指定と。これが「Sheet2」。
sheet2

となれば、確かにVBAだなー。と言うことでソースは以下。


値を埋め込んで、印刷する関数。


Function insertion_print(value1, value2)
Worksheets("Sheet1").Range("B2").Value = value1
Worksheets("Sheet1").Range("F2").Value = value1
Worksheets("Sheet1").Range("J2").Value = value1

Worksheets("Sheet1").Range("B8").Value = value2
Worksheets("Sheet1").Range("F8").Value = value2
Worksheets("Sheet1").Range("J8").Value = value2

Worksheets("Sheet1").PrintOut

End Function

それを呼び出す関数。

Sub main()
Dim start_count As Integer ' 開始番号
Dim end_count As Integer ' 終了番号

start_count = Worksheets("Sheet2").Range("B1").Value
end_count = Worksheets("Sheet2").Range("B2").Value

For Value = start_count To end_count Step 2
Call insertion_print(Value, Value + 1)
Next Value
End Sub

と、バリデーションとかは全然してませんが。しっかし、Wordで出来てExcelで出来ないとかってなんともかんともすな。まあ、久々によい復習になったので良かったと言うことで。あ、Subじゃないとマクロのリストに現れないんですねー。なんでだろ。そもそも、SubとFunctionの違いなんて忘却の彼方だし。
スポンサーサイト



FC2 Blog Ranking


実験@2008/05/22 23:03   | 0 comments | 0 trackbacks |

コメント

コメントの投稿


秘密にする

«  | HOME |  »

いろいろ作ったり

プロフィール

icot

Author:icot
総合電気メーカで働く会社員でしたがいい年にも関わらずコンサルに転職。お酒、ジョギング、音楽、本、料理をこよなく愛してます。ここでは、日々感じた事を書き連ねるとともに、いろいろ実験してみたりしてます。
icotfeels[at]gmail.com

これまでに感じたこと