- 締切済み
「名前'imgMap'は宣言されていません。」というビルドエラーが・・・
VS2003.NETで開発中です。 「名前'imgMap'は宣言されていません。」というビルドエラーがimgMapの箇所で発生します。 しかし、サンプルコードやテキストには、どこにも宣言らしきものが必要とは書かれていないのですが、どのような宣言が必要なのでしょうか? ご教授いただけると助かります。 ----------------------------- ・ ・ ・ For Each oRowUSER In oDSUSER.Tables("USER").Rows imgMap.Add(CStr(oRowUSER("USER")).Trim, System.Drawing.Bitmap.FromFile("..\images\" & CStr(oRowUSER("USER")).Trim & ".gif")) Next ・ ・ ・ -----------------------------
- みんなの回答 (2)
- 専門家の回答
みんなの回答
- LucyDiamond
- ベストアンサー率48% (21/43)
ソースコードを見る限り"imgMap"はオブジェクト変数ですから、「必要」と書かれていなくても宣言は必要です。 (1)Dim imgMap As New ○○○ とか (2)Dim imgMap As ○○○ Set imgMap = New ○○○ のような記述が必要となります。(○○○にはオブジェクト名が入ります。)また、プロジェクトの設定としてアーリーバインディングも必要かと思われます。 どのようなオブジェクトを使用されているのかが分からないので、申し上げられるのはここまでです。
- BIGT
- ベストアンサー率42% (12/28)
最近、似たような質問があったようです。
お礼
ありがとうございます。 この質問は私が過去にしたものです。 今回のエラーは、この質問の内容とは違うものです。
補足
自己解決しました。 ImageMapについてヘルプなどを調べまくっていたら、下の記述をしている解説を見つけたので、試しにこの宣言をしてみたところ、解決しました。 サンプルコードの書籍の印刷ミスか説明省略だったのかもしれません。 ありがとうございました。 Dim imgMap As New Hashtable
お礼
(1)や(2)のように、変数を宣言してみてはいたのですが、○○○部分をいろいろ変えてみても、やはり変わらず・・・ 例えばですが、Dim imgMap As New Bitmapと宣言してみると、 Dim imgMap As New BitmapのimgMapのところで、 「この引数の数を受け付ける'New'がないため、オーバーロードの解決に失敗しました。」 のビルドエラーが imgMap.Addのところでは、 「'Add'は'System.Drawing.Bitmap'のメンバではありません。」 のビルドエラーが出ました。 プロジェクトの設定としてアーリーバインディングとは、どのようなものでしょうか? ちょっと検索して調べてはいますが、まだ理解に至ってなくて・・ でもご回答いただき、ありがとうございました。
補足
自己解決しました。 ImageMapについてヘルプなどを調べまくっていたら、下の記述をしている解説を見つけたので、試しにこの宣言をしてみたところ、解決しました。 サンプルコードの書籍の印刷ミスか説明省略だったのかもしれません。 ありがとうございました。 Dim imgMap As New Hashtable