スポンサーリンク

【初心者向け】Excel VBA(マクロ) まったくの初心者のとき最初の最初にやったこと

 ブログを読んで頂いている方を対象にオフ会を開催させて頂きます!!
 第2回【ブログオフ会 in 静岡市】2020年1月18日(土)

Excel VBA(マクロ)をはじめて使ったのは 2012年で、ちょうど会計の世界に足を踏み入れた直後です。

当時 34歳でした。

それまではエンジニアとして主にグラフの作成で Excel を使うことはありましたが、Excel VBA(マクロ)を使う必要には迫られていませんでした。

プログラミング自体は C言語、FORTRAN といったものを経験したことがありました。

さてさて、何事でもとっかかりは大事なので、自分がはじめてExcel VBA(マクロ)に触ったときにどういう練習をしたか? を思い出して書いてみることにしました。

頑張って(笑)当時の Excel ファイルを引っ張り出して記憶を掘り起こしながら書きますね!

人によってアプローチの仕方は様々なのであくまで一例にはなりますが、私はここからはじめて一応今でも Excel VBA を使い続けています。

なお、説明にあたっては操作をショートカットキーで実行する前提で書いてあるところもありますのでご了承ください。

Excel VBA(マクロ)を使えるようにするための設定については以下の記事を参考にして下さい。

今日の記事の内容は、これらの設定 ↑ はやった上でのことになります。

スポンサーリンク

1、本を読むところからではなく、とにかく触れることからはじめる

まず本を買って1ページ目から順番に読んでいく、という学習の仕方はしませんでした。

Excel VBA に触るより以前のプログラミングの経験からも言えることとして、まず触ってみることが大事です。

今の時代は Web にいくらでも情報が転がっているので、最初に必ず本を読まなければならないということはありません。

Web でちょちょっと検索しながらとにかく触ってみましょう。

*本は体系的に書かれているので後々あった方が良いですが、最初の最初ではまだいりません。

2、Excel VBA でコードを書きはじめる前の設定

ファイルの種類はマクロ有効ブックを選択

さて、Excel ファイルを開いたらまずファイルを保存します。

「Ctrl + S」でファイルの新規保存できるので、好きな名前を付けて保存しましょう。このときにファイルの種類は「Excel マクロ有効ブック(*.xlsm)」を選択して保存します。

Excelマクロ有効ブック

これで真っ白な Excel シートが出てきます(ファイルの種類が他の場合と同じく)。

白紙のシート

このシート↑ は普通の Excel シートとして使うことができます。

VBE(エディタ)を開いて標準モジュールを挿入する

VBA コードを記述するためには VBE というエディタ(メモ帳みたいなやつ)を開かなくてはいけません。

「Alt  + F11」を押しましょう!

すると Excel シートとは別に次の画面が出てきます。これが VBE ですね。

VBE

この状態で「Alt → I → M」を押して、標準モジュールという名の「VBA コードを記述するところ」を出します。

すると、以下の「真っ白な空間」が出てきます。

標準モジュール

ここに VBA コードを書くわけですね。

VBAコード書き込み

VBA コードはプロシージャ内に書く

さて、VBA コードを書くときの大前提となるルールとして「プロシージャ内に書く」ということがあります。

プロシージャというのは Sub ~ End Sub で囲われる範囲のこと。

標準モジュールの一番上に Sub と入力(大文字でも小文字でも良い)し、その後に半角スペースを空けて自分が好きな名前を入力します。今回、Test とします。

プロシージャ

この状態↑で Enter キーを押すと、Test の後に () が自動的に挿入され、さらに下の行に「End Sub」という一文が自動的に挿入されます。

プロシージャ2

Sub ~ End Sub までのかたまりをプロシージャと呼び、ここに VBAコードを記述するわけです。

プロシージャ内にコード記述

VBA コードは一文一文が小さな命令になっており、いくつもの命令を組み合わせることでやりたいことを実現させます。

記述した VBA コードを実行すると、上から下に順番に実行されて行きます。

上から下に順番に実行

3、セルの数字を読み込んで計算して別のセルに書き出す練習

さて、この記事のタイトルでもある、最初の最初にどんな練習をしたか? ということをお話しします。

Excel にはセル(1つ1つの四角)がありますよね。

そして、Excel で何かをするときは、まず間違いなくセルを編集するじゃないですか。

数字や文字を入力したり、色で塗りつぶしたり。

こういう編集は自分でマウスとキーボードを使って手作業でやるのが普通ですが、VBA でマクロを作れば自動化できるわけなんですね!

面倒くさいことを人に代わってマクロがやってくれるから、効率化になるということなのです。

さて、日々 Excel に触れていると当たり前のことになって認識しづらいのですが、セルというのは Excel 独特の概念なのですね。

ですので、セルに数字や文字を書き出すということも Excel ならではのことです。

数字や文字をセルに書き出せるというそもそものツールの特性があるから、やりたいこと(自動化したいこと)を正しくできているか? を視覚で確認がしやすく

その点で Excel VBA は他のプログラミング言語と比べ、初心者がとっつきやすいと言えるでしょう。

さて、そういうわけで簡単なセルの編集を自動化してみましょう!

自分が最初にやったことは以下 ↓です。

●セルの指定の仕方を覚える
●四則演算を VBA で行う

セルをどのように指定するか

Excel VBA で実行する内容は、まず間違いなくセルが関係するので、セルを操作する感覚を身につけなければなりません。

まず、セルの指定の仕方を覚えましょう!

