アクセス上位ページ
 
最近の更新内容
(1)-g.プロシージャ ⇐ [PREV]
[NEXT] ⇒ (1)-i.プロシージャの引数

Excel VBA ≫ 1.基礎編 - はじめに(1)-h.プロシージャの記述

【ページ内リンク】

プロシージャの記述方法

Sub プロシージャ

すべての処理はこのSubプロシージャから始まります。 Subプロシージャを作成するには標準モジュールなどのコードウィンドウを開いて以下のように記述します。 【構文】
Sub [プロシージャ名]()
   :
(処理を記述)
   :
End Sub





プロシージャ名には半角英数字やアンダースコアのほかに日本語(全角)も指定することができます。 但し、プロシージャ名の先頭に数字とアンダースコアを指定することはできません。

それでは実際にSubプロシージャを記述してみましょう!
  1. まず、これからサンプルマクロがいろいろでてくるので、サンプル用に標準モジュールを追加しておきます。 メニューの [ 挿入 ] ⇒ [ 標準モジュール ] を選択。
  2. 標準モジュールを追加
  3. 標準モジュールが追加されます。
  4. 標準モジュールが追加された様子
  5. 追加された標準モジュールが選択されていることを確認してから、 プロパティウィンドウのオブジェクト名を変更します。 新しいオブジェクト名を入力したら [ Enter ] キーを押下します。
  6. 標準モジュールのオブジェクト名変更
  7. するとプロジェクトエクスプローラ上のモジュール名も変更されます。 今後のサンプルマクロはこのモジュールに追加していくようにします。 この"sample用"モジュールをダブルクリック (または 右クリック ⇒ [ コード表示 ] )し、コードウィンドウを開きます。
  8. プロジェクトエクスプローラ上のモジュール名変更
  9. コードウィンドウにプロシージャ名まで入力したらEnterキーを押下します。
  10. コードウィンドウにプロシージャ名を入力
  11. すると、VBEには補完機能がありますので、カッコと"End Sub"が自動的に入力されます。
  12. VBEによる補完機能
  13. ここでは例として、Subプロシージャ内にメッセージボックスを表示するコードを記述します。
  14. Subプロシージャ内にコードを入力
  15. 最後まで入力してから、カーソル位置を変えると"M"と"B"が自動的に大文字になります。
    これは"MsgBox"という組み込み関数が元々存在するため、"msgbox"は"MsgBox"のことだと判断されたためです。
  16. VBEによる関数名チェック機能
  17. マクロを実行してメッセージボックスが表示されることを確認します。
  18. サンプルマクロ実行結果
管理人から一言・・・ プロシージャの分割
プロシージャが小さいうちは考慮する必要はありませんが、ある程度大きく(コメントを除いて100行以上)なったらプロシージャを分割することを考えましょう。プロシージャを適度に分割することでプログラムの可読性や、メンテナンス性が向上します。

Function プロシージャ

記述の仕方は基本的にSubプロシージャと全く同じです。ただ、Functionプロシージャは戻り値を設定することができるので、 その戻り値のデータ型を指定する必要があります。データ型を省略した場合はバリアント型となります。 (⇒ (3)-a.データ型と変数の宣言

戻り値とはプロシージャ内で処理した結果、呼び出し元へ戻す値のことです。呼び出し元はこの値を使用してさまざまな処理を行うことができます。

また、Functionプロシージャにはその処理構造上何かしらの引数を指定することになると思います。 (引数を指定しなくてもエラーにはなりません)
引数のあるFunctionプロシージャ(およびSubプロシージャ)はこれ単体では実行することはできませんので、 必ず他のプロシージャから呼び出して使用することになります。

【構文】
Function [プロシージャ名]( [引数], … ) as [データ型]
   :
(処理を記述)
   :
End Function

カテゴリ内ページ



Page
Top