VBエディタの基本操作

VBE(ビジュアル・ベーシック・エディター)とは、Excelに搭載されているVBAを操作するための専用のエディタです。

VBAとは、Microsoft者のVisual Basic(VB)の言語使用に基づき、Windows環境での開発を行うためのプログラム言語です。
OFFICE製品で使用することが出来ます。

VBEの概要

VBE(ビジュアルベーシックエディター)の起動
マクロを自動記録に拠らず、直接入力する場合やマクロを編集する場合に使用します。

VBEの起動方法。
メニューバーの「ツール」「マクロ」「Visual Basic Editor」をクリックします。
(ショートカットキーは、「Alt」+「F11」

「ツール」「マクロ」「Visual Basic Editor」を選択します。
VBEが起動したら、
「挿入」「標準モジュール」を選択します。
「Module1」という標準モジュールが追加されます。

@プロジェクトウィンドウ
 マクロ、ワークシート、グラフシートなどをオブジェクトとして格納し、ツリー構造で、確認できます。

Aプロパティウィンドウ
 各オブジェクトのプロパティを表示したり、設定をしたりすることが出来ます。
 各オブジェクトは、プロパティ(属性)を持ち、プロパティウィンドウで値を入力することで設定をすること が出来ます。

Bコードウィンドウ
 コードウィンドウで、マクロを表示したり、入力、修正することが出来ます。
 マクロとマクロの間に水平線が表示されます。

 ※水平線を非表示にするには、
  「ツール」「オプション」「編集」タブ「プロシージャの区切線」をオフにします。

[プロジェクトウィンドウ]

Sheet(シート)・・・・・・ワークシート 表計算のシートです。


UserForm(ユーザーフォーム)・テキストボックス、コマンドボタン、コンボボックスなどのコントロールを利用できます。

Module(モジュール)・・・・・・マクロが保存されているオブジェクトになります。
各ワークシート、グラフシート、フォーム、モジュールで、実行することが出来ます。

Class(クラス)・・・・・・・マクロが保存されているオブジェクトになります。
Moduleと異なり、マクロが実行できるブックなどの適用範囲が決められており、範囲外では使用することが出来ません。


オブジェクト とは?

VBAでは、

◆操作の対象となるものを言います。
例えば ブック、シート、セルなどがあり、これがオブジェクトです。

上記のようにオブジェクトとは、「もの」をオブジェクトとして考えるという事です。
(もの・・・・・>例えば、ブックやシートやセルのことを言います。)

VBAの各オブジェクト



オブジェクトのコレクション
ワークシートを表すWorksheetオブジェクトが集まり、Worksheetsコレクションになります。

複数のオブジェクトの中から1つを指定する場合
-----------------------------
■ 構文  コレクション(”名前”)
-----------------------------
Worksheets(”Sheet1”)・・・・・・・・・>ワークシートの中からSheet1を指します。
Range(”D5”)・・・・・・・・・・・・・・・・>セルの中から「D5」を指します。

オブジェクトの階層構造
VBAでは、各オブジェクトが親子関係を持っています。

Application アプリケーション(ここでは Excelのこと)
   Workbook   ワークブック
      Worksheet   ワークシート
        Range       セル

指定方法は、
上位の階層からピリオドで、区切って指定します。
Application.Workbooks("Book1.xls").Worksheets("Sheet1").Cells(1,1)

意味は、Excelワークブック名「Book1.xls」の中のワークシート「sheet1」にあるセル「A1」を指します。

メソッドとは?

メソッドは、オブジェクトに対して実行できる動作や命令を表します。
例えば「追加する。 削除する。 開く、閉じる」などの動作や命令をいいます。
------------------------
■構文  オブジェクト.メソッド
------------------------

下の場合 意味は「Sheet1を削除します。」となります。
Deleteは、「削除する」というメソッドになります。
Worksheets(Sheet1).Delete

引数を使ってメソッドの動作を細かく指示することもできます。
--------------------------------
■構文 オブジェクト.メソッド 引数   -------→メソッドと引数の間には半角スペースが入ります。
--------------------------------

●名前付き引数で、指定する場合
引数の後ろに:=(コロン、イコール)を入力して指定します。
--------------------------------------------------
メソッド A:=設定値、B:=設定値、C:=設定値、D:=設定値
---------------------------------------------------

Aに100、Bに200を設定する場合
メソッド A:=100、B:=200

※このようにメソッドに対して「何を」「どのように」とより細やかな指示をするときには、メソッドの後ろに「引数」を付けます。

PrintPreview メソッド
対象とするオブジェクトの印刷プレビューを実行します。
-----------------------------------------
構文 オブジェクト.PrintPreview
------------------------------------------

BorderAround メソット
セル又はセル範囲の周囲に罫線を引きます。
------------------------------------------------------
構文
オブジェクト.BorderAround(LineStyle、Weight、ColorIndex、Color)
------------------------------------------------------

オブジェクト
セル範囲を指定します。
引数1  LineStyle
罫線の種類を指定します。省略可能
引数2  Weight
罫線の太さを指定します。省略可能
引数3  ColorIndex
罫線の色をカラーパレット内の番号で指定します。省略可能
引数4  Color
罫線の色をRGB値で指定できます。省略可能

引数1と引数2、引数3と引数4は、どちらか一方を選択します。

Close メソッド
◆ブックを保存して閉じる(確認メッセージを表示しない
  ActiveWorkbook.close SaveChange:=True

◆ブックを保存しないで閉じる(確認メッセージを表示しない
  ActiveWorkbook.close SaveChange:=False

Save メソッド
◆Bookを上書き保存する。
ActiveWorkbook.Save

◆Bookを名前を付けて保存する
ActiveWorkbook.SaveAs Filename:="ABC.xls"・・・・・・・場所を指定しないとカレントフォルダに保存されます。

Select メソッド
◆全ワークシートを選択する
Worksheets.Select

◆複数のシートを選択する。(Sheet(1)とSheet(3)を選択する。)
Worksheets(Array(1,3)).Select

Addメソッド
◆新規ワークシートを挿入する。
Worksheets.Add

Openメソッド
◆保存されているブックを開く
Workbooks.Open FileName:="C:\Excel2002\VBA練習.xls"   又は
Workbooks.Open "C:\Excel2002\VBA練習.xls 
オブジェクト.メソッド :=開くブックの保存場所

※カレントフォルダのブックを開くときは、ドライブ名やフォルダ名を指定する必要は無い。
※カレントフォルダは、「ツール」「オプション」「全般」タブの中にカレントフォルダ名を確認することが出来る。

マクロを使ってカレントフォルダを変更する場合は、「ChDir」を使用する。
「例」 ChDir"C:\Excel2002"

プロパティとは?

※オブジェクトには「属性」があります。属性は、「特徴」と言い換えたほうがわかり易いかもしれません。

プロパティは、オブジェクトの持つ特徴や値などを言います。
プロパティに値を代入することで、各設定を行うことが出来ます。

----------------------------------------------
構文:オブジェクト.プロパティ = 設定値  ---------→「=」の前後には半角スペースが入ります。
------------------------------------------------
また、プロパティから戻される値を変数に代入することによって値を取得することも出来ます。

Range(”B4”).Interior.ColorIndex=6    
----------------------------------------------
構文:変数 = オブジェクト.プロパティ     ---------→「=」の前後には半角スペースが入ります。
-----------------------------------------------

ActiveSheet プロパティ
現在アクティブになっているシートを返します。

Activesheet.PrintPreview

Selection プロパティ
現在選択中のセル、セル範囲を返します。

Borders プロパティ
オブジェクトの輪郭を返します。()内で指定した引数のとおり罫線を引きます。
------------------------------------------------------------
構文
オブジェクト.Borders(引数)
-------------------------------------------------------------

引数
xldiagonalDown 右下がりの斜線を引きます。
xldiagonalUp 右上がりの斜線を引きます。
xlEdgeBottom セルの下側に線を引きます。
xlEdgeLeft セルの左側に線を引きます。
xlEdgeRight セルの右側に線を引きます。
xlEdgeTop セルの上側に線を引きます。

Visible プロパティ
対象となるオブジェクトの表示、非表示を切り替えます。
設定値をTrueにすると、オブジェクトが表示され、Falseにすると非表示になります。
----------------------------------------------------
構文
オブジェクト.Visible=設定値
--------------------------------------------------------

DisPlayAlertsプロパティ

確認・警告メッセージを非表示にします。
-------------------------------------------------------
Application.DisPlayAlerts = False
Worksheets(”sheet1”).Delete
Application.DisPlayAlerts = True

モジュール とは?

マクロが保存される モジュールは、専用のシートにマクロを記述し、まとめて管理します。

※モジュールは、マクロを記録する為の専用のシートです。

モジュールの新規作成

  1. Excelを起動して、新規ブックを開きます。

  2. 「ツール」「マクロ」「Visual Basic Editor」をクリックして
    VBエディタを起動し、メニューバーから「挿入」「標準モジュール」をクリックします。





  3. すると「Module1]が挿入されます。

モジュール名の変更 Fo55

  1. プロジェクトウィンドウの「Module1]をクリックし、
  2. プロパティウィンドウの「全体」タブをクリックし、「納品書」と入力し「Enter]をクリックします。

