この質問 How to access textBox placed on sheet in VBA module?Excel-VBA:ワークシートに配置されたコントロールの奇妙な動作。バグですか?
に答えながら、私はワークシート上TextBox
Developer --> Insert --> ActiveX Controls
からタブを追加し、Worksheet
型変数を使用してVBA
にそのコントロールにアクセスしようとするのであれば、VBA
は、そのコントロールを発見するために失敗したこの出くわしました。しかし、私がワークシートのCodeName
を使用するとうまくいきます。また、バリアント型を使用してワークシートを割り当てても、コードは正常に動作します。
私が何か間違っているのか、それともバグかだけを理解しようとしています。
あなたはワークシート型の変数を使用する場合、ExcelがVBA
にそのシート上のコントロールを発見するために失敗しました。したがって、シート変数をObject/Variantとして宣言すると、コードは正常に動作します。
他の代替は、あなたがすべてのオブジェクトをVBA IDEのプロパティグリッドでwksDBSheetとしてワークシートの名前を設定して、あなたのコードで、それがテキストボックス
あなたは 'activex'をタグ付けされたが、' MSForms'コントロールを持っています。 –
@ScottHoltzmanそのActiveXは、開発者 - >挿入 - >フォームコントロールの 'TextBox'コントロールは不一致です。それを挿入することはできません。 – cyboashu
これは 'Set objDBsheet = Application.Worksheets("データベース情報 ")が間違っているようです。同じ名前のワークシートで2つの異なるワーキングブックを開くことができると想像してください。私は使用します: 'ThisWorkbook.Worksheets(" TheNameOrIndex ")' –