Excel VBA(マクロ)をはじめて使ったのは 2012年で、ちょうど会計の世界に足を踏み入れた直後です。
当時 34歳でした。
それまではエンジニアとして主にグラフの作成で Excel を使うことはありましたが、Excel VBA(マクロ)を使う必要には迫られていませんでした。
プログラミング自体は C言語、FORTRAN といったものを経験したことがありました。
さてさて、何事でもとっかかりは大事なので、自分がはじめてExcel VBA(マクロ)に触ったときにどういう練習をしたか? を思い出して書いてみることにしました。
頑張って(笑)当時の Excel ファイルを引っ張り出して記憶を掘り起こしながら書きますね!
人によってアプローチの仕方は様々なのであくまで一例にはなりますが、私はここからはじめて一応今でも Excel VBA を使い続けています。
なお、説明にあたっては操作をショートカットキーで実行する前提で書いてあるところもありますのでご了承ください。
Excel VBA(マクロ)を使えるようにするための設定については以下の記事を参考にして下さい。
Excel VBA(マクロ)をこれまで全く使ったことがない人が、始めるにあたりもろもろの設定をする必要があります。今日は、これから Excel VBA(マクロ)を始める人向けて、必要な(あるいは望ましい)設定についてお話しします。1、Excel VBA(マクロ)を始めるために必要な設定まずは普通に Excel を起動します。開発タブVBA を使うのに必要な開発タブを表示させます。まず、「ファイル」タブの「オプション」を選択します。次に「リボンのユーザー設定」を選択し「開発」にチェックを付けましょう。これで、Excel を開いたときに開発... 【初心者向け】Excel VBA(マクロ)を使えるようにするまでの設定 - My タックスノロジー |
今日の記事の内容は、これらの設定 ↑ はやった上でのことになります。
1、本を読むところからではなく、とにかく触れることからはじめる
まず本を買って1ページ目から順番に読んでいく、という学習の仕方はしませんでした。
Excel VBA に触るより以前のプログラミングの経験からも言えることとして、まず触ってみることが大事です。
今の時代は Web にいくらでも情報が転がっているので、最初に必ず本を読まなければならないということはありません。
Web でちょちょっと検索しながらとにかく触ってみましょう。
*本は体系的に書かれているので後々あった方が良いですが、最初の最初ではまだいりません。
2、Excel VBA でコードを書きはじめる前の設定
ファイルの種類はマクロ有効ブックを選択
さて、Excel ファイルを開いたらまずファイルを保存します。
「Ctrl + S」でファイルの新規保存できるので、好きな名前を付けて保存しましょう。このときにファイルの種類は「Excel マクロ有効ブック(*.xlsm)」を選択して保存します。
これで真っ白な Excel シートが出てきます(ファイルの種類が他の場合と同じく)。
このシート↑ は普通の Excel シートとして使うことができます。
VBE(エディタ)を開いて標準モジュールを挿入する
VBA コードを記述するためには VBE というエディタ(メモ帳みたいなやつ)を開かなくてはいけません。
「Alt + F11」を押しましょう!
すると Excel シートとは別に次の画面が出てきます。これが VBE ですね。
この状態で「Alt → I → M」を押して、標準モジュールという名の「VBA コードを記述するところ」を出します。
すると、以下の「真っ白な空間」が出てきます。
ここに VBA コードを書くわけですね。
VBA コードはプロシージャ内に書く
さて、VBA コードを書くときの大前提となるルールとして「プロシージャ内に書く」ということがあります。
プロシージャというのは Sub ~ End Sub で囲われる範囲のこと。
標準モジュールの一番上に Sub と入力(大文字でも小文字でも良い)し、その後に半角スペースを空けて自分が好きな名前を入力します。今回、Test とします。
この状態↑で Enter キーを押すと、Test の後に () が自動的に挿入され、さらに下の行に「End Sub」という一文が自動的に挿入されます。
Sub ~ End Sub までのかたまりをプロシージャと呼び、ここに VBAコードを記述するわけです。
VBA コードは一文一文が小さな命令になっており、いくつもの命令を組み合わせることでやりたいことを実現させます。
記述した VBA コードを実行すると、上から下に順番に実行されて行きます。
3、セルの数字を読み込んで計算して別のセルに書き出す練習
さて、この記事のタイトルでもある、最初の最初にどんな練習をしたか? ということをお話しします。
Excel にはセル(1つ1つの四角)がありますよね。
そして、Excel で何かをするときは、まず間違いなくセルを編集するじゃないですか。
数字や文字を入力したり、色で塗りつぶしたり。
こういう編集は自分でマウスとキーボードを使って手作業でやるのが普通ですが、VBA でマクロを作れば自動化できるわけなんですね!
面倒くさいことを人に代わってマクロがやってくれるから、効率化になるということなのです。
さて、日々 Excel に触れていると当たり前のことになって認識しづらいのですが、セルというのは Excel 独特の概念なのですね。
ですので、セルに数字や文字を書き出すということも Excel ならではのことです。
数字や文字をセルに書き出せるというそもそものツールの特性があるから、やりたいこと(自動化したいこと)を正しくできているか? を視覚で確認がしやすく
その点で Excel VBA は他のプログラミング言語と比べ、初心者がとっつきやすいと言えるでしょう。
さて、そういうわけで簡単なセルの編集を自動化してみましょう!
自分が最初にやったことは以下 ↓です。
●四則演算を VBA で行う
セルをどのように指定するか
Excel VBA で実行する内容は、まず間違いなくセルが関係するので、セルを操作する感覚を身につけなければなりません。
まず、セルの指定の仕方を覚えましょう!
Excel に触れたことある人であればご存知のとおり、セルは行と列の組み合わせで成り立っています。
行番号は数字、列番号はアルファベットで表示されており、例えば行番号が 5、列番号が C の場合、セル「C5」のように呼びます。
さて、VBA でどのようにセルを指定するか?
いくつか方法があるのですが、自分が一番よく使う方法は行番号、列番号ともに数字で指定する方法です(後々いろいろと応用がきくからです)。
列番号は、A列が1、B列が2、C列が3、、、、という具合に置き換えることになります。
セルの指定は、以下のように行います。
Cells(行番号, 列番号)
*行番号、列番号とも数字
セル「C5」は VBA で記述すると Cells(5, 3) となります。
行番号、列番号の2つでセルを指定することに慣れましょう!
セルの指定の仕方については、こちらの記事でも詳しく解説させて頂いてますので参考にして下さい↓
Excel は使ったことがあるけど Excel VBA(マクロ)は未経験という方に向けて、最初の一歩を手助けしたいと考えています。Excel でやることには、まず間違いなく「セル」が関わります。VBA でのプログラミングによってできることも、何らかのセルの操作になるわけですね。さて、今日は「Excel VBA におけるセルの指定の仕方」についてお話しします!1、Excel シート上でのセルの指定まずはご存知の Excel シートでのセルの指定をざっと振り返っておきましょう!さて、Excel では行・列の組み合わせでセルを指定することはご存知だと思... 【初心者向け】Excel VBA(マクロ)におけるセルの指定の仕方を解説、Cells、Range... - My タックスノロジー |
四則演算(足す、引く、掛ける、割る)を行いセルの操作に慣れる
さて、セルの指定の仕方を覚えたら実際に何かコードを書いてみましょう。
セルに数字を表示させる
セル「C5」に数字を表示させてみます。100 と表示させたい場合以下のように記述します。
1 2 3 4 5 |
Sub Test() Cells(5, 3) = 100 End Sub |
Sub ~ End Sub の間にVBAコードを記述する際には TAB キーを押してから書きましょう!
前にスペースができるで見やすくなります。
でセル「C5」に 100 と表示せよ(厳密に言えば セル「C5」の値を 100 にせよ)!
という命令になります。
さて、これでコードを実行させてみます。
Excel シート上で Alt+F8 を押しましょう!
するとマクロを選択できるウインドウが出てくるので上記のプロシージャ名と同じマクロを選択して実行します。
するとセル「C5」に 100 と表示されることが確認できるかと。
なお、Excelシート上で VBA(マクロ)の実行ボタンを作ることもできます。その方法については、こちらの記事に書きましたので参考にして下さい↓
Excel シートを作り Excel VBA(マクロ)を組み込んだ場合における実行の方法はいくつかあります。コードを書いた VBE(エディタ)↓ を開いた状態で F5 を押して実行するのが標準的なやり方でしょう。しかし、この方法だと実行するときに必ず VBE を開かなければなりません。Excel シートを開いただけで VBE を開かずとも実行できるようにしたいです。今日はそのために Excel シート上に簡単に実行ボタンを作る方法を紹介します。1、挿入した図形にマクロを組み込む今回、Excel シート上のセル A1、A2 に入力した数字の合計をセル A4 ... 【初心者向け】図形を挿入して Excel VBA(マクロ)の実行ボタンにする方法 - My タックスノロジー |
足し算を行う
次のようにセル「A1」に 100、セル「A2」に 50 と入力してある場合に、この2つの数字を使った計算をしてみます。
これら2つの数字を足し算してセル「A4」に表示させる場合 VBA コードは次のようになります↓
1 2 3 4 5 |
Sub Test() Cells(4, 1) = Cells(1, 1) + Cells(2, 1) End Sub |
で
セル「A1」(Cells(1, 1))の値と
セル「A2」(Cells(2, 1))の値
を足し算して、セル「A4」に表示せよ!
という命令になります。
足し算はプラス記号「+」を使えばできます。これは算数とまったく同じですね。
実行するとセル「A4」に足し算の結果が表示されますね。
引き算を行う
次に、先の2つの数字を引き算してセル「A4」に表示させる場合 VBA コードは次のようになります↓
1 2 3 4 5 |
Sub Test() Cells(4, 1) = Cells(1, 1) - Cells(2, 1) End Sub |
でセル「A1」の値とセル「A2」の値を引き算して、セル「A4」に表示せよ!
という命令になります。
引き算はマイナス記号「-」を使えばできます。これも算数と同じです。
実行するとセル「A4」に引き算の結果が表示されることを確認しましょう!
掛け算を行う
次に、先の2つの数字を掛け算してセル「A4」に表示させる場合 VBA コードは次のようになります↓
1 2 3 4 5 |
Sub Test() Cells(4, 1) = Cells(1, 1) * Cells(2, 1) End Sub |
でセル「A1」の値とセル「A2」の値を掛け算して、セル「A4」に表示せよ!
という命令になります。
掛け算は「*」を使えばできます。これは算数の場合(× を使う)とは違うので注意してください。
割り算を行う
次に、先の2つの数字を割り算してセル「A4」に表示させる場合 VBA コードは次のようになります↓
1 2 3 4 5 |
Sub Test() Cells(4, 1) = Cells(1, 1) / Cells(2, 1) End Sub |
でセル「A1」の値をセル「A2」の値で割って、セル「A4」に表示せよ!
という命令になります。
割り算は「/」を使えばできます。これも算数の場合(÷ を使う)とは違うので注意してください。
四則演算で色々遊ぶ
セルの指定の仕方を覚えて、足し算、引き算、掛け算、割り算の四則演算を使って色々と遊んでみて下さい。
どのセルを使っても、四則演算を組み合わせて使っても良いです。
まずはセルを操作するという感覚を身に付けましょう!
4、まとめ
自分がマクロ(Excel VBA)にはじめて触れたときに何をしていたか?
記録を呼び覚ましながら書いてみました。
まずは
●セルの指定の仕方
●四則演算
この2つを覚えましょう!
そして、自分で計算しなくてもマクロを使ってセルを操作している! という感覚を身に付けて頂きたいです。
マクロって何なんだ? というのも実際にやってみて肌で感じれば分かると思います。
こちらの記事↓ も参考にして下さい。
Excel VBA(マクロ)を使えるようになれば、作業を効率化できるようになるって聞くから覚えたい、、でも、どう一歩目を踏み出せばいいか分からないという方はいると思います。そんな方に向けて、とにかく Excel VBA(マクロ)を使うための、最初の一歩を踏み出す手順を書いてみたいと思います。Excel VBA(マクロ)とは? Excel VBA(マクロ)を使うと、Excel 上で行う手作業を自動化できるため、面倒くさい作業を減らせます。それが効率化に繋がるのです。少し用語について説明しておきますと、マクロとは Excel 上で行う手動の操作... 【初心者向け】Excel VBA(マクロ)のとりあえずの始め方 - My タックスノロジー |
Excel VBA についてのメニューも提供させて頂いておりますのでよろしければ ↓
◆Excel シートのオーダーメイド
◆Excel、マクロ(Excel VBA) のマンツーマンレッスン
編集後記
昨日(10/1)は今日受験する生命保険の専門課程試験の勉強をしていました。
勉強不足だったのですが、何とか取り戻せたというところでしょうか(汗)
今日、試験頑張ってきます!