見出し画像

印刷マクロ作成(マクロの基本) ※全文無料

前回紹介した選択名列作成の続きです。

番号を決める⇒対応する名列が表示される。
というEXCELファイルを作成しました。

画像1

次は、この名列を印刷したいと思います。
番号を1にして、印刷ボタンを押して、番号を2にして、印刷ボタンを押して…………
とやっていると日が暮れてしまいます。

指定した番号から指定した番号まで一気に印刷するマクロを組みたいと思います。

マクロって仕事が早くなるって聞くけど、難しそうって人も多いのではないでしょうか。
まずは、マクロをコピペして動かせるようになるところから目指しましょう。
コピペでマクロを使いまわしているうちに、少しずつ理解していき、アレンジができるようになり、自分で組めるようになります。

0.そもそもマクロってなに?

手作業でできる単純な作業を機械にしてもらおうというのがマクロです。
ポイントは、「手作業でできる単純な作業」というところです。

機械は言ったとおりにしか動きません。融通が効きません。
しかし、言ったとおりに、我慢強く仕事をしてくれます。
何をしてほしいか、明確に指示をすることで人間にとって苦痛な単純作業を手早く終えてくれます。
この明確な指示を機械に伝えるための手段がマクロです。

では、実際に作ってみましょう。

1.マクロを組むための準備

まず、EXCELファイルをマクロ有効ブックにします。

EXCELを開いて左上にある「ファイル」をクリックします。

画像2

開いた画面で「名前をつけて保存」をクリックします。

画像3

保存形式を「EXCEL マクロ有効ブック(*.xlsm)」を選択し、保存します。

画像4

これで開いているファイルが「マクロ有効ブック」になりました。
フォルダの中を見てみると、普通のEXCELとマクロ有効のEXCELがあるはずです。
アイコンに「!」がついている方がマクロ有効ブックです。
拡張子を表示している場合は「xlsm」がマクロ有効ブックです。

画像5

2.マクロを作成

マクロ有効ブックの状態で「開発」タブをクリックし、「マクロ」ボタンをクリックします。

画像6

下のような画面が出ますので、マクロ名に「印刷」と打ち込み「作成」ボタンをクリックします。

画像7

すると、新しく下のような画面が開きます。

画像8

右の入力ウインドウに次のマクロをコピペしてください。

Sub 印刷()
Dim print_start, print_end, counter As Integer              '使う変数をすべて整数型と宣言する。
print_start = InputBox("印刷を開始する番号を入力してください。")    '印刷開始の番号を変数print_startに入れる。
print_end = InputBox("印刷を終了する番号を入力してください。")      '印刷流量の番号を変数print_endに入れる。
For counter = print_start To print_end                      'counter をprint_startからprint_endにひとつずつ変化させながら下の操作を行う。
Cells(5, 2) = counter                                       '5行目2列目のセル(B5)にcounterの値を代入する。
ActiveWindow.SelectedSheets.PrintOut Copies:=1              'プリントを行う。
Next                                                        'counterの値を一つ大きくする。
End Sub

これで保存をするとひとまず完成です。
保存する際に、「ドキュメント検査機能では削除できない個人情報がドキュメントに含まれていることがありますので、ご注意ください。」という警告文が出ることもありますが、「OK」をクリックしてください。

マクロの解説は最後に行います。
まずは、使えるようにしましょう。

3.ボタンを作成する

マクロの編集画面を閉じて、EXCEL本体に戻ります。
「挿入」タブで「図形」を選び、四角形を選択します。

画像9

図形を作成し、「印刷」と打ち込みます。
好みの書式にしてください。

画像10

この図形にマウスを合わせて、右クリックをします。
「マクロの登録」をクリックし、「印刷」マクロを選択します。

画像11

画像12

これでセット完了です。

4.実際に使ってみる

先程作成して「印刷ボタン」をクリックします。
はじめに、「印刷を開始する番号を入力してください。」と言われるので、「1」と入力し「OK」を押します。
次に、「印刷を終了する番号を入力してください。」と言われるので、「5」と入力し「OK」を押します。
すると、1,2,3,4,5と番号を変化させながら、印刷が実行されます。

画像13

画像14

5.マクロの解説

ここからは今回作ったマクロの解説を行います。
とりあえず使えることが目標ならば、読み飛ばしてしまって構いません。

Dim print_start, print_end, counter As Integer 
変数の宣言を行っています。変数とは数値を代入する”箱”と思ってください。
今回使う変数は、print_start, print_end, counter の3つです。
すべて、整数型(Integer)です。

InputBox("印刷を開始する番号を入力してください。")
入力画面を開きます。入力画面には「印刷を開始する番号を入力してください。」という文字列を表示します。
print_start = InputBox("印刷を開始する番号を入力してください。")
InputBoxで入力された値を print_start という変数に代入します。

print_end = InputBox("印刷を終了する番号を入力してください。")
同様です。

For counter = print_start To print_end ~~~~ Next
まず、counter という変数の値をprint_start に入った値にします。
次に、~~~~に入力された動作を実行します。
終わると、counter の値を1つ大きくします。
これは、cunter の値が print_end の値になるまで実行します。

Cells(5, 2) = counter
5行目2列目(B5セルのこと)の値を counter の値にします。

ActiveWindow.SelectedSheets.PrintOut Copies:=1
印刷をします。

以上です。
ひとつひとつが明確な指示になっているため、機械が誤解なく動きます。

いかがでしたでしょうか。
印刷マクロは、生徒全員分の確認表の印刷や、成績表の印刷、今回のような名列の印刷と、学校でよく使うと思います。
まずは、コピペで使えるように。
次に、少しアレンジできるように。
そして、0から作れるように。
1つずつスキルアップを目指してください。

※ 本文は以上です。「記事を購入」での応援を歓迎します。応援いただけましたら今回作成したEXCELファイルをプレゼントいたします。

ここから先は

0字 / 1ファイル

¥ 200

最後までお読みいただきありがとうございます。「スキ」をしていただけるととても励みになります。