Excel(エクセル)でプログラミング。学習分野と勉強方法。VBA・マクロ・Pythonの違いも解説
更新日:2024.08.13最近のDX化の影響でプログラミングに興味を持ち始めた50代会社員の方も多いのではないでしょうか。一方でこれまでパソコンといえばWord(ワード)やExcel(エクセル)くらいしか使ったことがなく、50代の自分にはプログラミングなんて夢のまた夢と諦めている方もいるかもしれません。
そんな方には、使い慣れたExcel(エクセル)の活用を入り口としてプログラミングを始めるのがおすすめです。
業務効率化スキルを身に着けたいと思っていますが、Excel(エクセル)に関連したプログラミングでどんな事ができるのか知りたいです。またどうやってそのスキルを身につければ良いですか?
Excel(エクセル)でプログラミングを使うと、経理データなどのデータ集計やグラフ作成、分析を自動で行ったり、見積書などのファイルを自動で作成するなどの業務効率化を行うことができます。 Excel(エクセル)に備わっている「関数」「IF文」を使うスキルやExcel(エクセル)VBAやPythonのプログラミングスキルを学ぶ必要があります。 書籍や動画などのサンプルプログラムを修正して動かしながら基礎を学び、業務に活かせるものを「作りたいものを作りながら学ぶ」のがおすすめです。
目次
結論:Excel(エクセル)で関数やVBAを学ぶことで、普段の業務から効率化を実現できます
通常の業務などで使用されることも多いExcel(エクセル)ですが、プログラミングを使うことで、使用の幅が広がります。データ集計やグラフ作成、分析、ファイル作成など、行なったことがあるかもしれません。そのような作業が毎月定期的なものであるなら、プログラムし、自動化してしまうことで、業務効率化が行えます。
最初は、書籍や動画で真似しながら学び、業務の小さな作業にも活かしていき、少しずつできることを増やしていく事から始めましょう。いきなり全部を改善する必要はないので、まずは小さな定型作業などから練習・実践していくとよいでしょう。少しでも業務効率化ができれば、自信アップや周囲からの評価アップにつながり、さらなるモチベーションアップの好循環が生まれていきます。
Excel(エクセル)とプログラミングでできること
まず、Excel(エクセル)とプログラミングができるとどのような業務で効率化ができるのかについてお話します。
データ集計
経理・人事・営業などのビジネスから発生するデータを集計する。
Excel(エクセル)の場合:Sum関数(合計)やAverage関数(平均)などの基本的な関数機能を使うことでデータの集計ができます。
VBAの場合:VBAを使って集計コードを記述しマクロを実行することで、Excel(エクセル)上でデータを自動で集計できます。Pythonの場合:PandasやNumPyなどのライブラリを使ってコードを記述することで、データの自動集計ができます。
グラフ作成などデータの可視化
データ集計の結果をグラフなどで可視化する。
Excel(エクセル)の場合:データ範囲を選択して 挿入 > グラフメニューから任意のグラフを選択することで、グラフ作成ができます。
VBAの場合:VBAを使ってグラフを作成するコードを記述しマクロを実行することで、Excel(エクセル)上でグラフの自動作成ができます。
Pythonの場合:MatplotlibとSeabornなどのライブラリを使ってコードを記述することで、自動でグラフ作成ができます。
データ分析
集計されたデータやグラフに対して統計処理を行い、予測や分類を行う。
Excel(エクセル)の場合:フィルター機能や散布図などの機能を使うことで、データの分類や傾向の予測などができます。
VBAの場合:VBAを使ってデータの計算やグループ化などを行うコードを記述しマクロを実行することで、Excel(エクセル)上でデータの分析ができます。
Pythonの場合:PandasやNumPy、Matplotlib、Seabornのライブラリを使ってデータを集計・可視化したうえで、Scipyなどのライブラリを使って統計分析を行うことでデータ分析ができます。
ファイル作成
請求書や見積書、勤怠管理表などのファイルを自動で作成する。
Excel(エクセル)の場合:シート上に日付や会社名・氏名、金額などの項目を作って情報を入力することで、請求書などのファイルを作成できます。
VBAの場合:VBAを使って日付や顧客名、金額、数量などのデータを定義するマクロを実行することで、Excel(エクセル)シート上で請求書ファイルを自動で作成できます。
Pythonの場合:Pandasなどのライブラリを使ってデータを整理し、openpyxlなどのライブラリを使って請求書ファイルを自動作成できます。
Webスクレイピング
ECサイトや株価のウェブページから、特定のデータを繰り返し自動で抽出する。
Excel(エクセル)の場合:WEBSERVICE関数やFILTERXML関数を使用することで、対象ページからのHTMLの取得やデータの抽出ができます。
VBAの場合:XMLHttpRequestオブジェクトを使用して対象ページのHTMLを取得し、内容を解析することでデータの自動抽出ができます。
Pythonの場合:RequestsやBeautifulSoupなどのライブラリを使って対象ページのURLを含んだコードを記述することで、自動で対象ページから情報を抽出できます。
業務での実装を考える
Excel(エクセル)やプログラミングを効果的に活用していくためには、業務でどのように実装していくのかを考えていくことも重要です。
実装のレベル
「関数」「IF文」などのExcel(エクセル)に元々備わっている機能とExcel(エクセル)VBAやPythonなどのプログラミング言語を使って以下のようなレベルで実装していきます。
● 単体のExcel(エクセル)シート内での効率化と自動化
● 単体のExcel(エクセル)シート間での連携と自動化
● 複数のExcel(エクセル)ファイル間での連携と自動化
● Excel(エクセル)以外のアプリケーションとの連携と自動化
定型で行っている業務から考える
Excel(エクセル)やプログラミングを業務で実装していくうえでは、定型で毎日・毎週・毎月のように行っている業務について考えていくことがポイントです。毎回行っている業務のなかには、多くの場合、見直しの余地が残っています。ちょっとでも効率化できれば、1回あたりの改善効果は少なかったとしても、毎日・毎週・毎月と積み重ねれば今後の効率化の幅が大きくなるでしょう。「これが楽になれば」というところに、改善の種があるはずです。
いきなり全部を改善する必要はない。小さくてもできるところから
最初からすべての業務を改善する必要はなく、小さくてもできるところから始めていくことが大切です。まずは業務でやっていることを一度書き出してみて、改善できそうなものにチェックをつけてみるとよいでしょう。今すぐに改善できないような事項でも、書き出して認識をしておくだけで業務改善のイメージを日頃から持てるようになります。
通常の業務効率化が練習と実践の場になる
Excel(エクセル)やプログラミングのスキルを高めるにあたっては、通常の業務効率化が練習と実践の良い機会になります。通常の業務効率化ができれば、練習・実践の経験だけでなく、自分の業務が楽になるメリットも生まれます。さらには会社や上司、クライアントからも評価されるようになるため、一石三鳥であるといえるでしょう。社内業務において、Excel(エクセル)やプログラミングを活用できるところ、役に立てるところがないか考える習慣をつけることが大切です。少しでも業務効率化の実践ができたら、同じ業界や業種、業務でも困っている人はいるはずなので、実践経験を横展開していくことができるでしょう。
Excel(エクセル)業務効率化におすすめの学習分野と勉強方法
次に、上述したようなExcel(エクセル)での業務効率化スキルを身につけるための、おすすめの学習分野と勉強法を解説します。
学習分野1:Excel(エクセル)の「関数」と「IF文」
本格的なプログラミング言語を使う前に、まずはExcel(エクセル)だけで使える「関数」と「IF文」を学ぶことがおすすめです。
関数とは、データの入力に対して処理をおこない、結果を返すもののことです。
Excel(エクセル)には合計、平均などの処理をおこなう約500種類の関数が備わっており、これらに慣れ親しんでおくとプログラミング学習の理解度が高まります。
また、条件分岐ができる「IF」関数を使えばプログラミング言語並の複雑な処理ができるようになります。
学習方法:
できるネット.”Excel関数 機能別一覧(全486関数)”.2021-04-27.
関数としてどんな種類があるのか、ざっと見てみる。全ての関数を確認することは大変なので、分類インデックスの簡単な説明を見てみるとイメージが掴みやすいと思います。全部を使えるようになるというのは無理なので、最初は知るということが目的となります。ざっと目を通して、自分の業務に関わりがありそうな分類や使えそうな分類を詳しく見てみるとよいです。
現在の会社の業務でも、「関数」や「IF文」を上手く活用できれば、業務効率化につながることは多いでしょう。少しでも業務効率化ができれば自分の自信につながりますし、周囲からも評価されるようになるため、さらに業務効率化のモチベーションが高まるはずです。
学習分野2:Excel(エクセル)VBAによるマクロ作成
Excel(エクセル)の「関数」と「IF文」に慣れたら、次に組み込まれたプログラミング言語である「VBA(Visual Basic for Application)」によるマクロ作成ができるようになると、Excel(エクセル)単体でかなりの自動化・業務効率化ができるようになります。
マクロとは複数の操作を自動的に実行できるプログラムのことで、人手でおこなうと時間がかかる処理を短時間で終えることができます。
このマクロを組むためのプログラミング言語がVBAなのですが、VBAはExcel(エクセル)に特化したプログラミング言語のため、学習範囲が一般的なプログラミング言語よりも少な目ですし、難易度としても易しいので最初に学習する言語に適しています。
また、勤務先で困っていることをマクロ化してすぐに成果として実感できるので、「短期間で実績を出しながら並行してスキルアップできる」のも魅力です。
学習方法:
発注ラウンジ.”VBAとは?Excelでマクロを作成するための基礎知識と便利な作業自動化”.2022-12-20.
マクロとはどういうものなのか、VBAをどうやって利用していくのかを見てみましょう。Excel(エクセル)が使えれば、利用ができます。YouTubeなどの動画で、どうやって始めるのか、概要を掴むのもよいでしょう。
最初のうちはマクロを作るのには時間がかかるかもしれませんが、1度作ってしまえば、たとえば1時間の仕事がボタン1つで終われるようになる可能性もあります。Excel(エクセル)の関数はわかってもVBAまではわからないという人も多いため、VBAを使えるようになると他よりも頭一つ抜き出た人材になれるでしょう。多くの会社で使用されているExcel(エクセル)に対してVBAができれば、有力な武器になるため、他の部署や社外、副業でも求められる即戦力の人材を目指せます。
学習分野3: PythonによるExcel(エクセル)操作
Excel VBAによるマクロ作成ができるようになったら、PythonによるExcel(エクセル)操作もできるようになると、より幅広い業務効率化に対応できるようになります。
例えば、大量のExcel(エクセル)ファイル間の処理やExcel(エクセル)以外とのアプリケーションと連携して処理や自動化を行うことができます。
Pythonも扱えるようになると、業務効率化の幅が広がり、Excel(エクセル)、VBAだけではできないことも出来るようになります。Excel(エクセル) VBAとPythonを使い分けたり、Excel (エクセル)× Pythonといった視野の広い考え方ができるようになるでしょう。
参照元:鎖プログラム.”【Python】Excelを操作方法をまとめました”.2022-02-07.
学習方法:
Pythonは、ファイルを作成し、実行するための開発環境が必要となります。開発環境があるツール(Google Collaboratory)や開発環境がセットになっている学習サイトで最初は触ってみるとよいです。自分が作りたいものや、業務で使えそうなところを意識して学習を進めていくと、学習効果が高まります。
以下の学習方法を記載した記事も参考にしてみてください。
50代でもProgateでPythonを学習できると聞き、利用を検討している方もいるでしょう。結論…
ExcelVBAとの比較:
よく「Excel(エクセル)VBAとPythonとどちらを勉強したら良いですか?」という質問を受けるので、ここでExcel(エクセル)VBAとPythonでできることとその違いについて以下にまとめておきます。
Excel VBA | Python | |
用途 | Excel(エクセル)でのデータ集計 Excel(エクセル)でのグラフ作成などの可視化 Excel(エクセル)でのデータ分析 Excel(エクセル)での自動化 Webスクレイピング | データ集計 グラフ作成などの可視化 データ分析 自動化 Webスクレイピング |
できること | 10万件未満のデータをExcel(エクセル)で扱うこと | 10万件以上のビッグデータの扱い 人工知能・機械学習の学習データの扱い Excel(エクセル)の複数ファイル間の処理 異なるアプリケーション間の処理・自動化・グラフなどの可視化 |
案件や転職時の求人ニーズ | 高い | 高い |
アマレベルでもできる業務があるか | ある | ある |
習得の難易度 | 中 | 中ー高 |
結論から言うと、
「Excel VBAでもPythonとほぼ同じことができる」
「Pythonを習得するとビッグデータの扱いや人工知能などより活用範囲を広げることができる」
と言えます。
副次的な効果としては、Pythonは注目度が高いAIやデータ分析の分野でよく使われるため、一般に認知度が高く、プログラミングをやったことがない部長レベルの管理職や人事部の人でも認知度が高い(名前だけは聞いたことがある)です。 そのため、履歴書・職務経歴書にPythonの学習経験や実績、資格などを載せておくと書類審査の段階で有利に働く可能性が高いです。
実際に、履歴書に当スクールでExcel(エクセル)VBAとPythonを勉強していることを記載し、面接の最後のほうでそれを話したところ、面接官の目の色が急に変わって「研修するので場合によってはSE採用でもいい」くらいに喰い付かれて転職に成功された方もいます。
詳しくは事例インタビュー 「【50代転職成功事例インタビュー】金融経験xIT で思わぬオファー。プログラミングをかじっているレベルで面接官が前のめりに!」をご参照ください。
次に読みたい
今回は「経験xIT」で見事に転職に成功された生徒様の事例を紹介いたします。 金融業界での現場経験が…
Excelプログラミングの勉強方法
まず、どのプログラミング言語でも共通の「プログラミング学習ロードマップ概要」を提示し、次に各学習分野に特有の学習方法をお伝えいたします。
プログラミング学習ロードマップ概要
以下、どのプログラミング言語でも共通の「プログラミング学習ロードマップ概要」となりますが、詳細はe-Book 「プログラミングの学び方セカンドキャリアでの稼ぎ方」をご参照ください。
書籍・動画(Udemy)・セミナー・スクール
2. 書籍などのサンプルプログラムをコピペ・写経して動かす
タイプミス・構文ミスを自分で発見して対処できる練習をする
3.2.で動かしたプログラムに自分なりの修正を加えてオリジナル化する
サポートには専門家が効果的
4.自分で「作りたいものを作りながら学ぶ」
設計がキモ サポートには専門家が必要
上述の「プログラミング学習ロードマップ」に則って学習した後は、実務に活用することを心がけてください。自信がついたら、応募しなくても良いのでクラウドワークスの案件に模擬的に挑戦してみてください。
● 勤務先や自分の活動でとにかく活用する(たとえ、手でやったほうが早くても練習だと思って無理やり使うようにしてください)。
● クラウドワークスのデータ入力や集計の案件を探してみてください。詳しく仕事内容が記載されている案件に応募しなくても良いので模擬的に挑戦してみてください。 案件に応募するには、そんなスキルがどの程度のレベルで必要なのかがわかるようになります。
● わかりやすい基準として資格に挑戦するのもおすすめです。
詳しくは、記事「【学習法/活用方法付】50代におすすめのExcel(エクセル)の資格3選 」・「【50代リスキリング】DX人材になるためにはIT+ビジネススキルが必要。Python分析資格とITコーディネーターがおすすめ」をご参照ください。
次に読みたい
オフィスアプリのなかでも、利用頻度が高いアプリの1つが表計算アプリのエクセルです。需要が高いだけに…
なぜプログラミング入門にExcel(エクセル)がおすすめなのか
そもそもなぜプログラミング入門にExcel(エクセル)がおすすめなのか、ここではその理由を解説します。
環境構築が不要
プログラミングをおこなうには準備が欠かせません。
たとえばコンパイラのインストール、ライブラリの追加、エディタの設定など意外とやることが多く、パソコンが得意でない方はここで挫折してしまうこともあるでしょう。
Excel(エクセル)の場合、最初からパソコンにインストールされていることが多いですし、新たにインストールするのも難しくありません。
導入でつまずくことなく学習に移行できます。
参照元:
@IT.”Excelでプログラム作成を始めるメリットとマクロの基本”.2016-06-27.
初心者でも使いやすいとっつきやすい慣れ親しんだインターフェース
プログラミングに使われるコンパイラは一般的に英語をベースに開発されており、必ずしも日本人にとってわかりやすいとはいえません。
また、プログラミングをおこなうエディタも英語だったり、使い慣れないユーザーインタフェースだったりして、プログラミングの勉強の前にこれらの使い方に慣れる必要があります。
Excel(エクセル)は日本で広く使われているソフトだけに日本語にしっかり対応済み。また、Excel(エクセル)のメニューに慣れ親しんだ方も多く、心理的な障壁が低いのではないでしょうか
情報が豊富で勉強しやすい
Excel(エクセル)は表計算ソフトのデファクトだけに、世の中に数多くの情報が出回っています。
書籍はもちろん無料で学べるWebサイトや動画もあり、自分にあったやり方で勉強を進められるでしょう。
何かわからないことがあっても、同じつまずきをした方がその解決策を提示していることが多く、スムーズに学習を進められます。
Excel医ブログ.”初心者におすすめのExcel(エクセル)勉強法まとめ”.2022-04-04.
勤務先や副業での効果が出やすい
アプリ開発やウェブサイト制作と異なり、Excel(エクセル)でのプログラミングは本業勤務先や副業に割と短期間で効果が生まれます。Excel(エクセル)でのプログラミングが実用的である理由を解説しましょう。
明日から勤務先での業務効率化につながる
特に、マクロを使わない「関数」と「IF文」を使った業務効率化であれば、明日からあなたの職場で効果を実感できます。 また、Excel(エクセル)VBAを使ったマクロ作成ができるようになると、請求書の作成などルーチンの作業を自動化し、業務効率改善につなげられます。ここまでくると、職場でも一目置かれる存在になれますし、更にPythonを使ったExcel(エクセル)ファイルの操作やデータ分析ができるようになると 職場だけでなく、転職も視野に入ってきます。
Excel(エクセル)のスキルだけでも副業を受注可能
プログラミング入門としてExcel(エクセル)をおすすめしていますが、実はExcel(エクセル)のスキルだけでも副業案件を受注可能です。
特にExcel(エクセル)のプログラミング言語であるVBAを身につければ、マクロ開発の案件を受注できるようになります。
マクロ開発案件は単価が高く、大きな収入源にできるでしょう。
参照元:クラウドワークス.”Excel VBA・マクロ開発 の仕事・求人を探す”.2023-03-07.
まとめ
Excel(エクセル)でプログラミングを使うと、経理データなどのデータ集計やグラフ作成、分析を自動で行ったり、見積書などのファイルを自動で作成するなどの業務効率化を行うことができます。 Excel(エクセル)に備わっている「関数」「IF文」を使うスキルに、Excel VBAやPythonのスキルを加えることでより幅広い自動化・効率化が可能になります。
勤務先などで実績を出しやすいExcel(エクセル)関連のプログラミングは、プログラミングの最初の入り口として最適で、DX化で人手不足になっているデータ分析の分野での転職や副業に活かせるので大変オススメです。
まずは今の業務を洗い出し、改善できそうなルーティン業務などを見つけて業務効率化の練習と実践をしてみましょう。少しでも業務効率化を実現できれば、自分自身の業務が楽になることはもちろん、自信アップや周囲からの評価アップにつながります。さらに、業務効率化の実践経験を他の部署や社外、副業にも応用できるようになるため、ますます人材価値が高まっていくことが期待できます。
TechGardenSchoolならExcel(エクセル)を使ったプログラミング指導が可能
勤務先で活用できるマクロ作成やコンテストへの参加などでの実績作りもサポートしています。もちろん、人工知能・機械学習もPythonと併せて学ぶことができます。
当スクールはクラウドワークスと提携しており、「初めてのクラウドソーシングクラス」でクラウドワークスでの実績の積み方・案件の見分け方を通して、月5万円を達成するための手法をお教えしています。並行して、アマチュアレベルでも挑戦しやすいITスキル(Webコーディング、Excel(エクセル)VBAのマクロ開発、Pythonによるデータの前処理(スクレイピング)など)を勉強することができます。さらにクラウドワークスでよく出ている案件に挑戦するための「模擬案件」というものを通して学習し、案件に応募する自信をつけることも可能です。
また、2023年よりExcel(エクセル)VBAエキスパート、Python3 エンジニア認定基礎試験/エンジニア認定データ分析試験の資格取得のサポートを行うコースを開講しており、既に多数の合格者を輩出しております。詳細をお知りになりたい方は、お問い合わせいただくか無料カウンセリングに是非ご参加ください!
プログラミングに役立つ無料コンテンツもあります!
次に読みたい
オフィスアプリのなかでも、利用頻度が高いアプリの1つが表計算アプリのエクセルです。需要が高いだけに…
エクセルの作業を自動化するものをマクロと呼びます。実はこのマクロを作る「VBA」もプログラミング言…
Pythonはその「分かりやすさ」や「プログラムの書きやすさ」から、人気の高いプログラミング言語で…
大手SIerおよび大手メーカーの情報システム部門で実務経験を積み、現在はITライターとして独立。DX・IT・Webマーケティング分野を中心に多数の記事やコラムを執筆。保有資格:ITストラテジスト、プロジェクトマネージャー、応用情報技術者など。