投稿者 魔界の仮面弁士  (社会人) 投稿日時 2012/6/16 10:38:11
Dim は変数の宣言にしか使えませんが、
Private は、Sub や Function などに対しても使えます。(VB2 などは除く)

変数の仕様に限定してみると、Dim はプロシージャ内では利用できますが(ローカル変数)、
Private はプロシージャの外(クラスやモジュールレベルのフィールド)でしか使えません。

また、変数のスコープ(有効範囲)という点で見た場合の差異もあります。
Dim という宣言の場合、その記述位置によっては、Private 相当のスコープになることもあれば
Public になることもあります。

Public Structure 構造体
    Dim a As Integer    'これは Public a As Integer 
End Structure

Public Class クラス
    Dim b As Integer    'これは Private b As Integer 
End Class


そのため、スコープをわかりやすくするためにも、上記のようなパターンでは
Dim ではなく Private/Public などを使うことが望ましいです。