社内SEが実際にVBAで自動化した業務3選|まずは作業の洗い出しから

IT効率化

VBAというと、

「Excelの作業を自動化できるもの」

というイメージはあっても、実際の仕事で何に使えばいいのか分からない方も多いと思います。

私自身、社内SEとして業務をしている中で、VBAを使っていくつかの定型作業を自動化してきました。

実際に使ってみて感じるのは、VBAのコードを覚えること以上に、

「普段やっている作業の中から、自動化できそうな部分を見つけること」

が重要だということです。

今回は、私が実際にVBAを使って自動化してきた業務を例に、どんな作業がVBAに向いているのか、逆にどんな作業は向いていないのかを紹介します。

実際にVBAで自動化した業務

私が実際にVBAを使った業務では、大きく分けると次のような作業がありました。

  • CSVファイルを読み込んで加工する
  • 決められたExcelフォーマットへデータを反映する
  • Excelデータを決められたCSV形式へ変換する

どれも共通しているのは、毎回ほぼ同じ手順で処理していた作業です。

1.CSVファイルを読み込んで加工する

仕事では、Webサイトや各種システムからCSVデータをダウンロードし、その後Excelで加工するケースがあります。

例えば、

  • Web注文データ
  • サイトから出力した連携データ
  • 業務システムから取得したCSV

などです。

CSVをダウンロードしたあとに、

  • 必要な列をコピーする
  • 対象列の重複をチェックする
  • 指定した文字数で文字列を切り出す
  • 特定の文字を検索する
  • 不要な列を削除する
  • 列を決められた順番へ並べ替える

といった作業を毎回行っている場合、VBAとの相性はかなり良いです。

私が実際に対応したものでも、もともと7工程ほどあった作業を、VBAを使って3ステップ程度まで減らせたケースがありました。

例えば、以前は、

CSVをダウンロード
→ Excelで開く
→ 必要な列をコピー
→ 重複を確認
→ 文字列を加工
→ 列を並べ替える
→ CSVとして保存

というような作業を行っていました。

これをVBAで処理することで、

CSVをダウンロード
→ VBAを実行
→ 加工済みファイルを確認・出力

くらいまで作業を減らすことができます。

1回だけなら数分の作業でも、毎日・毎週繰り返すとなると大きな差になります。

また、時間短縮だけでなく、

「重複チェックを忘れた」

「違う列をコピーした」

「切り出す文字数を間違えた」

といった手作業によるミスを減らせるのもメリットです。

2.決められたExcelフォーマットへデータを埋め込む

取得したデータを、決められたExcelの書式へ転記する作業にもVBAを使えます。

例えば、

在庫報告など、報告様式があらかじめ決まっている帳票

です。

元データから必要な情報を取得し、

  • 商品コード
  • 商品名
  • 在庫数
  • 日付
  • 拠点情報

などを、決められた場所へ反映します。

報告書の書式が毎回同じであれば、

「このデータを、このセルへ入れる」

というルールを作りやすいため、VBAで自動化しやすいです。

手作業の場合、

元データを確認
→ 必要な値を探す
→ 報告書へコピー
→ 次の項目を探す
→ 再びコピー

といった作業になります。

これをVBAで処理できれば、

元データを読み込む
→ 必要な情報を取得
→ 決められた帳票へ自動反映

という流れにできます。

kintoneなどで収集したデータを、決められたExcelフォーマットへ反映するような使い方もできます。

ただし、kintoneなどのサービスでは、標準機能やプラグイン、外部連携サービスを使った方が便利な場合もあります。

費用をかけられるのであれば、

「VBAで作る」以外の方法も一度調べてみる

のがおすすめです。

VBAでできるからといって、必ずVBAを使う必要はありません。

3.Excelのデータを決められたCSV形式へ変換する

逆に、Excelで管理しているデータを、別のシステムへ取り込むためのCSVへ変換することもあります。

システム側で、

「1列目にはこの値」

「2列目にはこの情報」

「この順番でCSVを作る」

など、取込形式が決められているケースです。

毎回、

Excelから必要な列をコピー
→ 順番を変更
→ 不要な情報を削除
→ CSVとして保存

という作業をしているのであれば、これもVBAで自動化できます。

例えば、

Excelで元データを管理

VBAを実行

必要な列を取得

取込形式に合わせて並び替え

CSVを出力

という形です。

毎回同じ形式に整える作業であれば、人が一つずつコピー&ペーストする必要はありません。

こういった、

「元データの形式がある程度決まっている」

「完成形も決まっている」

という作業は、自動化しやすいと感じています。

VBAで重要なのは「業務の洗い出し」

VBAで業務を自動化するとき、個人的に一番重要だと思うのが、

自分が普段やっている作業を一度洗い出してみること

です。

例えば、

「CSVを加工する」

という一つの作業に見えても、実際には、

  1. サイトからCSVをダウンロードする
  2. CSVをExcelで開く
  3. 必要な列をコピーする
  4. 重複をチェックする
  5. 文字列を加工する
  6. 決められた順番へ並べ替える
  7. CSVとして保存する

というように、複数の工程に分けることができます。

ここで大事なのは、

全部を自動化しようとしなくてもいい

ということです。

例えば、

