Visual Basic での警告の構成Configuring Warnings in Visual Basic

Visual BasicVisual Basic のコンパイラには、実行時エラーの原因になる可能性があるコードに関する警告のセットが用意されています。The Visual BasicVisual Basic compiler includes a set of warnings about code that may cause run-time errors. その情報を使うと、よりきれいで、速く、優れたコードを、バグをほとんど含まずに記述することができます。You can use that information to write cleaner, faster, better code with fewer bugs. たとえば、代入されていないオブジェクト変数のメンバーを呼び出そうとしたり、戻り値を設定しないで関数から戻ろうとしたり、例外をキャッチするロジックでエラーのある Try ブロックを実行しようとしたりすると、コンパイラはエラーを生成します。For example, the compiler will produce a warning when the user attempts to invoke a member of an unassigned object variable, return from a function without setting the return value, or execute a Try block with errors in the logic to catch exceptions.

場合によって、コンパイラはユーザーの代わりに追加ロジックを提供し、ユーザーがエラーの可能性を考えることなく現在の作業に集中できるようにします。Sometimes the compiler provides extra logic on the user's behalf so that the user can focus on the task at hand, rather than on anticipating possible errors. 以前のバージョンの Visual BasicVisual Basic では、Visual BasicVisual Basic コンパイラが提供する追加ロジックを制限するために Option Strict が使われていました。In previous versions of Visual BasicVisual Basic, Option Strict was used to limit the additional logic that the Visual BasicVisual Basic compiler provides. 警告を構成すると、個々の警告のレベルでさらに詳細にこのロジックを制限することができます。Configuring warnings allows you to limit this logic in a more granular way, at the level of the individual warnings.

プロジェクトをカスタマイズして、アプリケーションに関係のない警告はオフにし、他の警告はエラーにすることができます。You may want to customize your project and turn off some warnings not pertinent to your application while turning other warnings into errors. このページでは、個々の警告を有効または無効にする方法について説明します。This page explains how to turn individual warnings on and off.

警告のオフとオンの切り替えTurning Warnings Off and On

警告を構成するには 2 つの異なる方法があります。プロジェクト デザイナーを使う方法と、/warnaserror および /nowarn コンパイラ オプションを使う方法です。There are two different ways to configure warnings: you can configure them using the Project Designer, or you can use the /warnaserror and /nowarn compiler options.

[プロジェクト デザイナー] ページの [コンパイル] タブで、警告を有効または無効にできます。The Compile tab of the Project Designer page allows you to turn warnings on and off. [すべての警告を表示しない] チェック ボックスをオンにすると、すべての警告が無効になります。[すべての警告をエラーとして扱う] をオンにすると、すべての警告がエラーとして処理されます。Select the Disable All Warnings check box to disable all warnings; select the Treat All Warnings as Errors to treat all warnings as errors. 一部の個別警告は、表示されるテーブルで必要に応じてエラーまたは警告として切り替えることができます。Some individual warnings can be toggled as error or warning as desired in the displayed table.

Option Strictオフに設定されていると、Option Strict 関連の警告を個別に扱うことはできません。When Option Strict is set to Off, Option Strict related warnings cannot be treated independently of each other. Option Strictオンに設定されていると、関連する警告は状態に関係なくエラーとして扱われます。When Option Strict is set to On, the associated warnings are treated as errors, no matter what their status is. コマンド ライン コンパイラで /optionstrict:custom を指定することによって Option Strictカスタムに設定されていると、Option Strict の警告のオン/オフを独立して切り替えることができます。When Option Strict is set to Custom by specifying /optionstrict:custom in the command line compiler, Option Strict warnings can be toggled on or off independently.

