この記事では、面倒な作業をExcelVBAを利用して楽する便利なワザを紹介します。
定期的にやらないといけない作業のなかで、何かを出力(作成)する作業について効率化できるようになります。
決まった定型的な作業や煩雑で面倒な作業をボタン1つ押すだけで終わらせることができます。
それでは、1つ1つ順番に便利なワザを紹介していきます。
もくじ
1.CSVファイルやテキストファイルを作成する
EXCELシートに入力しているデータからCSVファイルやテキストファイルを作成する便利なワザを紹介します。
以下の図のようなイメージになります。
CSVファイルやテキストファイルを作成する便利なワザをExcelVBAを利用すると、ボタン1つ押すだけであとは自動的にやってくれます。
1-1.入力したデータをCSVファイル形式で出力する
こちらの機能を使うと、EXCELシートに入力されているデータからCSVファイルやタブ区切りのテキストファイルを作成することができます。
区切り文字、くくり文字を指定することができ、作成するファイル名を指定することができます。
- 作成するファイル名を指定できる
- 区切り文字を指定できる(カンマ、タブ、それ以外の文字も可)
- くくり文字を指定できる(ダブルコーテーション、くくりなし、それ以外の文字も可)
【EXCEL:VBA】入力したデータをCSVファイル形式で出力したい
1-2.入力したデータをダブルコーテーションくくりでCSVファイルを出力する
こちらの機能を使うと、EXCELシートに入力しているデータ全てをダブルコーテーションくくりで、CSVファイルを作成することができます。
ちなみに、「ダブルコーテーションくくり」とはこのように「”12345″」、値をダブルコーテーション(”)で囲った値のことです。
ダブルコーテーションくくりにする理由ですが、このようにするとCSVファイルをEXCELで開いたときに全ての値を文字列として扱ってくれます。
「01234」のように先頭が数字の場合、EXCELで開くと勝手に0を取り除いて、「1234」と表示します。
文字列で扱ってもらえると、そういう0落ちが起きません。
- 出力するファイルパスを指定して、CSVファイルを作成する
- EXCELシートに入力しているデータを、CSVファイルとして保存する
- 各項目は、ダブルコーテーションでくくられて、CSVファイルが作成される
【EXCEL:VBA】入力したデータをダブルコーテーションくくりでCSVファイル出力したい
1-3.入力したデータをタブ区切りで出力する
こちらの機能を使うと、EXCELシートに入力しているデータをタブ区切りでテキストファイルを作成することができます。
CSVファイルは、カンマ区切り(,)のファイルですが、カンマの代わりにタブ(空白に見えますが、空白とは異なる文字です。)で、値と値を区切ります。
タブ区切りのテキストファイルのイメージは、以下のような感じです。
AAA BBB CCC DDD
EEE FFF GGG HHH
カンマではなくタブを区切りに利用する理由は、カンマを含む値でテキストファイルを作成する場合です。
カンマを含む値の例は、「123,456」や「123,456,789」です。
カンマを含む値でCSVファイルを作成すると、その行だけ他の行よりカンマが多くなり、列が多くなります。
カンマを含む値の例上記のような値が入力されているシートでCSVファイル作成すると、下記のようなCSVファイルが作成されます。
2行目だけ、カンマが3つ存在しており、列が他の行より多くなっています。
1行目と3行目は3列、2行目は4列になります。
こういった列数のズレを起こさせないために、タブ区切りを使います。
EXCELのセルの中では、タブ(TAB)は入力できませんので、タブ区切りにすることにより、列数がズレることは発生しません。
- 出力するファイルパスを指定して、テキストファイルを作成する
- EXCELシートに入力しているデータを、テキストファイルとして保存する
- 各項目は、タブで区切られたテキストファイルが作成される
【EXCEL:VBA】入力したデータをタブ区切りで出力したい
2.差込印刷を出力する
EXCELシートに入力されているデータと雛形シートを利用して、差込印刷を出力する便利なワザを紹介します。
以下の図のようなイメージになります。
たくさんの人に送る年賀状を作成することをイメージすると、差込印刷のイメージがわかりやすいです。
1人ずつの郵便番号や住所、氏名を決まったフォーマットの決まった位置にセットし、1枚ずつ印刷するイメージです。
年賀状を送りたい人分の情報をEXCELシートに入力し、雛形シートはそれぞれの情報(郵便番号、住所、氏名)をどの位置に出力するか決めます。
2-1.差込印刷を出力する
こちらの機能を使うと、EXCELシートに入力されているデータを1行ごとに差込印刷できます。
つまり、ひな形の各項目の印字位置に、入力データの各項目を表示し、印刷します。
決まったフォーマットで個人ごとに違う情報を印字する印刷物を作りたいときに役に立ちます。
例えば、従業員に配る給与明細やお客様に送付する請求書などに利用できます。
- EXCELシートに印字したいデータを行ごとに入力する
- 入力したデータの各項目をひな形シートの印字したい位置に各項目を表示する
- 1行分のデータをひな形に表示させると、印刷が実行される
- 入力したデータ全行分の印刷物が作成される
2-2.選択した行のみ差込印刷を出力する
こちらの機能を使うと、「2-1.差込印刷を出力する」と同様に差込印刷することができます。
さらにこちらの機能はパワーアップしており、入力したデータを行ごとに出力したいか選択することが可能です。
つまり、10行分のデータを貼り付けておき、4行分のデータのみ差込印刷することができます。
他のEXCELデータに入力されているデータをとりあえず全て貼り付けておき、差込印刷したいデータを選択することができます。
- EXCELシートに印字したいデータを行ごとに入力する
- 入力したデータの各項目をひな形シートの印字したい位置に各項目を表示する
- 1行分のデータをひな形に表示させると、印刷が実行される
- 入力したデータから選択した行のみ印刷物が作成される
2-3.VBAを変更せずに差込位置を変える差込印刷を出力する
こちらの機能を使うと、「2-2.選択した行のみ差込印刷を出力する」と同様に差込印刷することができます。
さらに、その機能をパワーアップさせ、ひな形の差込位置を変更することができるようになっています。
しかも、VBAプログラムを一切変更せずに、差込したい位置のセル番地の指定を変更するだけです。
- EXCELシートに印字したいデータを行ごとに入力する
- 入力したデータの各項目をひな形シートの印字したい位置に各項目を表示する
- 1行分のデータをひな形に表示させると、印刷が実行される
- 入力したデータから選択した行のみ印刷物が作成される
- 各項目の差込位置をセル番地で指定することができる
- ひな形を自由に変更することができる
- 差込位置はVBAプログラム変更なしで対応可能となる
紹介した機能を拡張することにより、必要なレイアウトに必要なデータを流し込みすることができるようになります。
ぜひ、改造して便利にご利用ください。
【EXCEL:VBA】差込印刷したい(VBAを変更せずに差込位置を変えたい)
3.差込PDFを作成する
EXCELシートに入力されているデータと雛形シートを利用して、差込PDFを作成する便利なワザを紹介します。
以下の図のようなイメージになります。
先程の差込印刷では、印刷物を作成していました。
この機能では、PDFファイルを作成します。
PDFファイルを作成する理由には、以下があります。
- メールやWEBサイトで相手に提供することができる
- EXCELファイルやWORDファイルと違い、中身の書き換えができない
作成するレイアウトは同じで、そこに表示する値を変えて、PDFファイルを作成したい場合に、今回の機能を使うことができます。
3-1.差込PDFを作成する
こちらの機能を使うと、EXCELシートに入力されているデータを1行ごとに差込PDFを作成できます。
つまり、ひな形の各項目の印字位置に、入力データの各項目を表示し、PDFファイルを作成します。
決まったフォーマットで個人ごとに違う情報を印字するPDFを作りたいときに役に立ちます。
例えば、従業員に配る給与明細やお客様に送付する請求書などをさらっとPDFファイルで作成できるようになります。
- EXCELシートに印字したいデータを行ごとに入力する
- 入力したデータの各項目をひな形シートの印字したい位置に各項目を表示する
- 1行分のデータをひな形に表示させ、PDFファイルが作成される
- 入力したデータ全行分を対象に、PDFファイルが作成される
3-2.対象を自在に変更可能な差込PDFを作成する
こちらの機能を使うと、「3-1.差込PDFを作成する」と同様に差込PDFを作成することができます。
さらにこちらの機能はパワーアップしており、入力したデータを行ごとにPDF作成対象とするか選択することが可能です。
つまり、10行分のデータを貼り付けておき、4行分のデータのみ差込PDFを作成することができます。
他のEXCELデータに入力されているデータをとりあえず全て貼り付けておき、差込PDF作成したいデータを選択することができます。
- EXCELシートに印字したいデータを行ごとに入力する
- 入力したデータの各項目をひな形シートの印字したい位置に各項目を表示する
- 1行分のデータをひな形に表示させると、PDFファイルを作成する
- 入力したデータから選択した行のみPDFファイルが作成される
【EXCEL:VBA】EXCELの差し込み印刷でPDFファイルを出力する方法(対象を自在に変更可能)
3-3.差込位置を自在に変更可能な差込PDFを作成する
こちらの機能を使うと、「3-2.対象を自在に変更可能な差込PDFを作成する」と同様に差込PDFを作成することができます。
さらに、その機能をパワーアップさせ、ひな形の差込位置を自由に変更することができるようになっています。
しかも、VBAプログラムを一切変更せずに、差込したい位置のセル番地の指定を変更するだけです。
- EXCELシートに印字したいデータを行ごとに入力する
- 入力したデータの各項目をひな形シートの印字したい位置に各項目を表示する
- 1行分のデータをひな形に表示させると、PDFファイル作成が実行される
- 入力したデータから選択した行のみPDFファイルが作成される
- 各項目の差込位置をセル番地で指定することができる
- ひな形を自由に変更することができる
- 差込位置はVBAプログラム変更なしで対応可能となる
紹介した機能を拡張することにより、必要なレイアウトに必要なデータを流し込みすることができるようになります。
ぜひ、改造していろいろなPDFファイル作成にご利用ください。
【EXCEL:VBA】EXCELの差し込み印刷でPDFファイルを出力する方法(差込位置を自在に変更可能)
3-4.差込レイアウトを自在に変更可能な差込PDFを作成する
こちらの機能を使うと、「3-3.差込位置を自在に変更可能な差込PDFを作成する」と同様に差込PDFを作成することができます。
さらに、その機能をパワーアップさせ、2種類のひな形から差込させたいレイアウトを選択することができるようになります。
しかも、VBAプログラムを一切変更せずに、「ひな形の選択・差込したい位置・対象データ選択」を自由に変更することができます。
- EXCELシートに印字したいデータを行ごとに入力する
- 入力したデータの各項目をひな形シートの印字したい位置に各項目を表示する
- 1行分のデータをひな形に表示させると、PDFファイル作成が実行される
- 入力したデータから選択した行のみPDFファイルが作成される
- 各項目の差込位置をセル番地で指定することができる
- ひな形を自由に変更することができる
- ひな形を2種類準備し、どちらのレイアウトでPDFファイルを作成するか選択できる
- 差込位置はVBAプログラム変更なしで対応可能となる
【EXCEL:VBA】EXCELの差し込み印刷でPDFファイルを出力する方法(差込レイアウトを自在に変更可能)
4.メール下書きを作成する
こちらの機能は、先程まで紹介した「差込印刷」、「差込PDF」と同様に同じような物を大量に作成したい場合に利用できます。
具体的には、メール件名・メール本文は同じだけど、メールを送る相手が異なる場合に利用できます。
メールを送りたい相手を一覧で用意しておき、メール送信宛先を変更しながら同様のメール下書きを大量作成することができます。
以下の図のようなイメージになります。
社内外問わず、メールを送ることは、日常的にたくさんあります。
メール作成作業は、送り先間違いや内容間違いを起こしやすい作業となっています。
VBAを利用すると、機械的に作業をしてくれますので、ミスが起こりにくくなります。
そういった場合に、役立つ機能をExcelVBAを利用すると、ボタン1つ押すだけで作業を完了させることができます。
4-1.宛先を変えながら同じ本文のメール下書きを作成する
こちらの機能を使うと、相手先の会社名、相手のお名前、敬称(様、部長、課長など)を切り替えながらメール本文を作成してくれます。
準備に必要なことは、メール件名の入力、メール本文の入力、宛先一覧の入力となります。
宛先一覧は、今後メールを送りそうな相手すべてを登録しておくことをオススメします。
なぜなら、実際にメールを作成する相手は、その都度宛先一覧で選択できるようになっているからです。
今回作成するメールに必要ない方は、宛先一覧で対象からはずしておけば、メールは作成されません。
また、こちらの機能では、添付ファイルもつけることができるようになっています。
その他、CCアドレスやBCCアドレスも指定することができます。
BCCアドレスには、社内の上司を指定しておけば、メール送信したことを上司に知らせることができます。
いちいち上司に口頭で報告しなくても、情報共有できるようになっています。
- 固定のメール件名を指定できる
- 固定のメール本文を指定できる
- 送り先の会社名、氏名、敬称を自動的にメール本文の先頭に付加してくれる
- メールのCCアドレス、BCCアドレスを送り先毎に指定できる
- 添付ファイルを送り先毎に指定できる
- 宛先一覧からメール作成したい相手を都度選択できる
- 対象の宛先分のメール下書きを作成する
【EXCEL:VBA】宛先を変えながら同じ本文のメール下書きを作成したい
以上です。
最後まで読んでいただきありがとうございました。
この記事をシェアしていただけると喜びます。
使えそうなものがありましたら、ぜひ試してみてください。
これからも随時、便利なワザを追加していきます。