私は学生時代からエクセルが苦手(食わず嫌いなところがあると思いますが...)で勉強するのを避けてました。個人で何かする場合はPythonなどで何とかできるのですが、会社などで何かするとなった場合、やはりVBAのほうが使い勝手がいい場面があるため、今回勉強しました。
私の環境は下記の通りです。
OS:Windows 11
エクセル:Microsoft® Excel® 2021
VBAを始める準備
VBEは最初からインストールされていると説明しましたが、デフォルトの設定では使えません。ここではVBEを使えるようにする初期設定を紹介します。
まず初めにファイルを押下します。
一番左のメニュー画面にある"オプション"を押下します。
そのあと、"リボンのユーザー設定"→メインタブより"開発"にチェックを入れますこれでリボンタブに"開発"タブが表示されるようになりました。
開発タブに行くと下記の"Visual Basic"という項目があるためこれを押下するとVBEを開くことができます。(Alt+F11でも開くことができます。)
Visual Basicを開くと下記のような画面が開き、ようやくスタートラインに立つことができました。
VBAでHello Worldを記述する
それではHellow Worldを記述していきます。VBAでは下記のようにSubとEnd Subの間に実行したいことを記述します。書き方はシンプルでSubの後にプロージャー名(処理の塊程度に理解してください。)と()を記載します。
プロージャー名を書いたら次の行に処理を記載します。C言語などの場合は処理の終わりにセミコロン;を入れて処理の終わりを記述しますが、VBAの場合は1行で1つの処理を記述します。(長くなった場合、_を使うことで複数行またいだ記述はできますが、ここでは紹介しません)このあたりの書き方は最近流行りのPythonと似てますね。
Sub プロージャー名()
処理
End Sub
VBAの場合はプロージャー名は一般的にキャメルケースで記述することが多いみたいです。
(知らない人向けの捕捉になりますが、キャメルケースはHelloWoldのように単語の先頭を大文字で記述する命名規則のことを言います。パスカルケースという場合もあるみたいですが、詳細はこちらの記事を参考にしてください。)
前置きが長くなってしまいましたが、ここからHello Worldのサンプルプログラムを作成していきます。
Sub HelloWorld()
MsgBox "Hello World!" 'メッセージボックスを使ってHello World
End Sub
今回はプロージャー名をHelloWorldにしました。ここで紹介ですが、VBAの場合はコメントはシングルクォーテーション'の後に記述します。上記の場合、'メッセージボックスを使ってHello Worldという記載はコメントのため、プログラムには一切影響を与えません。
それでは記述が終わったらこれを実行します。実行の仕方は先ほどの画面でF5を押下するか、下記赤枠で囲んだ再生マークを押下してください。
- 先頭に数字や記号、スペースを使っていないか(例えば、1HelloWorldなど)
- 全角、空白、記号、特殊文字などプロージャー名として使えない文字列が途中に入ってないか?(例えばHello Worldなど途中にスペースがないか)
- VBAが予約語として確保している文字列(例えばSubやFunctionなど)を使ってないか?
MsgBoxの書き方が適切か?
紹介し忘れてましたが、VBAの場合、文字列を記述する場合はダブルクォーテーション""で文字列を囲みます。文字列を""で囲んでいるか確認してみてください。
他にもMsgBoxの次に全角スペースが入っているなどがあると思い、試しましたが実行時にVBEの方で適切に修正してくれる挙動をしてました。問題はないものの普段から注意をしておくと何かトラブルがあった際に気が付くことができると思います。
0 件のコメント:
コメントを投稿