2016-08-13 12 views
0

私はこの質問に正しく言いたいと思います。Excel VBA列挙型の定義:メンバー定義が大文字と小文字を区別します

VBA IDEにはこの機能があり、変数名の文字の大文字と小文字が最後に変数名を入力する場合に変更されます。例えば

は、私たちは私がSUBに以下の行で始まったとしましょう:今すぐ

VAR1 = 1 

、私たちは、私は次の行を入力しましょう:

var1 = 2 

全体のサブ今度は:

var1 = 1 
var1 = 2 

私は、Dimステートメントを使用して変数を宣言することでこれをやめることができますt、またはスコープ・ステートメントのいずれかを使用します。

問題: 私はクラスモジュールで列挙型を使用しています。クラスのPublic Propertiesの1つは、Enumに関連付けられています。私はそれを読みやすくするために、メンバー名に特定の文字を大文字にしました(ラクダの場合)。

ユーザーが標準コードモジュールでそのプロパティを設定しているときに、すべて小文字で入力すると、クラスモジュールの列挙型の定義が変更されます。

これを防ぐ方法はありますか?

答えて

2

これを防ぐ方法はありますか?その方法を停止する方法はありますか? は起こっていませんか?

答えは「いいえ」と思われます。長年にわたり、私はそれを立てて、この行動に留意してください。さらに、それは標準モジュールにも適しています。 。

+0

Re:teylyn _ "... Option Explicit ...(あなたはすべきです)... DIM(あなたはすべきです)..." - それは質問に関係していません。そして、それはあまりにも_あなたはすべきではありませんか? ;) – user6698332

+0

OK、私は私の答えを引っ張った。しかし、Option ExplicitとDIMming変数を使うことは、実際には2倍の "should"です。あなたはおそらくすでに知っているでしょう。 – teylyn

+0

私は完全にあなたに同意します、ええ!しかしあなたの(私の)自己に関してのみ - そのようなseveriiesは別の人を混乱させるかもしれません:) – user6698332

2

Option ExplicitおよびDimは、変数名を保護します。しかし、列挙型の値の名前は保護しません。

例:

Option Explicit 

Private Enum MyEnum 
Item1 = 1 
iTem2 = 2 
CamelCaseItem = 3 
End Enum 

Private CamelCaseVariable As Integer 


Sub test() 
Dim myVariable As MyEnum 
myVariable = Item1 + CamelCaseItem 
'myVariable = camelcaseitem 
Debug.Print myVariable 

'camelcasevariable = 3 
End Sub 

あなたが'myVariable = camelcaseitemのコメントを解除した場合、値名CamelCaseItemのレターケースが列挙宣言内に変更されます。 のコメントを外すと、この行の大文字小文字は変更されますが、宣言では変更されません。

関連する問題