はあなたがModule1
と呼ばれるモジュールにこのコードを持って言う:同等のC#コードでVBAではスコープが壊れていますか?
Option Explicit
Private Type TSomething
Foo As Integer
Bar As Integer
End Type
Public Something As TSomething
あなたはSomething
フィールドpublic
を行った場合、コードはもはやので一貫性のないアクセスの、コンパイルう - タイプをフィールド自体はフィールド自体よりもアクセスしにくい。どちらが理にかなっている。
Module2
で、このコードを持つことができます:
Sub DoSomething()
Module1.Something.Bar = 42
Debug.Print Module1.Something.Bar
End Sub
そして、それを入力しているときは、インテリセンスを取得し、それがコンパイルし、それが実行され、それが42
を出力します。
なぜですか? COMの観点からは、どのように機能しますか?言語仕様の一部ですか?
は、モジュール2では、あなたは 'Module1.TSomething'型の変数を定義することができますし、Module1.Something''にそれを割り当てます? –
@SimonForsbergコンパイルエラー(期待どおり) - "ユーザ定義型が定義されていません" ...言い換えれば、型は宣言には使用できません* ... –
Javaがどのように機能するか、この質問はJavaに関するものではありませんが、とにかくです。それは私には意味がありますが、もう一度...私はJavaの男です。 –