【仕事術】VBAって簡単に組める?
昨日に引き続き、今回もAIを使った仕事術、Excel編です。
VBAって皆さんわかりますか?使いこなせますか?
私は勉強をしようと図書館で本を借りて、仕組みの理解までで断念した人です(^O^)/
ですが、今ではVBAを簡単に使っています。
そもそもVBAとは何なのか、どうやって使うものなのか、基礎的なところから応用編までしっかりとまとめていきます。
仕事でExcelを使うなら是非、最後まで読んでいってください!
VBAとは?
VBA(Visual Basic for Applications)は、Microsoft Office製品(Excel、Word、Accessなど)を自動化するためのプログラミング言語です。
簡単に言うと、「手作業で行っている作業をプログラムに任せて効率化するツール」です。
例えば:
Excelで毎月行うデータ集計をボタン1つで自動化する。
Wordで大量の文書をテンプレートから生成する。
Accessでデータベース操作を簡略化する。
など、特に、業務効率化や定型作業の自動化に使われることが多いです。
VBAを学ぶのはどんな学部の学生?
大学でVBAを学んだから使えるという友人がいました。私は全く学んだこともなければ、大学で学ぶもんなんだ…とそこで初めて知りました(笑)
VBAは専門分野に特化していませんが、以下のような学部で学ばれることがあります。
経営学部や商学部
経営データや財務データの分析を効率化するため。情報学部
プログラミングの基礎や業務システムの実用的な部分を学ぶ過程で。工学部や理学部
実験データや解析結果の処理をExcelで行う際に活用。
授業で直接教えられることは少ないかもしれませんが、卒業研究やインターンシップで役立つため、独学で学ぶ学生も多いです。
私は国際学部でしたので、論文も基本的には文章で、グラフや統計を取るというより文献を漁るという方法でした…
どんな仕事をする人が使うの?
VBAは幅広い職種で活用されています。
主に以下のような職種でよく使われます:
事務職
経費精算や売上集計を効率化する。
定期的なレポート作成を自動化する。
経理・財務
決算書や試算表の自動作成。
データの整理や分析。
営業職
顧客データや売上データの管理。
提案資料や見積書の自動生成。
エンジニア・データアナリスト
プログラミングの一環としてExcelやAccessのデータを操作。
他のシステムとのデータ連携や処理。
研究者・技術者
実験データや測定結果の集計・グラフ化。
皆さんの中にも上記の職業の方、たくさんいらっしゃるんじゃないでしょうか?
私は、1と2に該当する職業をしています。
まぁ、VBAを使わなくとも会計システムを使っているのでVBAを使うことは少なかったというのが実際のところですが…
実生活での活用例
たとえば、以下のような状況でVBAは役立ちます:
家庭の家計管理
毎月の支出データをExcelにまとめて分析する際、VBAで自動化。趣味や副業
ネットショップ運営で商品在庫のデータを簡単に更新。クラウドソーシング
自動化スクリプトを作成する依頼を受ける。
VBAは、Microsoft Officeを使う人にとって非常に実用的なスキルです。
特にデータを多く扱う人や定型業務を効率化したい人には大きな助けとなります。
ChatGPTと組み合わせることでさらに便利に!
“プログラミング”というと難しそうに聞こえるかもしれません。
しかし、今ではChatGPTのようなAIを活用することで、プログラミングの知識がほとんどなくてもVBAを使いこなせるようになります。
作業内容と課題
Excelで数百行にわたるデータを扱っていた際、“2行おきに削除する”という作業を手動で行う必要がありました。
この作業を手作業で行うと、以下のような問題が発生します:
時間がかかる… 数百行のデータを手動で編集するのは非常に非効率。
ミスが起きやすい… 選択ミスや削除漏れの可能性がある。
これらを解決するためにVBAを活用することにしました。
ChatGPTでVBAコードを作成
ChatGPTに以下のように要件を伝えました:
すると、ChatGPTが以下のVBAコードを生成してくれました:
Sub DeleteEverySecondRow()
Dim i As Long
Dim lastRow As Long
' 最終行を取得
lastRow = Cells(Rows.Count, 1).End(xlUp).Row
' 2行おきに削除(下から上に処理)
For i = lastRow To 1 Step -2
Rows(i).Delete
Next i
End Sub
このコードでは、最後の行から1行おきに行を削除していくことで、効率的に目的を達成できます。
コードの実行方法
VBAエディタを開く
Excelを開き、Alt + F11を押してVBAエディタを起動します。
新しいモジュールを挿入
上部メニューの「挿入」から「標準モジュール」を選択。
コードを貼り付ける
ChatGPTが生成したコードをコピーし、モジュール内に貼り付けます。
コードを実行
Excelに戻り、Alt + F8を押してマクロ一覧を表示。「DeleteEverySecondRow」を選択して「実行」をクリックします。
ちなみに私は、2行おきに削除をするという作業がVBAでできるということは知りませんでした。
ChatGPTに何か方法ありますか?と聞いただけです。
関数ではできないようなので、VBAでしましょうという提案をくれたのがきっかけです。
VBAを使ったことがない私は、どうやってVBAを使うのかすらわからず、上記の実行方法もChatGPTに教わりました。
結果と効果
実行後、数百行あったデータの2行おきの行が一瞬で削除されました。
この自動化により、以下のメリットが得られました:
作業時間の大幅短縮… 数分かかる作業が1秒で完了。
ミスの防止… 手作業で発生しがちな選択ミスがゼロ。
ストレスの軽減… 繰り返し作業から解放され、他の重要なタスクに集中できる。
ChatGPTを使うメリット
迅速な問題解決… 自分でコードを書く手間を省ける。
初心者でも使える… プログラミングの知識がなくても、要件を伝えるだけで必要なコードを得られる。
柔軟な対応… 少し異なる要件があれば再度質問して調整可能。
今回の経験を通じて、VBAとChatGPTの組み合わせは非常に強力だと感じました。
特に、普段からExcelを使って定型作業を行っている方にはおすすめです。
例えば、以下のような作業にも応用できます:
データの並び替えや重複の削除
定期レポートの自動作成
データベースとの連携
ChatGPTを活用すれば、VBAの学習コストを大幅に下げることができます。このようなツールを活用して、日々の作業を効率化してみませんか?
是非、皆さんもお仕事の中でChatGPTに質問をしてみるということを習慣化してみてください!