【ExcelVBA】マクロって何から始めたらいいの?

Unityでゲーム作りの勉強をしているケロと言います。
普段は、Unityで作れた物を記事にしています。

機会があって、VBAを触っていたので、
少しの間、VBA初心者ながら作れたものを記事にしていこうと思っています。

ただ、VBA初心者と言う事でコーディングがヘタクソです。
正直、その辺りは生温かく見守って頂けるとうれしいでっす。m(_ _)m

前置きは、これくらいにして本題に入って行こうと思います。


プログラムには無縁、表計算だけExcelを使ってる
でもマクロも覚えたい。

正直、何から始めればいいか分かんないですよね。
ケロも昔、覚えたいって思っていましたが、
何から始めればいいの?となりました。

とりあえず本を買って勉強しようと考えたんですが、
本を開くと、いきなりプロシージャがどうとか、オブジェクトがどうとか…

見るだけで、無理!ってなって勉強しなかった事を覚えています。

あれから幾年経ったことやら…
今やゲーム作りを勉強してるとは…

逸れてしまいました(;^_^A 
話を戻して、

確かに概念や文法って大事なんですが、
何も知らないのにイキなりそんな事言われても分かるかよ!ってなります。

なので作りたい物を作る事から始めると、覚えるのも早いと思います。

今回は、簡単に作れて、実用性のあるボタン作りを説明します。
ちなみにコード(プログラム)の部分は、マクロの記録を使います。

ボタンで何ができるかを説明したいので、コードはExcelに任せます。
(;^o^) \(ToT )あんたほんとにそれでいいの



使うのは、Excel365です。
他の製品と大きくは違わないと思いますが確認下さい。

まずExcelVBAを使えるようにします。

新規ブックを開くと
ExcelVBA①.jpg
ファイル~ヘルプまでがリボンに表示されています。

VBAは、開発の項にあるので、表示させる必要があります。
表示の手順は、ファイルをクリックします。
ExcelVBA③.jpg
ファイルメニューから、その他→オプションをクリックします。

オプションが開いたら
ExcelVBA④.jpg
リボンのユーザー設定をクリックして、メインタブの中にある開発にチェックを入れます。

チェックを入れたらOKを押すとシートの画面に戻ります。
リボンの部分に開発の項目が追加されてれば準備OKでっす。

開発をクリックして、VBAの項目に切り替えます。

マクロの記録を使ってコーディングするのですが、
単純にセルを選択するボタンを作ってみます。

どこのセルを選択してても、ボタンを押すとA1セルに選択が戻るって感じです。

まず、マクロの記録をクリックします。
ExcelVBA⑤.jpg
マクロの記録画面が表示されます。
自動的に名前がMacro1になってるので、
そのままOKをクリックします。

これでMacro1と言うコーディングが開始されました。
ExcelVBA⑥.jpg
記録が開始されてるとマクロの記録部分が記録終了に変わります。
記録終了の表示中は、マクロを記録してる最中と言う事が分かります。

今回は、
ExcelVBA⑳.jpg
①マクロの記録
②A1セルをクリック
③記録終了

順番にクリックするだけです。
これでコーディングができました。

できたコードの確認ですが、マクロをクリックします。
ExcelVBA⑦.jpg
作成したマクロ一覧が表示されるので、
Macro1を選択して、編集をクリックします。
ExcelVBA⑧.jpg
VBAが立ち上がって、コード内容が表示されます。

ちなみにRange().Selectってのがセル選択のコマンドになります。
カッコ内にセルの番号を指定すると、指定セルが選択されます。

マクロの記録は、こんな感じでコーディングしてくれます。

後は、ボタンを作ってマクロを登録するだけなんですが、
これでは、ショボイので作図させてみたいと思います。

ボタンを使って、四角の図形を作図します。
ExcelVBA⑨.jpg
使う図形は、四角形の中の”正方形/長方形”を選択します。

まず、マクロの記録を押します。
ExcelVBA⑱.jpg
マクロ名は、分かり易ければなんでもOKなので、
今回は、図形作成としておきます。

OKをクリックして記録を開始します。
そのままの状態から挿入タブに切り替えて、
ExcelVBA⑪.jpg
図→図形→正方形/長方形を選択してシート上に四角を作図します。

位置や大きさは任意でOKです。
作図できたら開発に戻って、記録終了をクリックして終わらせます。
マクロボタンからコードを確認します。
ExcelVBA⑫.jpg
無事にコーディングされています。

ちなみにActiveSheet.Shapes.AddShape().Selectが作図のコマンドになります。
カッコ内にType・位置・大きさを設定する事ができます。

コーディングが問題なければ、ボタンを作ります。
開発の中の挿入をクリックします。
ExcelVBA⑬.jpg
フォームコントロールの左端にボタンがあるのでクリックします。
マウスカーソルが十字に変わるので、図形やテキストボックスと同じ要領で、
ボタンを作成します。

作成が終わるとマクロの登録画面が開きます。
ExcelVBA⑭.jpg
先で作った図形作成マクロを選択してOKをクリックして終了します。

これでボタンを押すと図形が追加されるようになります。
ExcelVBA⑮.jpg
こんな感じですね。

ボタンを作成した際にマクロを登録しましたが、
すでに作ってあるボタンにマクロを登録し直す事もできます。

ボタンの上で右クリックしてメニューを開きます。
ExcelVBA⑯.jpg
マクロの登録をクリックするとマクロの登録メニューを呼び出す事ができます。

先で作ったMacro1に変更して、ボタンをクリックすると
A1セルがアクティブになりました。

こんな感じでマクロを変更する事もできます。

マクロの記録を使って、コーディングしましたが、
どこにコーディングされてるかって事を覚えておく必要があります。

VisualBasicボタンを押して、エディタを起動します。
ExcelVBA⑰.jpg
コーディングをするとこのプロジェクトに格納されます。

標準モジュールといって、Book全体に使えるコードを格納してあります。
マクロやマクロの記録でコーディングすると標準モジュールに格納されます。

今後、ユーザーフォームの記事も書こうと思いますが、
ユーザーフォーム上にボタンを作って、コーディングすると
そのボタンだけのコードになったりします。

これをクラスモジュールと言って、部品(オブジェクト)専用のコーディングになります。

ネットで情報を探すと
このコードは、標準モジュールに設定する
このコードは、クラスモジュールに設定する
みたいに説明されてる時があります。

標準モジュールならbook全体で、
クラスモジュールなら部品単位と理解しておけばOKです。

ざっくりと説明しましたが、ボタンの使い方については以上となります。


Excelって、プロパティを開いて設定したり、タブを切り替えて設定したり
結構、面倒な操作が多いですよね。

そんな時にボタンのマクロを組んでおけば、少しは幸せに作業ができるかと思います。

また、ボタンの設定って割と簡単なんで、
VBAの入り口としては、始めやすいかと思います。

ボタン機能をコーディングすると、他のコーディングが分かるようになったりします。
VBAを覚えたいけど何から始めればって人にはオススメですね。


今回は、この辺で〆たいと思います。
次回は、実際に作った物を記事にしてみようと思います。

それでは~ (^.^/)))~~~bye!!









この記事へのコメント