Excel マクロ・VBA

【第1回】コードが全く書けなくても大丈夫!AIを使えば今日からあなたもマクロデビュー!

Excel マクロ・VBA

パソコンを使う職場で働いている人の中で、Excelを使ったことがないという人はおそらくいないでしょう。
しかしある程度仕事でExcelに触れていると関数機能だけでは限界を感じた瞬間があるのではないでしょうか?
データ量が膨大だったり、あらゆる条件に対応させようとして複雑すぎる関数になってしまう、もしくはそもそも関数では絶対にできないことなど。
そんなときに頭をよぎるのが「マクロ」という存在。
関数をネットで調べたら出てきたりと、名前こそ知っているけれど、実際に触れたことがある人は少ないのではないでしょうか。

  • 「マクロって便利って聞くけど、結局プログラミングなんでしょ?」
  • 「ちょっと調べたら大量のコードが出てきて諦めた。」
  • 「本当に簡単なのならギリできるかもだけど、結局実務レベルのコードなんて書けるわけない」

おそらく、こういった経験を持つ方はかなり多いはずです。

そんなあなたに朗報です!
AIを活用すれば、あなたも今日からマクロデビューできるのです。
プログラミングの知識がゼロでも、やりたいことをそのまま質問すれば、AIがコードを生成し、すぐに試すことができます。

今回から始まるこの「マクロ編」シリーズでは、そんな「マクロを触ったことがない人」に向けて、実務でよくある作業を題材にしながら、AIを活用して“最短距離でマクロを使いこなす”方法を紹介していきます。

✅この記事を読む前に

マクロを初めて使うという方は先にこちらのマクロの有効化やファイル保存について解説したこちらの記事をご覧ください

✅この記事を読む前に

以下の記事では、AIを使った調べ方と従来の検索方法のメリットデメリットを検証しています。お時間がございましたらこちらの記事も是非読んでみてください。

今回の目標

今回のテーマは「CSVで吐き出された雑多な売上データを、必要な列だけ抽出して見やすく整形する」です。(ちなみにこのファイルは5000行程度あります)
具体的には、

  • 取引日 / 顧客名 / 商品名 / 数量 / 単価 のみ抽出
  • ヘッダーをグレー帯+太字
  • 列幅を自動調整
  • 数量と単価の隣に1列追加して、金額(数量×単価)を表示
  • 全体に罫線(格子)なお、一番外枠のみ太い外枠

実際にAIに聞いてみる

とにかくあまり難しいことを考えず、「やりたいこと」をそのままAI(Gemini)に聞いてみます。(今回、文字の指示だけでなく、実際のcsvファイルをアップロードしています)
(以下は実際のやり取りであり、内容をほぼそのままコピペしています)

かえる
かえる

CSVファイルには「受注ID / 取引日 / 顧客名 / 商品名 / カテゴリ / 数量 / 単価 / …」といった列が並んでいます。(添付ファイル参照)
この中から「取引日 / 顧客名 / 商品名 / 数量 / 単価 」だけを抽出して、
・ヘッダーをグレー帯+太字
・列幅を自動調整
・数量と単価の右隣に1列追加して、金額(数量×単価)を表示
・全体に罫線(格子)そして、一番外枠のみ太い外枠

という内容で自動で整形してくれるマクロを作ってください。
データは5,000行以上あります。

なお、元のデータは触らずに、別シートを新たに作成してください。

AI(Gemini)
AI(Gemini)

目標の**マクロ(VBAコード)**を作成して、お手伝いしますね!😊

元のデータ(売上データ.csvが読み込まれたシート)を保持したまま、新しいシートに必要な列を抽出し、ご要望の整形を自動で行うことができます。

解決策の概要

提供いただいたCSVファイルは、Excelで開くと複数の列を持つシートになります。マクロでは以下の手順で作業を行います。

  1. 新しいシートの作成: 元のシートに影響を与えないよう、作業用の新しいシートを作成します。
  2. 必要なデータの抽出と転記: 元のシートから「取引日」「顧客名」「商品名」「数量」「単価」の列を新しいシートの所定の位置にコピーします。
  3. 金額列の追加と計算: 「単価」の右隣に「金額」列を追加し、「数量 × 単価」の計算式を全データ行に入力します。
  4. 書式設定(体裁の調整):
    • 列幅の自動調整
    • ヘッダーの装飾: ヘッダー行(1行目)を太字にし、グレーの背景色を設定します。
    • 罫線設定: データ全体に格子の罫線を引き、一番外枠を太線にします。

