VBA1000本ノック

コメント


1.文法


Rem あるいは「'」  で始まる行は、コメントです。

2.サンプル


Sub Sub1()

   Rem コメントです
 ' コメントです
 
 Debug.Print ("出力されます")
 
End Sub



識別子のネーミング


1.文法


次のような命名規則がある。

・数字や記号ではじめては、いけない

・アンダースコア以外の記号、空白は利用できない

・長さは、255文字以内

・予約語との重複はダメ

・同じスコープ内での重複利用はできない



VBA 変数宣言の注意


Dim i , j  As Long

だと、iは、varient型になる。

iも、Long にしたい場合、

Dim i As Long , j As Long

と宣言する。




デバグ出力



1.文法


Debug.Print (表示内容)

で、イミディエイトウィンドウに表示されます。

2.サンプル


Sub Sub1()

    Debug.Print ("イミディエイトウィンドウに表示されます")


End Sub

3.実行


実行すると、イミディエイトウィンドウに

イミディエイトウィンドウに表示されます」

が表示されます。



定数の定義



1.文法


Const 

をつけて、変数を定義します。

Const name [ As type ] = value

です。

2.サンプル


Sub Sub1()

    '+-- 定数の定義
  Const X As Integer = 5
  
  Debug.Print (X)

End Sub

3.実行


イミディエイトウィンドウに

5

が表示されます。



 Is演算子


1.文法


Is演算子は、2つのオブジェクトの参照が等しいかを判定する演算子。

object1 Is object2

で、object1とobject2が、同じオブジェクトを参照しているときは、True 、

そうでないときは、False となる。



Nothing


1.文法


Nothingは、オブジェクトへの参照がない状態を表す値。

参照設定がなされていない変数の値は、Nothingとなる。

2.サンプル


Sub Sub1()

  '+-- 宣言のみで参照なし
  Dim c As Collection
  
  Debug.Print (c Is Nothing)
  
  '+-- オブジェクトへの参照
  
  Set c = New Collection
  
  Debug.Print (c Is Nothing)

End Sub


3.実行


イミディエイトウィンドウに

True
False

が表示されます。



リファクタリング


(1)メソッドの抽出


プロシージャを分割する。

(2)コメント


「何をやるか」「どうやるか」ではなく、「なぜ」を記述する。

(3)Arrayを、Ojbectにする


配列の1番目がID、2番目が名前等の構造よりも、Object。


(4)マジックナンバーを、コンスタントに置き換える


(5)条件判定を単純にする


(6)ループをコントロールするフラグをなくす


break や return を利用する。

(7)エラーコードでの処理を、例外に置き換える

(8)変数の宣言を必須にする





ブック中のワークシートの数を取得する


1. 文法


Countプロパティを利用する。

2.サンプル


Sub MySub()
  
  Debug.Print Worksheets.Count
  
End Sub

3.実行結果


シートの数が表示されました。



その他


自動構文チェックをOFFにする



・VBEで、[ツール]-[オプション]-[編集]タグで、ON/OFF切り替えます。

・構文エラーのとき、うっとしい、ダイアログが出ないようにする。

・ただし、構文チェック自体は、動いており、エラーは赤く表示されます。





0 件のコメント:

コメントを投稿

アクセス制御の方式

1.ユーザーベース認証 認証されたユーザー事に アクセス範囲を決める。 2.任意アクセス制御 ユーザーが属するグループに対して、アクセス範囲を決める。 3.強制アクセス制御(MAC) 管理者がすべて権限を付与。オブジェクトの所有者さえ変更できない。 4.ロールベースアクセス制御 ...