コンパイラの /warnaserror コマンド ライン オプションを使って、警告をエラーとして扱うかどうかを指定することもできます。The /warnaserror command-line option of the compiler can also be used to specify whether warnings are treated as errors. コンマ区切りリストをこのオプションに追加し、+ または - を使ってエラーまたは警告として扱う必要がある警告を指定できます。You can add a comma delimited list to this option to specify which warnings should be treated as errors or warnings by using + or -. 次の表では、使用できるオプションを詳しく説明します。The following table details the possible options.

コマンド ライン オプションCommand-line option 指定内容Specifies
/warnaserror+ すべての警告をエラーとして扱います。Treat all warnings as errors
/warnsaserror- 警告をエラーとして扱いません。Do not treat as warnings as errors. 既定値です。This is the default.
/warnaserror+:<warning list >/warnaserror+:<warning list > コンマ区切りリストでエラー ID 番号を指定した特定の警告をエラーとして扱います。Treat specific warnings as errors, listed by their error ID number in a comma delimited list r.
/warnaserror-:<warning list> コンマ区切りリストでエラー ID 番号を指定した特定の警告をエラーとして扱いません。Do not treat specific warnings as errors, listed by their error ID number in a comma delimited list.
/nowarn 警告を報告しません。Do not report warnings.
/nowarn:<warning list> コンマ区切りリストでエラー ID 番号を指定した警告を報告しません。Do not report specified warnings, listed by their error ID number in a comma delimited list.

警告の一覧にはエラーとして扱う必要のある警告のエラー ID 番号が含まれ、それをコマンド ライン オプションで使って特定の警告のオン/オフを指定できます。The warning list contains the error ID numbers of the warnings that should be treated as errors, which can be used with the command-line options to turn specific warnings on or off. 警告の一覧に無効な値が含まれる場合は、エラーが報告されます。If the warning list contains an invalid number, an error is reported.

Examples

次の表では、コマンド ライン引数の動作の例を示します。This table of examples of command line arguments describes what each argument does.

引数Argument 説明Description
vbc /warnaserror すべての警告をエラーとして扱うよう指定しています。Specifies that all warnings should be treated as errors.
vbc /warnaserror:42024 警告 42024 をエラーとして扱うよう指定します。Specifies that warning 42024 should be treated as an error.
vbc /warnaserror:42024,42025 警告 42024 と 42025 をエラーとして扱うよう指定します。Specifies that warnings 42024 and 42025 should be treated as errors.
vbc /nowarn すべての警告を報告しないよう指定します。Specifies that no warnings should be reported.
vbc /nowarn:42024 警告 42024 を報告しないよう指定します。Specifies that warning 42024 should not be reported.
vbc /nowarn:42024,42025 警告 42024 と 42025 を報告しないよう指定します。Specifies that warnings 42024 and 42025 should not be reported.

警告の種類Types of Warnings

エラーとして処理できる警告の一覧を次に示します。Following is a list of warnings that you might want to treat as errors.

暗黙的な変換の警告Implicit Conversion Warning

暗黙的な変換のインスタンスに対して生成されます。Generated for instances of implicit conversion. & 演算子を使ったときの組み込み数値型から文字列への暗黙的な変換は含まれません。They do not include implicit conversions from an intrinsic numeric type to a string when using the & operator. 新しいプロジェクトでの既定値はオフです。Default for new projects is off.

ID: 42016ID: 42016

遅延バインド メソッドの呼び出しおよびオーバーロードの解決の警告Late bound Method Invocation and Overload Resolution Warning

遅延バインドのインスタンスに対して生成されます。Generated for instances of late binding. 新しいプロジェクトでの既定値はオフです。Default for new projects is off.

ID: 42017ID: 42017

Object 型のオペランドの警告Operands of Type Object Warnings

Option Strict On でエラーを作成する Object 型のオペランドが発生したときに生成されます。Generated when operands of type Object occur that would create an error with Option Strict On. 新しいプロジェクトでの既定値はオンです。Default for new projects is on.

ID: 42018、42019ID: 42018 and 42019

