2012
1
22

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

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


プログラムは、Visual Basic Editorに書きます

120122-1

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

Excel2007以降は[開発]というタブから行くのですが、こちらも[Alt]+[F11]キーで開きますので、そちらで覚えてしまいましょう。こちらもわかりやすいですー!
120122-2

[Microsoft Visual Basic]という画面が立ち上がります。これは、先ほどのExcelと連動しているので、こちらにプログラムを書くことで先ほどのExcelに結果を反映することができます。

まだ何も無い状態なので、[挿入]→[標準モジュール]を選択して、新しいモジュール(プログラムを書く場所)画面を作成します。

120122-3

さあ、プログラムを書いてみましょう!まずは初めてなので、以下のコードをコピー&ペーストしてみてください。

——-↓これがコード↓———-

——-↑ここまで↑————–

「Sub ~ End Sub」で、VBAでのひとつの処理単位になります。(プロシージャと呼びます。)VBAでは、Excelのセルのことを[Range](意味:範囲)と書きます。上記はこんな感じの意味になります。

ちなみに、ショートカットの使用を猛烈にお勧めします。VBAに限らずPC操作全般に使えますので、プログラムは諦めてもショートカットは覚えて損はありません!

  • コピー → [Ctrl]+[C]
  • ペースト → [Ctrl]+[V]
  • 切り取り → [Ctrl]+[X]
  • 画面切り替え(ExcelとVisual Basic Editorの行き来など) → [Alt]+[Tab]

今までPC苦手だった方がショートカットをタタン!とやったら超カッコイイですよ!

Excel画面に戻ってプロシージャを動かしてみます

コードは書き終わりましたので、[Alt]+[Tab]でExcel画面に戻りましょう。先ほど書いたプロシージャは、起動するきっかけを作ってあげなければ動きません。

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

120122-4

[表示]→[ツールバー]→[フォーム]で、[ボタン]を選択します。

追記:Excel2007以降は[ファイル] → [オプション]で

120122-7

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

120122-8

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

120122-5

適当な場所に右下へ向かってクリック&ドラッグするとボタンが作成され、[マクロの登録]というウインドウが開きます。

ここで、先ほどVisual Basic Editorへ書いた[test]というプロシージャが候補として挙がっているはずです。それを選択し、[OK]を押します。これでこのボタンが、[test]というプロシージャの起動ボタンになりました。

ショートカットで起動する方法もあります。
120122-6

ボタン上で右クリックするとボタン上の名前を変えることができます。分かりやすい名前に変えておきましょう。(ここではプロシージャ名と同じ[test]にしました)

さあ、ではそのボタンを押してみて下さい。A1セルに[100]が入ったら成功です!おめでとうございます!

初めてのプログラミング、いかがだったでしょうか?「出来たは出来たけど、セルに100とか入るだけじゃ役に立つ気がしない」と思うかもしれませんが、これが第一歩です。複雑そうなプログラムも、全て1文1文は簡単な命令から出来ていますから、これを積み重ねていけば良いわけです。もしちょっと楽しいと思えてきたら、次のステップに進んでみてください。

  • このエントリーをはてなブックマークに追加
  • follow us in feedly 641
  • RSSを登録

公開日:2012/01/22
更新日:2015/01/06


コメントを残す




*印は必須項目です。コメントは承認制ですので、反映までしばらくお待ち下さい。(稀にですがスパムの誤判定にて届かないこともあるようですので、必要な際はお問い合わせからお願い致します。)


back to top