VBA入門 (e4a)


ここではボタンを押すと特定の文字列をセルに入力できるVBAを説明します
マクロの自動記録を学びたい場合は → (e4b) マクロの自動記録


(1) [表示(V)]メニュー → [ツールバー(T)] → [コントロールツールボックス] を選択します

ワークシートが表示されている状態で [表示(V)]メニュー → [ツールバー(T)] → [コントロールツールボックス] を選択すると、下のようなツールバーが表示されます


(2) 青い丸でかこまれた(コマンドボタン)を一度クリックしてから、ワークシート上をドラッグします

下のようになります

コントロールツールボックスの[三角定規]がへこんだ状態になります、
これが デザインモード の状態です。この状態でコマンドボタンを選択したり、
ボタンの位置を移動したり、ボタンの見出しを変更したりできます。

もう一度三角定規をクリックすると
コントロールツールボックスの[三角定規]がへこんでない状態になります、
これが デザインモードから抜けた 状態でコマンドボタンを押すことができます。


(3) デザインモードにしてからワークシート上に作ったCommandButton1 をダブルクリックします

下のような画面が表示されます。これがVBE(Visual Basic Editor)の世界です
VBAさんこんにちは、お手柔らかに

ここで記憶しておいてほしいのは、青いところに[Sheet1(コード)]と書いてあることです。
ここに書いたVBAコードはあくまでこのSheet1上でしか使えません。

ここにCommandButton1_Click と書いてあるのはCommandButton1 が押されたときに
このプロシジャーに飛んできますという意味です


(4) 右側のシート上にこれからコードを書きます。赤い文字のところだけ自分でコードを打ち込みます

Private Sub CommandButton1_Click()

selection.value = commandbutton1.caption

End Sub

半角英数字で、一文字たりとも間違ってはだめです、プログラミングの世界は厳しいのです。



(5) 正しく入力できると、Enterキーを押した後、下のようになります

そうです、VBAは賢いので、VBAキーワードの先頭を大文字に変えてくれます。

Private Sub CommandButton1_Click()

Selection.Value = CommandButton1.Caption

End Sub

意味は:CommandButton1 につけられた[見出し]の内容を 選択されたオブジェクトの値に入れなさい、という意味です。

SelectionはApplication が現在選択しているオブジェクトをさすプロパティ(属性、情報)。

Value はオブジェクトが持つ[値]というプロパティ。

Caption はCommandButton1 が持つ[見出し]というプロパティ。

(Captionなどキーワードをクリックしてから[F1]キーを押してヘルプを呼び出せます)


(6) VBEの世界で[デバッグ(D)]メニューの[VBA Projectのコンパイル]を選択します

ここでエラーが表示されたら、どこか間違っています。コードをよく見直してください。


(7) これでVBAコードは準備できました、VBEの世界の青いタイトルの右端にある

×印(閉じる)をクリックしてワークシート側に戻りましょう。


(8) ワークシート側でコントロールツールボックスの三角定規がへこんでいたら、三角定規を一度クリックします

これでデザインモードから抜けることができます。

セルC3を選択してから、CommandButton1を押してみてください。

セルC3に『CommandButton1』という文字列が入力されます。

これで第一段階は成功です。


(9) 三角定規をもう一度クリックしてデザインモードに入り、CommandButton1をクリックしてから
三角定規のすぐ右にある[プロパティ]をクリックします

プロパティの中のCaptionのところが『CommandButton1』になっているのでこれを
『エクセルの学校』に変更します。

これで『セルを選択してからボタンを押したところに自分が決めた文字列が入力できた』ことになります。

これも立派なVBAマクロです。


(10) お疲れさまでした

簡単な例で、説明してきましたが、VBAというものが少し身近に感じれるようになると良いのですが


2020/12/19:更新 2003/12/11:登録 訪問者: カウンタ Valid HTML 4.01 Transitional