この記事では、面倒な作業をExcelVBAを利用して楽する便利なワザを紹介します。
定期的にやらないといけない作業のなかで、何かを加工する作業について効率化できるようになります。
決まった定型的な作業や煩雑で面倒な作業をボタン1つ押すだけで終わらせることができます。
それでは、1つ1つ順番に便利なワザを紹介していきます。
もくじ
1.複数EXCELを1つのEXCELに集約する
複数のEXCELファイルを1つのEXCELファイルに集約する便利なワザを紹介します。
以下の図のようなイメージになります。
バラバラに作成されているEXCELファイルを1つに集約する場合、以下のような手作業が発生します。
- 集約元のEXCELファイルを1つ1つ開く
- 必要なシート数分をコピーする
- 集約先のEXCELを開く
- 集約先のEXCELに貼り付ける
集約元のEXCELファイルが大量になると、かなりの時間集中して作業することになります。
その作業をExcelVBAを利用すると、ボタン1つ押すだけであとは自動的にやってくれます。
1-1.複数のEXCELデータを1つに集約する
こちらの機能を使うと、フォルダに存在する複数EXCELファイルの指定したシート名のデータを1シートに集約します。
決まった名前のシートにデータが存在しており、複数EXCELファイル存在する場合に使えます。
- フォルダパスを指定して、そのフォルダに存在するEXCELファイル全てを対象とする
- 集約するシート名を指定して集約する
- フォルダに存在する全てのEXCELファイルの指定されたシート名のデータを対象に集約する
- 集約前のシートのデータ開始行を指定できる
- 指定されたデータ開始行以降を対象にデータを集約する
【EXCEL:VBA】複数のEXCELデータを1つに集約したい
1-2.複数EXCELのシートを1つのEXCELファイルに集約する
こちらの機能を使うと、フォルダに存在する複数EXCELファイルの複数シートを1つのEXCELファイルに集約します。
先程の「1-1.複数のEXCELデータを1つに集約する」は1つのシートのみ指定して集約しましたが、
こちらの機能ではEXCELファイルに存在する全てのシートを集約することができます。
- フォルダパスを指定して、そのフォルダに存在するEXCELファイル全てを対象とする
- 複数EXCELファイルの複数シートを1つのEXCELファイルに集約する
- 集約したEXCELファイルのファイル名を指定することができる
- 集約したEXCELファイルは、集約前のEXCELと同じフォルダに作成する
- 集約前のEXCELファイルの同じシート名のデータは、集約後のEXCELファイルに同じシート名で集約する
- 集約前のEXCELファイルのそれぞれのシートの集約開始行を指定できる
【EXCEL:VBA】複数EXCELのシートを1つのEXCELファイルに集約したい(簡単2ステップ)
1-3.複数の単票データを1つのEXCELシートに集約する
こちらの機能を使うと、指定したフォルダに存在するEXCELファイル全てを対象にデータを集約します。
集約対象は1番左に存在するシートを対象に集約します。
先程の「1-1.複数のEXCELデータを1つに集約する」や「1-2.複数EXCELのシートを1つのEXCELファイルに集約する」とは違い、
セル(行番号、列番号)を指定してデータを集約します。
つまり、単票形式のデータを集約する場合に、利用できます。
- フォルダパスを指定して、そのフォルダに存在するEXCELファイル全てを対象とする
- 複数EXCELファイルの1番左のシートを対象に集約する
- 集約したセル位置を指定することができる
- セル位置は、行番号および列番号を指定する
- 一覧形式のデータではなく、単票形式のデータを集約する場合に利用できる
【EXCEL:VBA】複数の単票データを1つのEXCELシートに集約したい
2.CSVファイルをEXCELに取り込む
CSVファイルをEXCELファイルに取り込む便利なワザを紹介します。
以下の図のようなイメージになります。
CSVファイルをEXCELファイルに取り込む時に、以下のようなことに注意が必要となります。
- 頭が0から始まる値は勝手に0がとれる
- 月や日の数字の先頭に0がついていると、勝手に0がとれる
また、大量にCSVファイルを取り込む場合、上記のことを注意しながら1つ1つCSVファイルを開いて、取込する必要があります。
ファイルが1つや2つならまだなんとか取込できますが、大量になると時間も注意力もたくさん必要となります。
2-1.CSVファイルを取り込む
こちらの機能を使うと、カンマ区切りのCSVファイルをEXCELシートに取込できます。
しかも、各項目のデータ形式(日付、文字、整数、小数)を指定できるため、正しくデータを取込可能となっています。
例えば、01という値をEXCELに取り込むと、自動的に頭の0が取られて1という値で取り込まれます。
そうならなくするために、データ形式で「文字」を指定すれば、01のまま取込することができます。
- CSVファイルパスを指定してEXCELシートに取込する
- 各データの形式(日付、文字、整数、小数)を指定して取込できる
- 取込時に指定されたデータ形式で、取込先シートに各データを取込する
2-2.フォルダに存在するCSVファイルを全て取り込む
こちらの機能を使うと、指定したフォルダに存在するカンマ区切りのCSVファイル全てをEXCELシートに取込できます。
また、ヘッダー行の有無、文字のくくりを指定することができます。
- フォルダパスを指定してCSVファイルをEXCELシートに取込する
- フォルダに存在するCSVファイル全てを対象とする
- ヘッダー行の有無、文字のくくりを指定することができる
- ヘッダー行を「あり」にした場合、CSVファイルの2行目から取込する
- ヘッダー行を「なし」にした場合、CSVファイルの1行目から取込する
- 文字くくりを「なし」にした場合、各項目をそのまま取込する
- 文字くくりを「”」にした場合、各項目の”を除去して取込する
【EXCEL:VBA】フォルダに存在するCSVファイルを全て取り込みたい
3.フォルダやファイルを加工する
指定したフォルダやファイルを加工する便利なワザを紹介します。
以下の図のようなイメージになります。
大量にフォルダを作成する場合、「新しいフォルダー」をまず作成し、名前を変更する作業を何度もくり返す必要があります。
また、ファイルの名前を大量に変更する場合、1つ1つファイルを探し、名前の変更を何度もくり返す必要があります。
そういったフォルダやファイルを大量に加工する場合に、間違わずに素早く行うためにExcelVBAを利用することをオススメします。
3-1.一括で大量にフォルダを作成する
こちらの機能を使うと、指定したフォルダに複数のフォルダを一気に作成することができます。
また、作成したいフォルダ名を事前に登録しておくことができます。
作成したいフォルダを階層化して指定することもできます。
階層化とは、以下のようなことです。
AAA\BBB\CCC
AAA\BBB\DDD
毎月決まったフォルダを年月毎に準備することがあると思われます。
そういったときに、とても役立つ機能となっています。
- フォルダパスを指定して複数のフォルダを作成できる
- 作成したいフォルダを複数指定できる
- 作成したいフォルダは階層化できる
- 指定されたフォルダパスに、作成したいフォルダを作成できる
3-2.指定フォルダのファイルの名前を一気に変更する
こちらの機能を使うと、指定したフォルダに存在するファイル名を取得します。
そして、各ファイルを変更したいファイル名の指定が可能です。
結果として、指定した変更後のファイル名に一気に変更することができます。
システムやツールに取込させる場合、決まったファイル名に変更する場面があります。
また、変更や加工作業を完了したことをわかりやすくするために、元のファイル名の先頭に【変更済】などとつけたりすることができます。
便利に使うことができる機能となっています。
- フォルダパスを指定して、そのフォルダに存在するファイル名を取得することができる
- フォルダに存在するファイル全てを対象とする
- 取得したファイル名に対して、変更後のファイル名を指定できる
- 実行すると変更後のファイル名に一気に変更できる
【EXCEL:VBA】指定フォルダのファイルの名前を一気に変更したい(簡単3ステップ)
4.セルの値を加工する
指定したセルの値を加工する便利なワザを紹介します。
以下の図のようなイメージになります。
セルに入力されている値によって、別のセルに表示させる値を変更したい場合は多く存在します。
また、シートに入力されている大量のデータに対して、書式設定する作業はかなり煩雑で面倒です。
そういった場合に、役立つ機能をExcelVBAを利用すると、ボタン1つ押すだけで作業を完了させることができます。
4-1.セルの値で表示させる文字を変える
こちらの機能を使うと、セルに入力されている値によって、別のセルに表示させる値を自動で変更させることができます。
IF関数を利用すれば同様なことを実現できますが、分岐させる項目が増えるとIF関数をたくさん入れ子にする必要があります。
そういうIF関数を作ることも大変ですが、修正するときもとても大変となります。
よってこの機能を利用すると、ExcelVBAを利用してたくさんの分岐や複雑な分岐を簡単に実現することができます。
こちらの機能は、セルから直接呼び出すことができます。
自分で作る関数となります。
つまり、自作関数です。
自作関数を作っておけば、複雑なIF分を駆使せずとも、値によって表示させたい値が簡単に切替可能となります。
- 入力されている別セルの値によって、自セルに表示させる値を変更できる
- 自作関数となり、セルから直接利用することができる
- 自作関数のため、自分の好きな条件を指定することができる
- 自作関数を複数のセルから同時に利用することができる
- 自作関数の条件を変えるだけで、利用しているセルの設定は変更する必要がない
【EXCEL:VBA】「セルの値で表示させる文字を変えたい」を解決する
4-2.一括でセルの書式設定する
こちらの機能を使うと、指定したフォルダに存在するEXCELファイルに対して一括で書式設定が可能となります。
EXCELファイルに入力されている各列の先頭1行目の項目名毎に、自由に書式設定を選択することができます。
項目名毎に書式設定を事前に設定しておけるます。
一度項目名と書式設定を設定しておけば、何度でも書式設定されているEXCELファイルに対して、ボタン1つ押すだけで書式設定可能となります。
たくさんのデータに対して同じような書式設定を毎回設定することは、かなり時間をとられますし、煩雑な作業となります。
上司に提出するデータやお客様に納品するデータをキレイに書式設定することはたくさんあると思います。
そういったときに、何度でも簡単に利用することができるようになります。
- フォルダを指定することができる
- 指定したフォルダに存在するEXCELファイル全てに対して、書式設定することができる
- EXCELファイルの一番左に存在するシートを対象として、書式設定できる
- 各項目毎に書式設定したい内容を設定しておくことができる
- 設定されている項目名が、存在するEXCELシートの先頭の項目と同じ場合、その書式設定が適用される
5.指定した年月の表を作成する
指定した年月の表を作成する便利なワザを紹介します。
以下の図のようなイメージになります。
年月毎に決まった表を作成する場面は、多くあります。
そういったときに、ボタン1つ押すだけで決めった表を作成することができるようになります。
決まった表といえば、月間の勤務表や予定表があります。
5-1.指定した年月の月間勤務表を作成する
こちらの機能を使うと、指定した年月の月間勤務表を作成可能となります。
指定した年月の1日から月末日までの勤務表を作成します。
勤務表としては、開始時刻、終了時刻、休憩時間、勤務時間を入力する欄が作成されます。
毎月、利用する勤務表となりますので、ぜひご利用してみてください。
- 年月を指定することができる
- 指定された年月に応じた月間勤務表が作成される
- 開始時刻、終了時刻、休憩時間、備考を入力する欄が用意される
- 入力した時刻によって、その日の勤務時間を自動的に計算される
- 入力したい日数により、月間の勤務日数や勤務時間合計が自動計算される
5-2.指定した年月の予定表を作成する
こちらの機能を使うと、指定した年月の予定表を作成することができます。
また、予定を入力する行数を指定できます。
土曜日、日曜日、祝日は背景色を平日と変え、わかりやすくします。
祝日一覧を登録できるため、祝日が変更となったり、独自の祝日も管理可能となります。
予定表としては、予定作業、開始日、終了日を指定できる欄が作成されます。
仕事をする上で予定表を作成することは、たくさんあります。
そういったときに、ボタン1つ押すだけで予定表を作成できるようになります。
- 年月を指定することができる
- 予定を入力できる行数を指定することができる
- 祝日一覧を設定できる
- 土曜日、日曜日、祝日を色分けできる
- 予定作業、開始日、終了日を入力する欄がある
以上です。
最後まで読んでいただきありがとうございました。
この記事をシェアしていただけると喜びます。
使えそうなものがありましたら、ぜひ試してみてください。
これからも随時、便利なワザを追加していきます。