どうも!リョクちゃです。
今回は、前回に紹介したMid関数の他に文字列内の情報を抽出する方法として、
Left関数とRight関数があります。
この関数の使い方を例を交えて紹介していきつつ、
Mid関数と組み合わせて使うことで抽出のパターンを覚えていただけたらなと思います。
ちなみに前回はこちら、
目次
Left関数とRight関数
Left関数は、文字列の左端を開始位置として、
任意の長さの文字を抽出対象の文字列内から抽出してくれる関数です。
一方でRight関数は、文字列の右端を開始位置として、
任意の長さの文字を抽出対象の文字列内から抽出してくれる関数です。
それぞれ書き方としては、
※Imports Microsoft.VisualBesicと記述していれば、
Microsoft.VisualBasicに関しては省略ができます。
それぞれ、第1引数に抽出したい文字列
第2引数には抽出する文字列の長さを引数として渡します。
準備編:フォームの作成
前回作成したフォームがある読者の方は、前回のフォームを使ってください。
そちらを使ってコードを書いていきます。
実行環境
筆者の実行環境は、
- VisualStudio2019
- Windows 10 64bit
- .Net Framework 4.5.1
になります。
※ Windows7 8 8.1でも動作はできますが、画面デザインの表示が変わるかもしれません。
アプリケーションの目的
適当な入力値を入力し、ボタンを押すことでそれぞれ指定の位置から情報を抽出し、
それぞれ抽出した情報を表示することを目的とします。
ただし、Left関数とRight関数、Mid関数を駆使して行えるコードとする。
どちらか一方のみでは禁止とする。
プログラム編
それではプログラムを作成していきます。
まずは、フォームデザイン上でボタンコントロールをダブルクリックし、
コードビューにボタンイベントを作成します。
1 2 3 4 5 6 |
Public Class TestMid Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click End Sub End Class |
入力値ボックスに入力がされていれば処理をするようにします。
1 2 3 4 5 6 7 8 |
Public Class TestMid Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click ' 入力値があれば If Me.TextBox1.Text <> "" Then End Sub End Class |
ここからは抽出するための準備をしていきます。
考え方としては、前回の記事と同じでコードのみを変えていきます。
入力値として与えられる文字列には、
- 所在地コード(3桁)
- 電話番号(10桁)
- 氏名コード(5桁)
順に18桁が与えられます。
これを踏まえ、あらかじめ桁数がわかっているので桁数を定数として宣言しておきます。
1 2 3 4 5 6 7 8 9 10 11 12 |
Public Class TestMid Private Const PlaceCode As Integer = 3 ' 所在地コード Private Const TeleCode As Integer = 10 ' 電話番号 Private Const NameCode As Integer = 5 ' 氏名コード Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click ' 入力値があれば If Me.TextBox1.Text <> "" Then End If End Sub End Class |
まずは、Left関数を使って所在地コードを抽出していきます。
書き方としては、
1 |
Microsoft.VisualBasic.Left(TextBox1.Text, PlaceCode) |
と書くことで、入力値の左端から所在地コードの長さ分を抽出してくれます。
一方でRight関数を使って氏名コードを抽出する書き方としては、
1 |
Microsoft.VisualBasic.Right(TextBox1.Text, NameCode) |
と書くことで、入力値の右端から氏名コードの長さ分を抽出してくれます。
最後に、Mid関数を使って電話番号を抽出していきます。
1 |
Mid(TextBox1.Text, PlaceCode + 1, TeleCode) |
全てのコードを合わせると以下の形になります。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 |
Public Class TestMid Private Const PlaceCode As Integer = 3 ' 所在地コード Private Const TeleCode As Integer = 10 ' 電話番号コード Private Const NameCode As Integer = 5 ' 氏名コード Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click ' 入力値があれば If Me.TextBox1.Text <> "" Then ' Left関数とRight関数を使って抽出してみる。 Dim place As String = Microsoft.VisualBasic.Left(TextBox1.Text, PlaceCode) Dim tele As String = Mid(TextBox1.Text, PlaceCode + 1, TeleCode) Dim name As String = Microsoft.VisualBasic.Right(TextBox1.Text, NameCode) ' テキストボックスへ出力 Me.TextBox2.Text = place Me.TextBox3.Text = tele Me.TextBox4.Text = name End If End Sub End Class |
実行編
作成したコードを実行していきます。
ボタンを押すと、
例を1つ実行します。
他の入力値でも桁数があっていれば正しく抽出することができます。
まとめ
Left関数とRight関数について、例を交えて使い方や
データ抽出のパターンについて紹介していきました。
これを機に文字列内の情報を抽出する際は、
これら関数を使った方法を試していただければ嬉しいです。
最後までご覧いただきありがとうございます。
・こちらの書籍を参考にVB.Net勉強しています。