エクセルにはプログラミングを行う環境が準備されています。
そのためエクセルをインストールしているパソコンであれば、誰でもプログラミングを行うことが可能です。
このとき難しい設定は不要で、かつ無料で利用できます。
しかし、エクセル初心者はプログラミングを使った「事例」や「どのようなメリットがあるのか?」について知る機会は多くありません。
またプログラミング言語の勉強方法に触れるチャンスも少ないのが現状です。
そこで、エクセルのプログラミングについて初心者でも理解できるように、事例から勉強方法まで詳しく解説していきます。
・エクセルで出来るプログラミングの事例
・プログラミングの勉強方法
目次
エクセルのプログラミングとは?
エクセルと親和性の高いプログラミングは主に以下の3つがあります。
2. Python
3. Office Script
これらについて述べていきます。
1. エクセルVBA
VBAとはVisual Basic for Applicationsの略で、Microsoft Officeのアプリケーションに搭載されているプログラミング言語を指します。
VBAを使用することで、Excel、Access、Word、Outlook、PowerPointなどMicrosoft Officeのアプリケーション・ソフトウェアの機能をカスタマイズしたり、拡張したりすることができます。
そのなかでエクセルを軸に動作するプログラミングツールをVBAと呼ぶことが多いです。
主に定型作業の自動化で威力を発揮し、一連の自動化処理をマクロという名称で呼ばれることもあります。
Microsoft Officeの定型作業を自動化したツールをマクロと呼ぶことがありますが、そのマクロはVBAコードをもとに作成されていることが多いです。
エクセルVBAの実例
エクセルVBAの実例として、代表的なものとして請求書自動作成プログラムがあります。
ここではその請求書作成のプログラミングについてイメージが持てるように、以下の動画を載せておきます。
この動画はエクセルに記入された取引データから取引先ごとに請求書PDFを作成するマクロVBA(プログラミングで作成したツール)を紹介しています。
他にもVBAを使って出来ることを知りたい人は以下の記事で解説をしていますので、ご覧ください。
エクセルVBAで使われる単語
エクセルVBAのプログラミングでは、マクロ、VBA、VBといった単語をよく聞きます。
そこで、プログラミング初心者の人のために、エクセルのプログラミングでよく使われる単語を整理しておきました。
単語 | 意味 |
---|---|
マクロ | 複雑なパソコン操作を自動化する機能 |
VBA(Visual Basic Application) | マクロを実行するためのツール |
VB(Visual Basic) | エクセル、ワード、パワポ、アウトルックで使用されるプログラミング言語 |
ここでは、単語の意味や定義を紹介はしました。しかし、これらを詳しく理解しておく必要はありません。
なぜなら、理解していなくても、プログラミングを行うことはできるからです。
例えば、スポーツでも道具の正式名称を知らなくても、競技を行うことは可能です。
プログラミングも同じです。これらの単語の意味や定義を深く理解する必要はありません。
それよりも、プログラミングを通じて「何ができるのか?」や「どのように使うのか?」を理解する方が重要です。
2. Python
Pythonとはウェブアプリケーションから機械学習まで様々な分野で活用されるプログラミング言語です。
Pythonの特徴として以下の2つが挙げられることが多いです。
1. 少ないコードで簡潔なプログラムを記述可能
2. 豊富なライブラリを活用可能
VBAと比較すると、プログラムの記述が少なくて済むことが一つの特徴です。
また豊富なライブラリを活用できるため、エクセルだけではなくディープラーニングでも使用され、汎用性の高いプログラミング言語です。
様々なライブラリを使えることが、エクセルとの親和性が高い理由につながっています。
Pythonでエクセル作業を自動化できること
Pythonを使うと、Excel仕事を効率化することが可能です。
効率化できる操作は多岐にわたりますが、分かりやすいところで言えば以下のような作業を自動化できるのです。
・読み込み
・データ処理
・書き込み
・グラフ化
・ウェブスクレイピング
・PythonでExcelマクロ実行(VBA)
・Excelの印刷設定
詳しくは以下のページで紹介しています。
VBAとPythonの違い
PythonもVBAもエクセル仕事を自動化できる点は同じと言えますが、実際には異なる点が数多く存在します。
たとえば以下の点です。
違い2. PythonとVBAはプログラムの記述方法が異なる
違い3. PythonとVBAは学習のしやすさが異なる(ウェブや書籍での情報量)
違い4. PythonとVBAは転職市場での価値が異なる
違い5. PythonとVBAは副業での単価が異なる
これらについて、以下のページで紹介しています。
3. Office Script
Office Scriptとは、ウェブで使用するエクセル(Excel on the web)における日常のタスクを自動化できます。
このページでは、細かい説明は省略しますが、オンラインで使用するエクセルを使うばあいに威力を発揮できる可能性があります。
以下でMicrosoftの公式サイトのリンクを付けておきます。
https://docs.microsoft.com/ja-jp/office/dev/scripts/overview/excel
エクセルでプログラミングを行うメリット
エクセルでプログラミングを行うにはいくつかのメリットがあります。簡単に言うと、以下の3つです。
メリット1|エクセルやワードの仕事を自動で処理できる
メリット2|気軽に無料で始めることができる
メリット3|エクセルのプログラム情報はウェブで簡単に入手できる
それでは一つずつ紹介していきます。
メリット1|エクセルやワードの仕事を自動で処理できる
VBAやPythonを使ってプログラミングを行えば、エクセルやワードなどの仕事を自動化できます。
例えば、以下の動画で紹介しているのはVBAでシート転記作業の自動化した事例です。
このような定型業務はプログラミングで自動化しやすいです。
作業自動化による利点は、転記ミスがなくなる点です。
ミスが減らせるため、仕事のやり直しが減り、作業を早く終わらせることができます。
転記作業が多い仕事をしている人は、ボタン一つで終わらせることができるようにプログラムを作成しておくと安心です。
またプログラミングのレベルが上がれば、エクセル以外の作業も自動化することができます。
たとえばメール送信からウェブ調査まで幅広い作業を自動化できます。
メリット2|気軽に無料で始めることができる
エクセルVBAもPythonも、無料で始めることができるのが利点です。
とくにエクセルVBAは、エクセルを使えることができるパソコンであれば、すぐにプログラミングを始めることができます。
何かダウンロードをする必要はなく、気軽にプログラミングを始めることができます。
特に企業に勤務していると、社外の情報をダウンロードする手間がないメリットは大きいです。
なぜなら、上司や他部署への許可を申請する必要がないからです。
このように、簡単に気軽に、しかも無料で始めることができるのはメリットが大きいです。
またエクセルにはマクロの自動記録という機能もついており、VBAプログラムを自動生成させることもできます。
ただしPythonはインストールする作業が発生するので、エクセルVBAに比べると一手間かかります。
それでもその気になれば、30分程度でプログラミングを始める状態を構築できます。
メリット3|エクセルのプログラム情報はウェブで簡単に入手できる
エクセルVBAもPythonもプログラミングの学習方法から事例まで、Googleで検索すれば、数多く公開されています。
そのため勉強しやすいのが利点です。
実際に、このサイトの記事でもプログラムを公開しています。
以下のページで紹介しているので、ぜひご活用ください。
エクセルマクロVBAでプログラミングを行うデメリット
もちろん、デメリットもあります。以下の3つは覚えておくといいでしょう。
デメリット1|プログラムを書く必要がある
デメリット2|学習方法が多いため、何から学べば良いのかわからない
デメリット3|エクセルのプログラミングの活用方法が分からない
以下で詳しく紹介していきます。
デメリット1|プログラムを書く必要がある
エクセルでプログラミングを行えば、請求書のような仕事は自動化することが可能です。
しかしエクセル仕事を自動化するには、当然ですがプログラムを書く必要があります。
たとえばエクセルVBAでは、以下のようなプログラムを記述しないといけません。
ウェブで公開されている情報を使えることもありますが、実際には自分の手でアレンジして使うことのほうが多いです。
なぜなら、ウェブで公開されている情報がそのまま自分のケースに当てはまることは少ないからです。
難しいプログラムになるほど、勉強してすぐに使いこなせるようになるものではありません。
また、正しく学ばないと、「勉強したのに、全然分からない」となってしまいます。
デメリット2|学習方法が多いため、何から学べば良いのかわからない
エクセルのプログラミングの情報は、本やインターネットで簡単に入手可能です。
しかし、情報が多すぎて、何から勉強すればいいか見極めるのが難しい状態とも言えます。
とくに入門者や初心者は、自分のレベルにあわせて情報を選ぶ必要があります。
デメリット3|エクセルのプログラミングの活用方法が分からない
これからプログラミングを学ぶ人に多いのは、実務で「どのように活用すればいいのか」イメージがつかないことです。
実際の仕事をプログラミングが結びつかないことも多いのが現実です。
以下でこのデメリットを少しでも解消できるようにサンプルのまとめページを準備しているので、興味がある人はご覧ください。
エクセルのプログラミング習得の難易度や必要期間
ここまでエクセルでのプログラミングについて、紹介をしてきました。
しかし、できることは分かっても、「どのくらい勉強すればいいのか?」や「習得の難易度はどの程度か?」といった疑問をもつ人もいるかもしれません。
具体的に、どのように学習したのかはこちらの記事で解説しています。興味があれば、ぜひ合わせて読んでみて下さい。
エクセルのプログラミングのやり方から編集方法まで
エクセルのプログラミングでできることについて紹介してきました。しかし、何ができるか分かるだけでは不十分です。
なぜなら、どのようにすれば使えるかを理解する必要があるからです。
例えば、英語を学習するとき、英語習得のメリットを理解してもあまり意味はありません。
英語を使えるようになりたいなら、文法や単語を理解して、実際に現場でトライしていく必要があります。
プログラミングも同じです。プログラミングで出来ることやメリット知るだけで満足するには早いです。
それよりも、プログラミングを使い方・やり方を知る方が重要です。
ここでは、エクセルのプログラミングを実際に行う方法を紹介していきます。
方法1|簡単に始めるには、マクロの自動記録を使う
エクセルでプログラミングを利用するとき、もっとも簡単に始めることができるのがマクロの自動記録という機能です。
これはエクセルVBAに関するものであり、Pythonにはマクロの自動記録はありません。
これを利用すれば、簡単な作業の自動化を行うことが可能です。
例えば、エクセルのセルA1~A15まで順に数字を入れていく作業があるとします。
この作業は、マクロの自動記録を行うと、エクセルが自動でプログラムを作成してくれます。以下の2の部分がプログラムです。
しかし、マクロの自動記録には、デメリットがあります。それは、自動記録されたプログラムが、初心者には難しくて解読しにくい場合があることです。
たとえば、以下はマクロの自動記録で作成したプログラムです。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 |
Sub Macro1() ' ' Macro1 Macro ' ' Range("C4").Select ActiveCell.FormulaR1C1 = "q" Range("B5").Select ActiveWindow.SmallScroll Down:=-9 With Selection.Interior .Pattern = xlSolid .PatternColorIndex = xlAutomatic .Color = 65535 .TintAndShade = 0 .PatternTintAndShade = 0 End With Range("B7:C11").Select Range("B11").Activate End Sub |
上記は、以下の作業を自動化しています。
この作業をマクロの自動記録でプログラムで記録すると、上記のようになります。
マクロの自動記録については、簡単に作成できる一方で、あまり汎用性の高いプログラムを作成できない弱点があります。
マクロの自動記録については以下のページで解説しています。
使い方からデメリットまで紹介しています。
方法2|劇的な効率化・自動化には、自分で編集する
マクロの自動記録を使えば、プログラミング初心者でもコードを作成することができます。
しかし、自動記録だけではプログラミングの本来の力を発揮できません。
汎用性が高いプログラムを作れないからです。
そこで、お勧めしたいのが自分でプログラムを編集する力を付けることです。
自分で編集できるようになることで、自動記録では作成できないプログラムを作ることができるようになります。
例えば、動画で紹介しているプログラムはほぼ手書きでプログラムを作成しています。
手書きでプログラミングをすることができれば、最終行を自動で読み込んで最終行までを自動処理できるように作成することが可能です。
このように、手書きで編集できるようになると、プログラミングの本来の力を発揮できるようになるのです。
手書きでプログラミングができるようになることを薦める理由について以下で詳しく紹介しています。
興味があれば、こちらの記事を読んでみて下さい。
補足|セキュリティの設定には注意する
エクセルでプログラミングができるようになると、作業を自動化できるようになります。
しかし、セキュリティには注意が必要です。
なぜなら、マクロウイルスの危険性があるからです。マクロウイルスとは、エクセルのPCウイルスです。
プログラミング上級者であれば、「エクセルを開いた瞬間に、パソコンの中の重要なファイルを破壊する」というプログラムを作成することも可能です。
そのため、セキュリティには注意が必要です。設定方法についてはこちらで詳しく解説しています。ぜひ読んでみてください。
手書きで編集できるようになる方法は、以下の動画で紹介をしています。
動画が苦手な人は以下の記事でも手書き編集の方法を記載しています。
作業自動化による効率化は魅力的ですが、セキュリティ設定を怠らないようにしましょう。
エクセルを使ったプログラム開発に大切なコツ
エクセル仕事を自動化するには、プログラムを開発する必要があります。
そして、手書きで編集できるようになると、エクセルに限らず、ワードやパワポの仕事まで自動化できるようになります。
しかし、このようなレベルで仕事を効率化できるようになるには、仕事の流れを俯瞰する力が必要になってきます。
なぜなら、自分一人で仕事をしているわけではないからです。
例えば、自分一人の仕事ではなく、仕事全体を見通してより効率化を行うようにプログラムを構成する必要があります。
また、プログラムで仕事を効率化するなら、上司やチームメンバーに提案して協力を要請する必要が生じます。
そのためプログラミングスキルだけでなく仕事を全体最適する力や提案力も必要になるのです。
以下のページは、エクセルを使ったプログラム開発を行うときに大切なコツを紹介しています。
エクセルVBAのプログラミング勉強法
エクセルでのプログラミングを勉強する方法はいくつかあります。
ここでは動画、書籍、講座について紹介します。
プログラミング勉強法1. 本やテキスト
プログラミングにはレベルによって、選択すべき書籍が変わります。
初心者であればマンガから入った方がわかりやすいです。
一方で、ある程度スキルに自信がある人なら、興味のある分野から始めるといいでしょう。
以下の記事ではエクセルのプログラミングを勉強するときの書籍に関して紹介しています。ぜひ合わせて読んでみてください。
プログラミング勉強法2. 研修や講座
エクセルのプログラミングを学習するとき、近道の一つに先生から直接教えてもらうことがあります。
ただ、セミナーや研修は昨今の情勢で開催されているものが多くありません。
そのため、オンラインで学習できる講座や研修が、最初の選択肢の人も多いはずです。
以下のページでオンラインで学べる講座について解説しています。
プログラミング勉強法3. 動画
最近は動画で詳しく説明しているページも増えています。
このサイトでも、エクセルVBAのオリエンテーション(導入)となるような動画を準備しています。
書籍等は数多く出版されていますが、以下の動画をご覧いただくだけでもエクセルVBAの入り口に立てるようになるはずです。
これからVBAを勉強してみようという人は、動画からご覧いただくのが良いかと思います。
エクセルマクロVBAを全力で解説してみた
エクセルマクロの編集方法やVBEの使い方を解説
エクセルマクロを読みときは、この2つのルールを徹底しよう
エクセルマクロの書き方ルール1|数字、文字列、日付の書き方
エクセルマクロの書き方ルール2|数字や日付の計算・文字列の結合
エクセルマクロの変数とは?使い方(3ステップ)と3つのメリットを徹底解説
エクセルマクロがよく分かる!変数とForNext構文の組み合わせを解説!VBA初心者向け
エクセルVBAやPythonについて詳しく知りたいなら
エクセルでのプログラミングについてお伝えしていきました。
もう少し知りたいという人は、以下のページで詳しい内容をお伝えしていますので参考にしてみてください。