以下については、リンク先にある個別のフォームよりお願い致します。-----------------------
◆第2回【ブログオフ会 in 静岡市】2020年1月18日(土)
◆メルマガ登録

Excel に触れたことある人であればご存知のとおり、セルは行と列の組み合わせで成り立っています。

行番号は数字、列番号はアルファベットで表示されており、例えば行番号が 5、列番号が C の場合、セル「C5」のように呼びます。

セルC5

さて、VBA でどのようにセルを指定するか?

いくつか方法があるのですが、自分が一番よく使う方法は行番号、列番号ともに数字で指定する方法です(後々いろいろと応用がきくからです)。

列番号は、A列が1、B列が2、C列が3、、、、という具合に置き換えることになります。

Image(16)

セルの指定は、以下のように行います。

Cells(行番号, 列番号)

*行番号、列番号とも数字

セル「C5」は VBA で記述すると Cells(5, 3) となります。

Image(17)

行番号、列番号の2つでセルを指定することに慣れましょう!

セルの指定の仕方については、こちらの記事でも詳しく解説させて頂いてますので参考にして下さい↓

四則演算(足す、引く、掛ける、割る)を行いセルの操作に慣れる

さて、セルの指定の仕方を覚えたら実際に何かコードを書いてみましょう。

セルに数字を表示させる

セル「C5」に数字を表示させてみます。100 と表示させたい場合以下のように記述します。

Sub ~ End Sub の間にVBAコードを記述する際には TAB キーを押してから書きましょう!

前にスペースができるで見やすくなります。

インデント

Cells(5, 3) = 100

セル「C5」に 100 と表示せよ(厳密に言えば セル「C5」の値を 100 にせよ)!

という命令になります。

さて、これでコードを実行させてみます。

Excel シート上で Alt+F8 を押しましょう!

するとマクロを選択できるウインドウが出てくるので上記のプロシージャ名と同じマクロを選択して実行します。

マクロ実行

するとセル「C5」に 100 と表示されることが確認できるかと。

C5に数字出力

なお、Excelシート上で VBA(マクロ)の実行ボタンを作ることもできます。その方法については、こちらの記事に書きましたので参考にして下さい↓

足し算を行う

次のようにセル「A1」に 100、セル「A2」に 50 と入力してある場合に、この2つの数字を使った計算をしてみます。

足し算

これら2つの数字を足し算してセル「A4」に表示させる場合 VBA コードは次のようになります↓

Cells(4, 1) = Cells(1, 1) + Cells(2, 1)

セル「A1」(Cells(1, 1))の値と

セル「A2」(Cells(2, 1))の値

を足し算して、セル「A4」に表示せよ! 

という命令になります。

足し算はプラス記号「+」を使えばできます。これは算数とまったく同じですね。

実行するとセル「A4」に足し算の結果が表示されますね。

足し算結果

引き算を行う

次に、先の2つの数字を引き算してセル「A4」に表示させる場合 VBA コードは次のようになります↓

Cells(4, 1) = Cells(1, 1) – Cells(2, 1)

セル「A1」の値とセル「A2」の値を引き算して、セル「A4」に表示せよ! 

という命令になります。

引き算はマイナス記号「-」を使えばできます。これも算数と同じです。

実行するとセル「A4」に引き算の結果が表示されることを確認しましょう!

掛け算を行う

次に、先の2つの数字を掛け算してセル「A4」に表示させる場合 VBA コードは次のようになります↓

Cells(4, 1) = Cells(1, 1) * Cells(2, 1)

セル「A1」の値とセル「A2」の値を掛け算して、セル「A4」に表示せよ! 

という命令になります。

掛け算は「*」を使えばできます。これは算数の場合(× を使う)とは違うので注意してください。

割り算を行う

次に、先の2つの数字を割り算してセル「A4」に表示させる場合 VBA コードは次のようになります↓

Cells(4, 1) = Cells(1, 1) / Cells(2, 1)

セル「A1」の値をセル「A2」の値で割って、セル「A4」に表示せよ! 

という命令になります。

割り算は「/」を使えばできます。これも算数の場合(÷ を使う)とは違うので注意してください。

四則演算で色々遊ぶ

セルの指定の仕方を覚えて、足し算、引き算、掛け算、割り算の四則演算を使って色々と遊んでみて下さい。

どのセルを使っても、四則演算を組み合わせて使っても良いです。

まずはセルを操作するという感覚を身に付けましょう!

4、まとめ

自分がマクロ(Excel VBA)にはじめて触れたときに何をしていたか?

記録を呼び覚ましながら書いてみました。

まずは

●セルの指定の仕方
●四則演算

この2つを覚えましょう!

そして、自分で計算しなくてもマクロを使ってセルを操作している! という感覚を身に付けて頂きたいです。

マクロって何なんだ? というのも実際にやってみて肌で感じれば分かると思います。

こちらの記事↓ も参考にして下さい。

Excel VBA についてのメニューも提供させて頂いておりますのでよろしければ ↓

◆Excel シートのオーダーメイド
◆Excel、マクロ(Excel VBA) のマンツーマンレッスン

編集後記

昨日(10/1)は今日受験する生命保険の専門課程試験の勉強をしていました。

勉強不足だったのですが、何とか取り戻せたというところでしょうか(汗)

今日、試験頑張ってきます!

以下については、リンク先にある個別のフォームよりお願い致します。-----------------------
◆第2回【ブログオフ会 in 静岡市】2020年1月18日(土)
◆メルマガ登録