トップ回答者
Microsoft.VisualBasic名前空間の関数について

質問
-
環境
OS:WinXP Pro SP3
言語:VisualBasic2008ExpressSP1これまで問題なく利用していたのですが、いつのまにやら以下の状態になっていました。
症状
windowsフォーム・ユーザコントロール内のプロシージャで
Left・Right関数が完全修飾しないと使えなくなっていた。例)
Msgbox(Microsoft.VisualBasic.Left("test",2)) > OK
Msgbox(Left("test",2)) > エラー
エラー一覧の説明:'Public Property Left() As Integer' には引数がないため、戻り値の型をインデックス化できません。
コントロールのLeftプロパティとして認識されてしまい、インテリセンスの一覧に関数のLeftが出てこないのです。MyProject、参照タブのインポートされた名前空間では、Microsoft.VisualBasicにチェックがされています
モジュール先頭で名前空間をインポートしてみましたが駄目でした。
Imports Microsoft.VisualBasic > ×
Imports Microsoft.VisualBasic.Strings > ×mid・msgbox関数等は、完全修飾せずに利用できています。
※標準モジュール・クラスモジュール内では、完全修飾せずともインテリセンスの一覧に表示され利用できています。
どなたか助言をいただけると助かります。
よろしくお願いします。
回答
-
MAHAMAN さんからの引用 環境
OS:WinXP Pro SP3
言語:VisualBasic2008ExpressSP1これまで問題なく利用していたのですが、いつのまにやら以下の状態になっていました。
以前のバージョン(Visual Basic 2005)でも同じですよね?
MAHAMAN さんからの引用 症状
windowsフォーム・ユーザコントロール内のプロシージャで
Left・Right関数が完全修飾しないと使えなくなっていた。例)
Msgbox(Microsoft.VisualBasic.Left("test",2)) > OK
Msgbox(Left("test",2)) > エラー
ControlのLeftプロパティを参照してしまうからでしょうね。
あまり長いのが不便であれば、エイリアスを付けるか、
Substringを使用するとか
-
>以前のバージョン(Visual Basic 2005)でも同じですよね?
vb2005はインストールしてあるのですが、
ほとんど利用しておりませんでした。
で、試しに同じようにテストしてみたところ
同じ結果になりました。>ControlのLeftプロパティを参照してしまうからでしょうね。
>あまり長いのが不便であれば、エイリアスを付けるか、
>Substringを使用するとかそうですね、エイリアスを付けて使うことにします。
ありがとうございました。
これまで同じシチュエーションに遭遇しなかったことに驚きました。
VB6の時は、Left$とか頻繁に使ってたのに (笑
すべての返信
-
MAHAMAN さんからの引用 環境
OS:WinXP Pro SP3
言語:VisualBasic2008ExpressSP1これまで問題なく利用していたのですが、いつのまにやら以下の状態になっていました。
以前のバージョン(Visual Basic 2005)でも同じですよね?
MAHAMAN さんからの引用 症状
windowsフォーム・ユーザコントロール内のプロシージャで
Left・Right関数が完全修飾しないと使えなくなっていた。例)
Msgbox(Microsoft.VisualBasic.Left("test",2)) > OK
Msgbox(Left("test",2)) > エラー
ControlのLeftプロパティを参照してしまうからでしょうね。
あまり長いのが不便であれば、エイリアスを付けるか、
Substringを使用するとか
-
>以前のバージョン(Visual Basic 2005)でも同じですよね?
vb2005はインストールしてあるのですが、
ほとんど利用しておりませんでした。
で、試しに同じようにテストしてみたところ
同じ結果になりました。>ControlのLeftプロパティを参照してしまうからでしょうね。
>あまり長いのが不便であれば、エイリアスを付けるか、
>Substringを使用するとかそうですね、エイリアスを付けて使うことにします。
ありがとうございました。
これまで同じシチュエーションに遭遇しなかったことに驚きました。
VB6の時は、Left$とか頻繁に使ってたのに (笑