VBCodeProviderとは? わかりやすく解説

VBCodeProvider イベント


VBCodeProvider クラス

Visual Basic コード ジェネレータと Visual Basic コード コンパイラのインスタンスへのアクセスを提供します。

名前空間: Microsoft.VisualBasic
アセンブリ: System (system.dll 内)
構文構文

Public Class VBCodeProvider
    Inherits CodeDomProvider
Dim instance As VBCodeProvider
public class VBCodeProvider : CodeDomProvider
public ref class VBCodeProvider : public
 CodeDomProvider
public class VBCodeProvider extends CodeDomProvider
public class VBCodeProvider extends
 CodeDomProvider
解説解説
使用例使用例

C# または Visual Basic コード プロバイダを使用してソース ファイルをコンパイルする例を次に示します。この例では、入力ファイルの拡張子をチェックし、対応するコンパイル用 CSharpCodeProvider または VBCodeProvider を使用します。入力ファイルは実行可能ファイルにコンパイルされます。コンパイル エラーはすべてコンソールに表示されます。

Public Shared Function CompileExecutable(sourceName
 As String) As Boolean
    Dim sourceFile As FileInfo = New
 FileInfo(sourceName)
    Dim provider As CodeDomProvider = Nothing
    Dim compileOk As Boolean
 = False

    ' Select the code provider based on the input file extension.
    If sourceFile.Extension.ToUpper(CultureInfo.InvariantCulture)
 = ".CS"

        provider = New Microsoft.CSharp.CSharpCodeProvider()

    ElseIf sourceFile.Extension.ToUpper(CultureInfo.InvariantCulture)
 = ".VB"

        provider = New Microsoft.VisualBasic.VBCodeProvider()

    Else
        Console.WriteLine("Source file must have a .cs or .vb
 extension")
    End If

    If Not provider Is Nothing

        ' Format the executable file name.
        ' Build the output assembly path using the current directory
        ' and <source>_cs.exe or <source>_vb.exe.

        Dim exeName As String
 = String.Format("{0}\{1}.exe",
 _
            System.Environment.CurrentDirectory, _
            sourceFile.Name.Replace(".", "_"))

        Dim cp As CompilerParameters = new
 CompilerParameters()

        ' Generate an executable instead of 
        ' a class library.
        cp.GenerateExecutable = True

        ' Specify the assembly file name to generate.
        cp.OutputAssembly = exeName
    
        ' Save the assembly as a physical file.
        cp.GenerateInMemory = False
    
        ' Set whether to treat all warnings as errors.
        cp.TreatWarningsAsErrors = False
 
        ' Invoke compilation of the source file.
        Dim cr As CompilerResults = provider.CompileAssemblyFromFile(cp,
 _
            sourceName)
    
        If cr.Errors.Count > 0
            ' Display compilation errors.
            Console.WriteLine("Errors building {0} into {1}",
 _
                sourceName, cr.PathToAssembly)

            Dim ce As CompilerError
            For Each ce In
 cr.Errors
                Console.WriteLine("  {0}", ce.ToString())
                Console.WriteLine()
            Next ce
        Else
            ' Display a successful compilation message.
            Console.WriteLine("Source {0} built into {1} successfully.",
 _
                sourceName, cr.PathToAssembly)
        End If
      
        ' Return the results of the compilation.
        If cr.Errors.Count > 0
            compileOk = False
        Else 
            compileOk = True
        End If
    End If
    return compileOk

End Function
public static bool CompileExecutable(String
 sourceName)
{
    FileInfo sourceFile = new FileInfo(sourceName);
    CodeDomProvider provider = null;
    bool compileOk = false;

    // Select the code provider based on the input file extension.
    if (sourceFile.Extension.ToUpper(CultureInfo.InvariantCulture)
 == ".CS")
    {
        provider = new Microsoft.CSharp.CSharpCodeProvider();
    }
    else if (sourceFile.Extension.ToUpper(CultureInfo.InvariantCulture)
 == ".VB")
    {
        provider = new Microsoft.VisualBasic.VBCodeProvider();
    }
    else 
    {
        Console.WriteLine("Source file must have a .cs or .vb extension");
    }

    if (provider != null)
    {

        // Format the executable file name.
        // Build the output assembly path using the current directory
        // and <source>_cs.exe or <source>_vb.exe.
 
        String exeName = String.Format(@"{0}\{1}.exe", 
            System.Environment.CurrentDirectory, 
            sourceFile.Name.Replace(".", "_"));

        CompilerParameters cp = new CompilerParameters();

        // Generate an executable instead of 
        // a class library.
        cp.GenerateExecutable = true;

        // Specify the assembly file name to generate.
        cp.OutputAssembly = exeName;
    
        // Save the assembly as a physical file.
        cp.GenerateInMemory = false;
    
        // Set whether to treat all warnings as errors.
        cp.TreatWarningsAsErrors = false;
 
        // Invoke compilation of the source file.
        CompilerResults cr = provider.CompileAssemblyFromFile(cp, 
            sourceName);
    
        if(cr.Errors.Count > 0)
        {
            // Display compilation errors.
            Console.WriteLine("Errors building {0} into {1}",  
                sourceName, cr.PathToAssembly);
            foreach(CompilerError ce in cr.Errors)
            {
                Console.WriteLine("  {0}", ce.ToString());
                Console.WriteLine();
            }
        }
        else
        {
            // Display a successful compilation message.
            Console.WriteLine("Source {0} built into {1} successfully."
,
                sourceName, cr.PathToAssembly);
        }
      
        // Return the results of the compilation.
        if (cr.Errors.Count > 0)
        {
            compileOk = false;
        }
        else 
        {
            compileOk = true;
        }
    }
    return compileOk;
}
.NET Framework のセキュリティ.NET Framework のセキュリティ
継承階層継承階層
System.Object
   System.MarshalByRefObject
     System.ComponentModel.Component
       System.CodeDom.Compiler.CodeDomProvider
        Microsoft.VisualBasic.VBCodeProvider
スレッド セーフスレッド セーフ
この型の public static (Visual Basic では Shared) メンバはすべて、スレッド セーフです。インスタンス メンバの場合は、スレッド セーフであるとは限りません。
プラットフォームプラットフォーム
バージョン情報バージョン情報
参照参照
関連項目
VBCodeProvider メンバ
Microsoft.VisualBasic 名前空間
ICodeGenerator
ICodeCompiler
System.CodeDom
System.CodeDom.Compiler

VBCodeProvider コンストラクタ


VBCodeProvider プロパティ


VBCodeProvider メソッド


パブリック メソッドパブリック メソッド

( プロテクト メソッド も参照)
  名前 説明
パブリック メソッド CompileAssemblyFromDom  指定したコンパイラ設定を使用して、指定した CodeCompileUnit オブジェクトの配列に含まれている System.CodeDom ツリーに基づいてアセンブリをコンパイルします。 ( CodeDomProvider から継承されます。)
パブリック メソッド CompileAssemblyFromFile  指定したコンパイラ設定を使用して、指定したファイルに格納されているソース コードからアセンブリをコンパイルします。 ( CodeDomProvider から継承されます。)
パブリック メソッド CompileAssemblyFromSource  指定したコンパイラ設定を使用して、ソース コードが格納されている指定した文字列の配列からアセンブリをコンパイルします。 ( CodeDomProvider から継承されます。)
パブリック メソッド CreateCompiler オーバーライドされます。 Visual Basic コード コンパイラのインスタンスを取得します。
パブリック メソッド CreateEscapedIdentifier  指定した値のエスケープ識別子を作成します。 ( CodeDomProvider から継承されます。)
パブリック メソッド CreateGenerator オーバーロードされます。 オーバーライドされます。 Visual Basic コード ジェネレータのインスタンスを取得します。
パブリック メソッド CreateObjRef  リモート オブジェクトとの通信に使用するプロキシの生成に必要な情報をすべて格納しているオブジェクトを作成します。 ( MarshalByRefObject から継承されます。)
パブリック メソッド CreateParser  派生クラスでオーバーライドされると、新しいコード パーサーを作成します。 ( CodeDomProvider から継承されます。)
パブリック メソッド CreateProvider  指定した言語の CodeDomProvider インスタンスを取得します。 ( CodeDomProvider から継承されます。)
パブリック メソッド CreateValidIdentifier  指定した値の有効な識別子を作成します。 ( CodeDomProvider から継承されます。)
パブリック メソッド Dispose  オーバーロードされます。 Component によって使用されているリソースを解放します。 ( Component から継承されます。)
パブリック メソッド Equals  オーバーロードされます。 2 つの Object インスタンスが等しいかどうかを判断します。 ( Object から継承されます。)
パブリック メソッド GenerateCodeFromCompileUnit  指定した CodeDOM (Code Document Object Model) コンパイル単位のコードを生成し、指定したオプションを使用して、指定したテキスト ライタに生成されたコードを送信します。 ( CodeDomProvider から継承されます。)
パブリック メソッド GenerateCodeFromExpression  指定した CodeDOM (Code Document Object Model) 式のコードを生成し、指定したオプションを使用して、指定したテキスト ライタに生成されたコードを送信します。 ( CodeDomProvider から継承されます。)
パブリック メソッド GenerateCodeFromMember オーバーライドされます。 指定したテキスト ライタおよびコード ジェネレータのオプションを使用して、指定したクラス メンバのコードを生成します。
パブリック メソッド GenerateCodeFromNamespace  指定した CodeDOM (Code Document Object Model) 名前空間のコードを生成し、指定したオプションを使用して、指定したテキスト ライタに生成されたコードを送信します。 ( CodeDomProvider から継承されます。)
パブリック メソッド GenerateCodeFromStatement  指定した CodeDOM (Code Document Object Model) ステートメントのコードを生成し、指定したオプションを使用して、指定したテキスト ライタに生成されたコードを送信します。 ( CodeDomProvider から継承されます。)
パブリック メソッド GenerateCodeFromType  指定した CodeDOM (Code Document Object Model) 型宣言のコードを生成し、指定したオプションを使用して、指定したテキスト ライタに生成されたコードを送信します。 ( CodeDomProvider から継承されます。)
パブリック メソッド GetAllCompilerInfo  このコンピュータの言語プロバイダおよびコンパイラの構成設定を返します。 ( CodeDomProvider から継承されます。)
パブリック メソッド GetCompilerInfo  指定した言語の言語プロバイダおよびコンパイラの構成設定を返します。 ( CodeDomProvider から継承されます。)
パブリック メソッド GetConverter オーバーライドされます。 指定したオブジェクト型の TypeConverter を取得します。
パブリック メソッド GetHashCode  特定の型のハッシュ関数として機能します。GetHashCode は、ハッシュ アルゴリズムや、ハッシュ テーブルのようなデータ構造での使用に適しています。 ( Object から継承されます。)
パブリック メソッド GetLanguageFromExtension  CodeDomProvider のコンパイラ構成セクションに構成されている、指定したファイル名拡張子に関連付けられた言語名を返します。 ( CodeDomProvider から継承されます。)
パブリック メソッド GetLifetimeService  対象のインスタンスの有効期間ポリシーを制御する、現在の有効期間サービス オブジェクトを取得します。 ( MarshalByRefObject から継承されます。)
パブリック メソッド GetType  現在のインスタンスの Type を取得します。 ( Object から継承されます。)
パブリック メソッド GetTypeOutput  指定した CodeTypeReference で示される型を取得します。 ( CodeDomProvider から継承されます。)
パブリック メソッド InitializeLifetimeService  対象のインスタンスの有効期間ポリシーを制御する、有効期間サービス オブジェクトを取得します。 ( MarshalByRefObject から継承されます。)
パブリック メソッド IsDefinedExtension  コンピュータ上に、ファイル名拡張子の関連する CodeDomProvider 実装が構成されているかどうかを調べます。 ( CodeDomProvider から継承されます。)
パブリック メソッド IsDefinedLanguage  コンピュータ上に、言語の CodeDomProvider 実装が構成されているかどうかを調べます。 ( CodeDomProvider から継承されます。)
パブリック メソッド IsValidIdentifier  指定した値が現在の言語で有効な識別子かどうかを示す値を返します。 ( CodeDomProvider から継承されます。)
パブリック メソッド Parse  指定したテキスト ストリームから読み取ったコードを CodeCompileUnit にコンパイルします。 ( CodeDomProvider から継承されます。)
パブリック メソッド ReferenceEquals  指定した複数の Object インスタンスが同一かどうかを判断します。 ( Object から継承されます。)
パブリック メソッド Supports  指定したコードを生成できるかどうかを示す値を返します。 ( CodeDomProvider から継承されます。)
パブリック メソッド ToString  Component の名前を格納している String を返します (存在する場合)。このメソッドはオーバーライドできません。 ( Component から継承されます。)
プロテクト メソッドプロテクト メソッド
参照参照

関連項目

VBCodeProvider クラス
Microsoft.VisualBasic 名前空間
ICodeGenerator
ICodeCompiler
System.CodeDom
System.CodeDom.Compiler

VBCodeProvider メンバ

Visual Basic コード ジェネレータと Visual Basic コード コンパイラのインスタンスへのアクセスを提供します。

VBCodeProvider データ型で公開されるメンバを以下の表に示します。


パブリック コンストラクタパブリック コンストラクタ
  名前 説明
パブリック メソッド VBCodeProvider VBCodeProvider クラスの新しいインスタンスを初期化します。
パブリック プロパティパブリック プロパティ
プロテクト プロパティプロテクト プロパティ
パブリック メソッドパブリック メソッド
( プロテクト メソッド も参照)
  名前 説明
パブリック メソッド CompileAssemblyFromDom  指定したコンパイラ設定を使用して、指定した CodeCompileUnit オブジェクトの配列に含まれている System.CodeDom ツリーに基づいてアセンブリをコンパイルします。 (CodeDomProvider から継承されます。)
パブリック メソッド CompileAssemblyFromFile  指定したコンパイラ設定を使用して、指定したファイルに格納されているソース コードからアセンブリをコンパイルします。 (CodeDomProvider から継承されます。)
パブリック メソッド CompileAssemblyFromSource  指定したコンパイラ設定を使用して、ソース コードが格納されている指定した文字列の配列からアセンブリをコンパイルします。 (CodeDomProvider から継承されます。)
パブリック メソッド CreateCompiler オーバーライドされます。 Visual Basic コード コンパイラのインスタンスを取得します。
パブリック メソッド CreateEscapedIdentifier  指定した値のエスケープ識別子を作成します。 (CodeDomProvider から継承されます。)
パブリック メソッド CreateGenerator オーバーロードされます。 オーバーライドされます。 Visual Basic コード ジェネレータのインスタンスを取得します。
パブリック メソッド CreateObjRef  リモート オブジェクトとの通信に使用するプロキシの生成に必要な情報をすべて格納しているオブジェクトを作成します。 (MarshalByRefObject から継承されます。)
パブリック メソッド CreateParser  派生クラスでオーバーライドされると、新しいコード パーサーを作成します。 (CodeDomProvider から継承されます。)
パブリック メソッド CreateProvider  指定した言語の CodeDomProvider インスタンスを取得します。 (CodeDomProvider から継承されます。)
パブリック メソッド CreateValidIdentifier  指定した値の有効な識別子を作成します。 (CodeDomProvider から継承されます。)
パブリック メソッド Dispose  オーバーロードされます。 Component によって使用されているリソースを解放します。 (Component から継承されます。)
パブリック メソッド Equals  オーバーロードされます。 2 つの Object インスタンスが等しいかどうかを判断します。 (Object から継承されます。)
パブリック メソッド GenerateCodeFromCompileUnit  指定した CodeDOM (Code Document Object Model) コンパイル単位のコードを生成し、指定したオプションを使用して、指定したテキスト ライタに生成されたコードを送信します。 (CodeDomProvider から継承されます。)
パブリック メソッド GenerateCodeFromExpression  指定した CodeDOM (Code Document Object Model) 式のコードを生成し、指定したオプションを使用して、指定したテキスト ライタに生成されたコードを送信します。 (CodeDomProvider から継承されます。)
パブリック メソッド GenerateCodeFromMember オーバーライドされます。 指定したテキスト ライタおよびコード ジェネレータのオプションを使用して、指定したクラス メンバのコードを生成します。
パブリック メソッド GenerateCodeFromNamespace  指定した CodeDOM (Code Document Object Model) 名前空間のコードを生成し、指定したオプションを使用して、指定したテキスト ライタに生成されたコードを送信します。 (CodeDomProvider から継承されます。)
パブリック メソッド GenerateCodeFromStatement  指定した CodeDOM (Code Document Object Model) ステートメントのコードを生成し、指定したオプションを使用して、指定したテキスト ライタに生成されたコードを送信します。 (CodeDomProvider から継承されます。)
パブリック メソッド GenerateCodeFromType  指定した CodeDOM (Code Document Object Model) 型宣言のコードを生成し、指定したオプションを使用して、指定したテキスト ライタに生成されたコードを送信します。 (CodeDomProvider から継承されます。)
パブリック メソッド GetAllCompilerInfo  このコンピュータの言語プロバイダおよびコンパイラの構成設定を返します。 (CodeDomProvider から継承されます。)
パブリック メソッド GetCompilerInfo  指定した言語の言語プロバイダおよびコンパイラの構成設定を返します。 (CodeDomProvider から継承されます。)
パブリック メソッド GetConverter オーバーライドされます。 指定したオブジェクト型の TypeConverter を取得します。
パブリック メソッド GetHashCode  特定の型のハッシュ関数として機能します。GetHashCode は、ハッシュ アルゴリズムや、ハッシュ テーブルのようなデータ構造での使用に適しています。 (Object から継承されます。)
パブリック メソッド GetLanguageFromExtension  CodeDomProvider のコンパイラ構成セクションに構成されている、指定したファイル名拡張子に関連付けられた言語名を返します。 (CodeDomProvider から継承されます。)
パブリック メソッド GetLifetimeService  対象のインスタンスの有効期間ポリシーを制御する、現在の有効期間サービス オブジェクトを取得します。 (MarshalByRefObject から継承されます。)
パブリック メソッド GetType  現在のインスタンスの Type を取得します。 (Object から継承されます。)
パブリック メソッド GetTypeOutput  指定した CodeTypeReference で示される型を取得します。 (CodeDomProvider から継承されます。)
パブリック メソッド InitializeLifetimeService  対象のインスタンスの有効期間ポリシーを制御する、有効期間サービス オブジェクトを取得します。 (MarshalByRefObject から継承されます。)
パブリック メソッド IsDefinedExtension  コンピュータ上に、ファイル名拡張子の関連する CodeDomProvider 実装が構成されているかどうかを調べます。 (CodeDomProvider から継承されます。)
パブリック メソッド IsDefinedLanguage  コンピュータ上に、言語の CodeDomProvider 実装が構成されているかどうかを調べます。 (CodeDomProvider から継承されます。)
パブリック メソッド IsValidIdentifier  指定した値が現在の言語で有効な識別子かどうかを示す値を返します。 (CodeDomProvider から継承されます。)
パブリック メソッド Parse  指定したテキスト ストリームから読み取ったコードを CodeCompileUnit にコンパイルします。 (CodeDomProvider から継承されます。)
パブリック メソッド ReferenceEquals  指定した複数の Object インスタンスが同一かどうかを判断します。 (Object から継承されます。)
パブリック メソッド Supports  指定したコードを生成できるかどうかを示す値を返します。 (CodeDomProvider から継承されます。)
パブリック メソッド ToString  Component の名前を格納している String を返します (存在する場合)。このメソッドはオーバーライドできません。 (Component から継承されます。)
プロテクト メソッドプロテクト メソッド
パブリック イベントパブリック イベント
参照参照

関連項目

VBCodeProvider クラス
Microsoft.VisualBasic 名前空間
ICodeGenerator
ICodeCompiler
System.CodeDom
System.CodeDom.Compiler



英和和英テキスト翻訳

英語⇒日本語日本語⇒英語

辞書ショートカット

すべての辞書の索引

「VBCodeProvider」の関連用語

VBCodeProviderのお隣キーワード
検索ランキング

   

英語⇒日本語
日本語⇒英語
   



VBCodeProviderのページの著作権

   
日本マイクロソフト株式会社日本マイクロソフト株式会社
© 2026 Microsoft.All rights reserved.

©2026 GRAS Group, Inc.RSS