前提条件

  • このマクロはExcelで使用します。
  • データが読み込まれているシート(おそらく売上データ.csvを開いたときのシート名)を**Sheet1**として進めます。もしシート名が異なる場合は、コード内で調整が必要です。

マクロ(VBAコード)

以下のVBAコードをExcelの標準モジュールにコピー&ペーストして実行してください。

💻 VBAコード

🚀 実装手順

  1. Excelを開く: 売上データ.csvファイルをExcelで開き、データが正しく表示されていることを確認します。
  2. VBAエディタを開く: Alt + F11キーを押してVBA(Visual Basic for Applications)エディタを起動します。
  3. 標準モジュールを挿入: VBAエディタのメニューで 挿入(I)標準モジュール(M) を選択します。
  4. コードの貼り付け: 新しく開いたモジュールの白いエディタ領域に、上記のVBAコードをすべてコピー&ペーストします。
  5. シート名の確認と修正(重要!):
    • コードの先頭付近にある以下の行を確認してください。VBAConst 元シート名 As String = "売上データ" ' もしSheet1なら "Sheet1" に変更
    • CSVを開いた元のシート名が**売上データではない場合(例: Sheet1など)、"売上データ"**の部分を実際のシート名に修正してください。
  6. マクロの実行:
    • Excelに戻ります。(Alt + F11で切り替え)
    • メニューの 開発 タブ(表示されていない場合は、設定で表示させてください) → マクロ をクリックするか、Alt + F8キーを押します。
    • マクロ名**データ抽出と整形マクロ**を選択し、実行ボタンをクリックします。

マクロが実行されると、自動的に新しいシートが作成され、データが抽出・計算・整形されます。これで、5,000行以上のデータでも一瞬で処理が完了します!👍

他にご不明な点や、追加したい機能があれば、いつでもお気軽にお声がけください。

結果の検証

実際にAIの回答をもとに、マクロ実行まで進めていきます。

1. Excelを開く

csvファイルをExcelで開き、データが正しく表示されていることを確認します。

2. VBAエディタを開く

Alt + F11キーを押してVBA(Visual Basic for Applications)エディタを起動します。

3. 標準モジュールを挿入

VBAエディタのメニューで 挿入(I)標準モジュール(M) を選択します。

4. コードの貼り付け

新しく開いたモジュールの白いエディタ領域に、AIが回答してくれたVBAコードすべてコピー&ペーストします。

5. シート名の確認と修正(重要!)

この処理対象のシート名がコードと一致しているか確認する。

6. マクロの実行

Excelに戻ります。(Alt + F11で切り替え)
メニューの 開発 タブ(表示されていない場合は、設定で表示させてください) → マクロ をクリックするか、Alt + F8キーを押します。

マクロ名**データ抽出と整形マクロ**を選択し、実行ボタンをクリックします。

7. マクロを実行した結果

ところどころ気になる点もまだありますが、概ね、求めていた結果を得られました。

まとめ

今回ご紹介したように、AIを使えば ほとんどコードを触らなくてもマクロを動かすことができます。実際にやったのは「やりたいことをAIに伝えて → 提案されたコードを貼り付けて → 実行した」だけ。たったこれだけで、5,000行以上のデータを一瞬で整形できてしまいました。

もちろん、最初から100点満点のコードが出てくるとは限りません。(今回の例でもまだ直せる部分はある)
特に実務になると、クセのあるデータも多く、なかなか一発で完成とはいかないことの方が多いかもしれません。
そんなときでも、AIは大いに役立ちます。
「エラーが出た」「この部分だけ修正して」と相談すれば、会話を重ねながらコードをブラッシュアップできます。
これが、従来の「自力で検索してエラーと格闘する」のとはまったく違う、新しいマクロの学び方にもなります。

ただし注意点もあります。(これはAI活用というよりもマクロを実行するうえでの注意点)
マクロを実行すると元のデータが書き換わってしまう可能性があるため、必ずバックアップを取ってから試すこと。
これは最初に覚えておくべき大事な習慣です。

今回の第1回では「マクロってこういうものなんだ」「AIを使えば自分でも使える」という感覚をつかむのが目標でした。
次回以降の記事では、題材を変えて、AI活用の実用例を紹介していきますので、よければそちらも見ていただければと思います。

コメント