CSVをダウンロードするところまでは人が行う

けれど、

そこから先の加工だけをVBAに任せる

という形でも十分です。

実際に私が対応した作業でも、7工程ほどあったものを3ステップ程度まで減らせたケースがあります。

一部分だけでも自動化できれば、それだけで業務改善になります。

VBAに向いている作業

私が実際に使ってきた中では、VBAに向いているのは、

ある程度パターン化できる作業

だと思っています。

例えば、

  • 決まった列をコピーする
  • 同じ条件で重複を確認する
  • 文字列を一定の文字数で切り出す
  • 特定の文字を検索する
  • 毎回同じ列を削除する
  • 決められた順番へ並べ替える
  • 固定された帳票へ転記する
  • 決められた形式のCSVを作る

といった作業です。

もっと簡単に言うと、

「自分がやっている作業を順番に説明できるか」

が一つの判断基準だと思います。

例えば、

「まずA列をコピーする」

「次に重複を確認する」

「その後、C列の先頭4文字をD列へ入れる」

というように、手順を順番に説明できるのであれば、VBAで処理できる可能性があります。

VBAに向いていない作業

逆に、VBAだけで完全に自動化するのが難しい作業もあります。

例えば、

  • 毎回人の判断が必要
  • ケースごとに対応方法が大きく変わる
  • 数値を変更する基準が決まっていない
  • 例外が非常に多い
  • 元データの形式が毎回違う

といった作業です。

特に、

「そのときの状況を見て判断する」

という工程が多い場合は、単純にVBAだけで全部を処理するのは難しくなります。

ただし、こうした業務でも、

人が判断する直前までのデータ整理だけ自動化する

ことはできます。

全部できるか、全部できないかではなく、

どこまでなら決まったルールで処理できるのか

を考える方が現実的です。

1日10分の作業でも年間では大きい

毎日の作業を見ていると、

「10分くらいなら手作業でもいいか」

と思うことがあります。

ですが、月20日作業すると仮定すると、

10分 × 20日 = 200分

です。

さらに1年間続けると、

200分 × 12か月 = 2,400分

になります。

時間にすると、

年間40時間

です。

1日だけを見ると小さな改善でも、年間で見るとかなり大きくなります。

さらに自動化には、時間短縮以外にも、

  • コピー&ペーストのミスを減らせる
  • 加工する列の間違いを減らせる
  • 重複チェックなどの確認漏れを減らせる
  • 人によって作業手順が変わるのを防ぎやすい
  • 毎回作業手順を思い出す必要がなくなる

といったメリットがあります。

場合によっては、時間短縮よりも、

ミスを減らせることの方が大きな効果

になることもあります。

自動化はVBAだけではない

今回紹介しているのはVBAですが、業務を自動化する方法はVBAだけではありません。

例えば、

  • Excel内の定型作業 → VBA
  • データ加工 → Power Queryが向く場合もある
  • Microsoft 365サービス間の連携 → Power Automate
  • kintoneなど → 標準機能やプラグイン

といったように、業務によって向いている方法は変わります。

大切なのは、

「VBAを使うこと」ではなく「面倒な業務をどう減らすか」

だと思います。

VBAはあくまで、そのための選択肢の一つです。

今はAIを使ってVBAを作ることもできる

以前に比べると、VBAを使うハードルもかなり下がったと思います。

今はAIに、

「A列をコピーしてB列へ入れたい」

「対象列の重複をチェックしたい」

「C列の先頭4文字だけD列へ入れたい」

「このExcelから決められた形式のCSVを作りたい」

といった内容を相談すると、VBAコードのたたき台を作ってもらうこともできます。

そのため、

VBAのコードをすべて暗記してから始める

必要は以前より少なくなっています。

ただし、AIが作ったコードが必ず正しく動くとは限りません。

実際の業務ファイルへ適用する前に、

  • コピーしたファイルで試す
  • バックアップを取る
  • 出力結果を確認する
  • 想定外のデータでも問題ないか試す

といった確認は必要です。

また、会社の業務でAIを利用する場合は、個人情報や機密情報をそのまま外部AIへ入力しないなど、会社の利用ルールにも注意してください。

まとめ|まずは自分の作業を書き出してみる

VBAで業務を自動化しようと思ったとき、

最初に考えるべきなのは、

「どんなコードを書けばいいのか」

ではないと思っています。

まずは、

普段自分がどんな作業を繰り返しているのか

を書き出してみることです。

そのうえで、

  • 毎回同じことをしている
  • 手順を順番に説明できる
  • コピー&ペーストを繰り返している
  • 決まった形式へ加工している
  • 毎回同じ確認作業をしている
  • 固定フォーマットへ転記している

といった部分がないか探してみます。

全部を自動化する必要はありません。

実際に私が対応した作業でも、7工程ほどあったものを3ステップ程度まで減らせました。

作業の一部分だけでも自動化できれば、それだけでも十分業務改善になります。

今はAIを使ってVBAコードの作成を手伝ってもらうこともできるので、以前より自動化そのもののハードルは下がっています。

まずはコードを書くことからではなく、

「自分は毎日何を繰り返しているのか」

を整理してみるところから始めてみるのがおすすめです。

コメント

タイトルとURLをコピーしました