勝手に初心者講座。「パートのおばさんにもできたんだからあなたにもできる!やってみよう、VBA!」
前回は、マクロを使える設定とマクロの記録をやりました。
今回は、VBAプログラムを書いてみよう!
です。
- 1.VBAプログラムを書く画面を開く(Bisual Basic Editor:編集画面)
- 2.VBAを入力していく白地の板(メモ帳みたいな)=標準モジュールを作成
- 3.基本!Sub~End Sub
- 4.まずはなんか書いてみよう!
- 5.プログラムを動かしてみよう!
- 6.VBAの基本構文
1.VBAプログラムを書く画面を開く(Bisual Basic Editor:編集画面)
さて、プログラムを・・・どこに書くの?
そう、プログラムを書くところを開きましょう
リボンの開発タグの「Visual Basic」をクリックします。
(「開発」タグがない場合は前回の記事を参考に「開発」タグを表示させてください)
そうすると、こんな画面が開きます。これがエディター(編集)画面です。
「標準モジュール」をクリックして「Modul1」をクリックします。なんかぐちゃぐちゃ書いてあります。これは②の回でマクロの記録をやったときのマクロ「黄色」がVBAコードとして記録されたものです。こうなってるんですね!マクロの記録をすると、勝手にモジュールができて、勝手にVBAのコードが出来上がっているんですね。それにしても、ごちゃごちゃしてさっぱり意味が分かりませんね。。。
2.VBAを入力していく白地の板(メモ帳みたいな)=標準モジュールを作成
では、心機一転、新しい標準モジュールを作成しましょう。
標準モジュールとはVBAを入力していく白地の板、メモ帳みたいなものです。
エディター画面で「挿入」から「標準モジュール」をクリックします。
またはAlt+I+MでもOKです。
またはプロジェクトエクスプローラで右クリックして「挿入」→「標準モジュール」でもOKです。(下の図)
プロジェクトエクスプローラとは、パソコンのファイルやフォルダを選ぶエクスプローラに似ているもので、ModuleとかSheetとかを選択したり、管理したりする部分です。あれ?プロジェクトエクスプローラがない( ゚Д゚)という場合は、上図の緑の点線内のボタンをぽちっとすると出てきます。
3.基本!Sub~End Sub
さて、標準モジュールの挿入をすると「Module2」ができましたね。
真っ白な画面にVBAを書いていきます。
マクロ名は適当に「黄色2」とでもしましょう。
①「Sub」(先頭は小文字でもOK。後で勝手に大文字になってくれる)
② 半角スペース一つ
③「黄色2」
④ かっこ()
を入力 して、エンターキーを押します。
すると
Sub 黄色2()
End Sub
と、勝手に「End Sub」が最後に入力されています。
この Sub から End Sub までが一つのくくりとなります。
一つの実行単位というところでしょうか。一つのプロシージャと言います。
**************************************************************
プロシージャとは英単語で「手続き」という意味だそうです。
ところで、Subって何なんだろう、どうゆう意味合い?と調べてみたところ、
・Subはサブ(メインに対するサブ)のこと
・Subroutine(サブルーチン)の略
・ルーチン(ルーティン)とは「型通りの動作。コンピュータープログラムのうち特定の機能や処理を実装したひとまとまりのコードのこと」
・サブだからメインプログラムの下位のプログラム(ルーチン)のこと。ここでいうメインとはエクセルのプログラム本体のことと思われる。
(※1)
**************************************************************
話はそれましたが、要はVBAを書くときは
Subと入力し、そのあとにプロシージャ名を入力し、そのあとにかっこを入力してエンターを押す。そしてSub~End Subの間にプログラムを書いていきます。
プロシージャ名は日本語でもアルファベットでも大丈夫です。
4.まずはなんか書いてみよう!
まずは、選択しているセルを黄色くするマクロを書いてみましょう。
下のようにタイプしてみてください。
Subと同じ位置ではなく字下げした方があとあとプログラムを見やすいので、字下げしています。Tabキーを押すと半角4文字分字下げされます。
5.プログラムを動かしてみよう!
エクセルに戻って、このプログラムを動かしてみましょう。
左上のエクセルボタンをクリックするとエクセルに戻ります。
さて、いよいよプログラムを実行します。
① 適当にセルをクリックして選択します。
②「開発」タグの「マクロ」をクリックします
③ 先ほど作成した「黄色2」をクリックして選択し「実行」ボタンをクリック
すると~
選択したセルが黄色くなったのではないでしょうか???
なお、エラーメッセージが出たら、なんかまずいところがあってプログラムが実行できなかったもしくは途中でとまったということです。
「デバック」を押すとプログラムのまずい部分が黄色くなっているので、どこが悪いんだ?と見直しをします。
四角いボタンがリセットボタンなので、リセットボタンを押すとマクロの実行が止まります。
6.VBAの基本構文
もう一つ書いてみましょう。
VBAエディター画面に戻ります。開発タグの「Visual Basic」ボタンをクリックするかAlt+F11でエディター画面になります。
先ほどの「黄色2」プロシージャに下のように書き足してみて下さい。
Range(“C6”).Value = 100
セルC6の値を100にするという処理内容です。
そしてエクセルに戻って、どこかのセルを選択して、マクロ「黄色2」を実行してみてください。
選択したセルが黄色くなり、セルC6の値が100になりましたね???
VBAは基本的に
何々を(何かをする対象). どうする
という書き方をします。
何かをされる対象とどうしたいかをピリオドでつなぐ形です。
Range(“C6”).Value = 100
は、
何々を ⇒ Range(“C6”) ⇒ セルC6を
どうする ⇒ Value=100 ⇒ 値を100にする
もっとわかりやすい例で言うと、
Range(“C6”).Copy
は 何々を [セルC6を] どうする [コピーする] です。
なんとなく、「何を」「どうする」とか「何の」「状態を」「どうする」と書く。と頭の片隅に入れておくと、今後プログラミングが書きやすくなると思います。
今回はこんなところで。次回はループ処理や変数などに触れてみたいと思います。
お読みいただきありがとうございました。
おさらい:今回やったこと
・エディター画面の表示方法
・標準モジュールの挿入方法
・プロシージャの書き方の基本(Sub~End Sub)
・マクロ(プログラム)の実行の仕方
・エラーが出た場合は
・VBAの基本の基本の書き方
※1引用元
Excel VBAでsub,dimは何の略? -Excel VBAでsub,dimはそれぞれ何の略で- Excel(エクセル) | 教えて!goo
ルーチン(ルーティン)とは – IT用語辞典 e-Words
やってみよう!VBA!シリーズ
【Excel/VBA】やってみよう!VBA⑤ワークシートの操作
コメント