VB.NET 【応用編】



目次


関数

2つ引数を乗算する関数を呼び出す処理について解説します。

プログラムソース

Module Module1

Sub Main()

   Dim X, Y, Z As Integer

   X = 2
   Y = 3
   Z = MyFunc(X,Y)

   Console.WriteLine(Z)
   Console.ReadKey()

End Sub

Function MyFunc(ByVal A As Integer, ByVal B As Integer)

   Return A * B

End Function

End Module

解説

変数 = 関数名(引数…)

関数を呼び出します。

Function 関数名(引数…)
 関数名 = 戻り値
End Function

関数を定義します。


ファイル操作

ファイルの存在有無による処理分岐について解説します。

プログラムソース

Module Module1

Sub Main()

   Dim Cd As String

   Cd = System.IO.Directory.GetCurrentDirectory()

   If System.IO.File.Exists(Cd & "\テキスト.txt") Then
      System.IO.File.Delete(Cd & "\テキスト.txt")
   Else
      Console.WriteLine("ファイルが存在しません。")
   End If

   Console.ReadKey()

End Sub

End Module

解説

Directory.GetCurrentDirectory

現在の作業ディレクトリを取得します。

File.Exists(ファイル名)

ファイルが存在するか調べます。

File.Delete(ファイル名)

ファイルを削除します。


ファイル入出力

テキストファイルを読み込み、その内容をテキストファイルに出力する処理について解説します。

プログラムソース

Imports System.IO
Imports System.Text

Module Module1
Sub Main()

   Dim Cd = Directory.GetCurrentDirectory()
   Dim Rf = New StreamReader(Cd & "\入力.txt", _
                                Encoding.Default)
   Dim Wf = New StreamWriter(Cd & "\出力.txt", _
                                 False, _
                                 Encoding.Default)
   Do Until Rf.EndOfStream
      Wf.WriteLine(Rf.ReadLine())   
   Loop
   Console.ReadKey()

   Wf.Close()
   Rf.Close()

End Sub
End Module

解説

Imports クラス名

クラス名の記述を省略します。

StreamReader(ファイル名,文字コード)

読み込みファイルを開きます。

StreamWriter (ファイル名,書込モード,文字コード)
書き込みモード
 True :追記
 False:上書き

書き込みファイルを開きます。

StreamReader.EndOfStream

ファイルの末尾か確認します。

StreamReader.ReadLine

ファイルから1行を取得します。

StreamWriter.WriteLine(文字列)

指定した文字列を書き込みます。

StreamReader.Close
StreamWriter.Close

ファイルを閉じます。


外部プログラム実行

外部プログラムの実行処理について解説します。

プログラムソース

Imports System.Diagnostics

Module Module1

Sub Main()

   Process.Start("notepad.exe")

   Console.ReadKey()

End Sub

End Module

解説

Process.Start(実行ファイル)

プログラムを起動します。


コマンドライン引数

Exe起動時に引数を渡して実行する処理について解説します。

プログラムソース

メイン.exe
Imports System.IO
Imports System.Diagnostics

Module Module1
Sub Main()
   Dim Cd = Directory.GetCurrentDirectory()
   Process.Start(Cd & "\サブ.exe","aaa bbb")
End Sub
End Module
サブ.exe
Module Module1
Sub Main(ByVal Args() As String)

   Console.WriteLine("引数1:" & Args(0))
   Console.WriteLine("引数2:" & Args(1))
   Console.ReadKey()

End Sub
End Module

解説

Process.Start(実行ファイル, 引数)

プログラムを起動します。


例外処理

例外処理について解説します。

プログラムソース

Module Module1
Sub Main()

   Try

      Dim X As Integer = 1
      X = X / 0
      Console.WriteLine("成功")

   Catch ex As Exception

      Console.WriteLine("失敗")

   Finally

      Console.ReadKey()

   End Try

End Sub
End Module

解説

Try
 例外が発生する可能性がある処理
Catch
 例外発生時の処理
Finally
 最後に必ず実行する処理
End Try

例外処理を定義します。