ExcelVBA入門第1回 動かしてみる

それでは、簡単なプログラムを書いて動かしてみましょう。「難しそう」という固定概念はとりあえず置いておいて、図の通りにやってみましょう。簡単ですよ!
プログラムは、Visual Basic Editorに書きます

まずは普通にExcelを開いて、[ツール]→[マクロ]→[Visual Basic Editor]を選びます。[Alt]+[F11]キーでも開きますので、そちらを覚えると圧倒的に楽です。

[Microsoft Visual Basic]という画面が立ち上がります。これは、先ほどのExcelと連動しているので、こちらにプログラムを書くことで先ほどのExcelに結果を反映することができます。
まだ何も無い状態なので、[挿入]→[標準モジュール]を選択して、新しいモジュール(プログラムを書く場所)画面を作成します。

さあ、プログラムを書いてみましょう!まずは初めてなので、以下のコードをコピー&ペーストしてみてください。
——-↓これがコード↓———-
Sub test() Range("A1") = 100 End Sub
——-↑ここまで↑————–
「Sub ~ End Sub」で、VBAでのひとつの処理単位になります。(プロシージャと呼びます。)VBAでは、Excelのセルのことを[Range](意味:範囲)と書きます。上記はこんな感じの意味になります。
Sub test() '「test」というプロシージャです Range("A1") = 100 'A1セルに100を入れます End Sub 'おしまい
ちなみに、ショートカットの使用を猛烈にお勧めします。VBAに限らずPC操作全般に使えますので、プログラムは諦めてもショートカットは覚えて損はありません!
- コピー → [Ctrl]+[C]
- ペースト → [Ctrl]+[V]
- 切り取り → [Ctrl]+[X]
- 画面切り替え(ExcelとVisual Basic Editorの行き来など) → [Alt]+[Tab]
今までPC苦手だった方がショートカットをタタン!とやったら超カッコイイですよ!
Excel画面に戻ってプロシージャを動かしてみます
コードは書き終わりましたので、[Alt]+[Tab]でExcel画面に戻りましょう。先ほど書いたプロシージャは、起動するきっかけを作ってあげなければ動きません。

スタンダードな方法は、Excel画面上で[Alt]+[F8]キーを押すと出てくるこの画面で、プロシージャ名を指定して[実行]ボタンを押すのですが、個人的におすすめな方法をご紹介します。

[表示]→[ツールバー]→[フォーム]で、[ボタン]を選択します。
追記:Excel2007以降は[ファイル] → [オプション]で

[リボンのユーザー設定] → [開発]にチェックで、[開発タブ]を出して、

[開発タブ] → [挿入] → フォームコントロールの[ボタン] です。

適当な場所に右下へ向かってクリック&ドラッグするとボタンが作成され、[マクロの登録]というウインドウが開きます。
ここで、先ほどVisual Basic Editorへ書いた[test]というプロシージャが候補として挙がっているはずです。それを選択し、[OK]を押します。これでこのボタンが、[test]というプロシージャの起動ボタンになりました。

ボタン上で右クリックするとボタン上の名前を変えることができます。分かりやすい名前に変えておきましょう。(ここではプロシージャ名と同じ[test]にしました)
さあ、ではそのボタンを押してみて下さい。A1セルに[100]が入ったら成功です!おめでとうございます!
初めてのプログラミング、いかがだったでしょうか?「出来たは出来たけど、セルに100とか入るだけじゃ役に立つ気がしない」と思うかもしれませんが、これが第一歩です。複雑そうなプログラムも、全て1文1文は簡単な命令から出来ていますから、これを積み重ねていけば良いわけです。もしちょっと楽しいと思えてきたら、次のステップに進んでみてください。
ほかの入門記事はこちら
- ExcelVBA入門第0回 始める前に
- ExcelVBA入門第1回 動かしてみる
- ExcelVBA入門第2回 とりあえず覚えておくべきこと
- ExcelVBA入門第3回 変数の宣言
- ExcelVBA入門第4回 RangeとCells
- ExcelVBA入門第5回 ステップ実行
- ExcelVBA入門第6回 If ~ End Ifステートメント
- ExcelVBA入門第7回 インデントとコメントアウト
- ExcelVBA入門第8回 繰り返し処理
- ExcelVBA入門第9回 5種類のモジュールの違い
- ExcelVBA入門第10回 3種類のプロシージャと命名規則
- ExcelVBA入門第11回 スコープ(適用範囲)
- これからExcelのマクロを始めたいという方に!簡単な練習問題作りました。
- 私がExcelVBAでよく使う便利なコード・スニペットまとめ
- プログラム初心者さんへ贈る、エラーが起きたら試してみて欲しいこと
- ExcelVBAのクラスモジュールって何?という人向けの使い方まとめ
書籍を執筆しています。

コメントは承認制ですので、反映までしばらくお待ち下さい。(稀にスパムの誤判定にて届かないこともあるようですので、必要な際はお問い合わせからお願い致します。)
YouTubeでQ&Aコンテンツを企画しています
運営しているYouTubeチャンネルで、ご相談やご質問を募集しています。動画のコメントやお問い合わせページからお気軽にご相談をお寄せください。