"As" 句が必要な宣言の警告Declarations Require 'As' Clause Warnings

変数、関数、またはプロパティの宣言に As 句が不足していて Option Strict On によりエラーが作成されるときに生成されます。Generated when a variable, function, or property declaration lacking an As clause would have created an error with Option Strict On. 型が割り当てられていない変数は Object 型と見なされます。Variables that do not have a type assigned to them are assumed to be type Object. 新しいプロジェクトでの既定値はオンです。Default for new projects is on.

ID: 42020 (変数宣言)、42021 (関数宣言)、42022 (プロパティ宣言)ID: 42020 (variable declaration), 42021 (function declaration), and 42022 (property declaration).

Null 参照例外の可能性の警告Possible Null Reference Exception Warnings

値が割り当てられる前に変数が使われると生成されます。Generated when a variable is used before it has been assigned a value. 新しいプロジェクトでの既定値はオンです。Default for new projects is on.

ID: 42104、42030ID: 42104, 42030

使われていないローカル変数の警告Unused Local Variable Warning

宣言されたローカル変数が参照されていない場合に生成されます。Generated when a local variable is declared but never referred to. 既定値はオンです。Default is on.

ID: 42024ID: 42024

インスタンス変数による共有メンバーへのアクセスの警告Access of Shared member through Instance Variable Warning

インスタンスによる共有メンバーへのアクセスに副作用がある場合、またはインスタンス変数による共有メンバーへのアクセスが式の右辺ではないか、パラメーターとして渡されている場合に、生成されます。Generated when accessing a shared member through an instance may have side effects, or when accessing a shared member through an instance variable is not the right-hand side of an expression or is being passed in as a parameter. 新しいプロジェクトでの既定値はオンです。Default for new projects is on.

ID: 42025ID: 42025

演算子またはプロパティの再帰的なアクセスの警告Recursive Operator or Property Access Warnings

ルーチンが定義されている演算子またはプロパティがルーチンの本体で使われている場合に、生成されます。Generated when the body of a routine uses the same operator or property it is defined in. 新しいプロジェクトでの既定値はオンです。Default for new projects is on.

ID: 42004 (演算子)、42026 (プロパティ)ID: 42004 (operator), 42026 (property)

戻り値のない関数または演算子の警告Function or Operator without Return Value Warning

関数または演算子で戻り値が指定されていない場合に、生成されます。Generated when the function or operator does not have a return value specified. これには、関数と同じ名前を持つ暗黙のローカル変数に対する Set の省略も含まれます。This includes omitting a Set to the implicit local variable with the same name as the function. 新しいプロジェクトでの既定値はオンです。Default for new projects is on.

ID: 42105 (関数)、42016 (演算子)ID: 42105 (function), 42016 (operator)

モジュールで使われている修飾子のオーバーロードの警告Overloads Modifier Used in a Module Warning

OverloadsModule で使われている場合に、生成されます。Generated when Overloads is used in a Module. 新しいプロジェクトでの既定値はオンです。Default for new projects is on.

ID: 42028ID: 42028

重複またはオーバーラップする Catch ブロックの警告Duplicate or Overlapping Catch Blocks Warnings

定義されている他の Catch ブロックとの関係のために絶対に到達しない Catch ブロックがある場合に、生成されます。Generated when a Catch block is never reached due to its relation to other Catch blocks that have been defined. 新しいプロジェクトでの既定値はオンです。Default for new projects is on.

ID: 42029、42031ID: 42029, 42031

関連項目See Also

エラーの種類 Error Types
Try...Catch...Finally ステートメント Try...Catch...Finally Statement
/nowarn /nowarn
/warnaserror (Visual Basic) /warnaserror (Visual Basic)
[コンパイル] ページ、プロジェクト デザイナー (Visual Basic) Compile Page, Project Designer (Visual Basic)
既定で無効になっているコンパイラ警告Compiler Warnings That Are Off by Default