モジュールの削除

Module1を右クリックします。
ショートカットメニューから「Module1の開放」をクリックします。
ダイアログボックスが表示されます。「いいえ」をクリックします。
「Module1」が削除されます。

         

記録したマクロの保存先は・・


  マクロ記録で、新しくマクロを作成すると、新しいモジュールが作成されます。
  ただし、一度ブックを閉じると新規に別のモジュール「MOdule2」が作成されます。

プロシージャ とは?

VBAでは、プログラムの最小単位をプロシージャと呼びます。
「Sub 〜」から「End Sub」までが1つのプロシージャになります。

又、プロシージャは、ステートメントの集まりです。

※プログラムは、1行づつ作成されており、その1行のことを「ステートメント」と呼びます。

●プロシージャの種類

  1. Sub プロシージャ
       値を返さない、実行型のプロシージャです。
       マクロの記録を使用した場合は、Subプロシージャで、作成されます。
    ・・・・・・・・・・・・・・・・・・・・・・
    Sub プロシージャ名()

    Sub End
    ・・・・・・・・・・・・・・・・・・・・・・・

  2. Function プロシージャ
      Function プロシージャは、値を返すプロシージャです。
      又、Function プロシージャは、独自の関数を作成することが出来ます。

「Syohizei」プログラム プログラムの内容
 Function Syohizei(zei As Integer)

  Syouhizei = zei * 0.05

End Function
消費税の金額を、計算するFunction プロシージャ

Syouhizei という関数を作成するFunction プロシージャの開始
  ※この関数の引数「zei 」は、整数で設定することを宣言する。
Syouhizeiに引数 zei に与えられた整数0.05を掛けたものを代入する。

Functionプロシージャ終了