Wordの差し込み印刷は分かりにくい。保存後にWordを開くと変なメッセージがでて、修正するにはどうすればいいのか使い方が分からない。
元のデータはExcelにあるので、Excelのリストを使ってExcelから差し込み印刷風にできないか?
自分の好きな位置から印刷をはじめたりすることはできないか?と思ったことはありませんか?
慣れるまでは大変ですが一度覚えると簡単ですのでExcelのリストを使って差し込み風に印刷してみたい方はぜひ挑戦してみてください。
<用意するシート>
Sheet1(印刷用):アウトプットできるよう最終的に整えたもの(罫線、配置等加工したもの)
Sheet2(リスト):差し込み印刷用のリスト
<前準備>
①Excelファイルを、名前を付けて保存を先にして、マクロの形式にする
まず初めに、マクロを使用するのでファイルをxlsm形式で保存します。
xlsx(普通のエクセル)とxlsm(マクロ)と2つ出来てしまいますが、これには理由があります。
マクロを作成すると、途中でデータに欠損が出てしまったり、うまくいかなかったりすることがあります。
意地になって修正しようと頑張るのですが、いっそのこと最初に戻って1から始めた方がうまくいく場合が多いです。
そのため2つファイルが作成されてしまいますが、すべてが終了するまでは元のxlsxファイルはそのままにしておくことをお勧めします。
②開発メニューが表示されていない方は、こちらをご参照ください。
③Sheet1(印刷用)に指定するリスト番号(ページ番号)を入れておくためのセルを決めます。
今回は[A2]のセルとします。
※番号は後から文字の色を「白」にすることで印刷には影響しません。
④Sheet2(リスト)のA列は、番号の列にしてください。
<Sheet1:印刷用>
範囲を指定して印刷するためのボタンを作成する。
1.コマンドボタンを作成する。
開発/挿入/ボタン(フォームコントロール)
1-1.ボタンを配置したいところに、ドラックして作成する。
2.登録するマクロの名前を修正し、フォームを呼び出す準備をする。
ボタンX_Clickと表示されるが、後から見て何のことを指しているのか分からなくなるので、マクロ名を「印刷開始」にし、[新規作成] をクリックします。
※[新規作成]をクリックせずに、[OK]をクリックした場合は、キーボードから[Alt]+[F11]を押します。
Microsoft Visual Basic for Applicationsが立ち上がります。
2-1.ボタンをクリックしたらフォームが出てくるように指定します。UserForm1.Showと入力してください。
Sub 印刷開始() から End Sub の間に、UserForm1.Showと入力してください。
※どの範囲を印刷するのか指定するためのフォームを呼び出すためのものです。
3.印刷範囲を指定するためのフォーム(画面)を作成します。
Microsoft Visual Basic for Applicationsメニューから3-1.挿入/ユーザーフォームをクリックします。
フォームが表示されるので、印刷開始のページ番号を指定するための、テキストボックスと終了を指定するためのテキストボックス、印刷ボタンのコマンドボタンを作成してください。
フォームの作成方法については、以下のサイトがとても丁寧に見やすく説明されているので、参考にしてください。https://kokodane.com/macro30.htm
以下のように作成してみてください。
4.印刷ボタンにコードを登録します。印刷ボタンを選択し、右クリック/コードの表示をクリックします。
4-1.指定された番号のものを印刷するためのコードを書きます。
Private Sub CommandButton1_Click() から End Subまでの以下のコードを入力してください。
Range("A2")のところは、ご自身で決められたセルを指定してください。コードのテキストを貼り付けておきます。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 |
Private Sub CommandButton1_Click() Dim 番号 As Integer a = TextBox1.Value n = TextBox2.Value For 番号 = a To n Sheets("印刷用").Range("A2").Value = 番号 Sheets("印刷用").PrintOut Next 番号 Unload Me End Sub |
次に、Sheet1(印刷用)に表示するものをVlookup関数を使って設定をしていきます。
5.リストから印刷用に、vlookupを使って値をセットします。
設定するのは、印刷用のシートです。
=VLOOKUP(検索値,範囲,列番号,検索方法)
検索値は、前準備③で指定したセルにしてください。今回は”A2”
範囲は、リストにある表
お疲れ様でした!以上で設定は終了です。実際に指定した通りに印刷できるか、動かしてみましょう。
↓↓↓
↓↓↓
印刷開始で指定した番号から印刷することができました。
A2はあくまでも開始番号を保存しておくためのものなので、はじめは「1」しても印刷開始で指定した番号から印刷されるようになります。
もしうまく設定できていない場合は、指定するセルが間違っていないかよく確認してください。