SAK 図書館
VB 基礎編 (その六) 文字列操作 chr、str、trim、left、mid、len、instr、format
VB で文字列を操作する演算子、関数について説明します。 ■文字列演算子 & 文字列の結合 【例】'** 文字変数を結合する dim a as string dim b as string dim c as string a = "abc" b = "012" c = a & b この例では、変数 c に "abc012" がセットされます。 ■文字列関数 chr キャラクタコードの文字を返す asc 文字のキャラクタコードを返す str 数値を文字列に変換 val 文字列を数値に変換 space n 個の空白を生成 string 特定文字を n 個生成 trim 左右の全角半角空白を削除 ltrim 左側の全角半角空白を削除 rtrim 右側の全角半角空白を削除 lcase 小文字に変換 ucase 大文字に変換 left 左側より n 個の文字列を切り出し mid n 番目から n 個の文字列を切り出し mid ステートメントして使用すると文字列を置き換える right 右側より n 個の文字列を切り出し len 何文字あるか数える instr 指定文字列が何番目から存在するか調べる format 書式指定変換をする now format と組み合わせて、today などを生成する 【注】文字列関数は基本的に 1 文字と言う単位で処理する。 バイトと言う単位で処理したいときは、関数名の最後に「b」を付ける。 例えば、3 文字 = len("12あ")、6 バイト = lenb("12あ") となる。 VB6 の lenB、leftB、rightB、midB 関係は UNICODE で処理するので、 半角も 2 バイトとなる。(VB2 とは異なるので注意!!) ■chr、asc (chrB、chrW、ascB、ascW) キャラクタコード関係を操作する。 【例】'** 改行コード CR/LF を作る。 dim crlf as string crlf = chr(13) + chr(10) crlf には、&H0A0D がセットされます。 chr(0) = chr(&H0) chr(10) = chr(&H0A) chr(13) = chr(&H0D) chr(255) = chr(&HFF) 【例】'** "a" の文字コード調べる dim cd as integer cd = asc("a") cd には、97 がセットされます。 ■str、val 文字列と数値の変換をする。 【例】'** 数値を文字列型に変換する dim a as string a = str(100.12) a には、" 100.12" がセットされます。 サイン桁「+」の意味の空白があることに注意。 【例】'** 文字列を数値に変換する dim a as double a = val("100.12") a には、100.12 がセットされます。 ■space、string 文字列を生成する。 【例】'** 5 個の半角空白を作る dim a as string a = space(5) a には、" " がセットされます。 【例】'** 5 個の "a" 文字列を作る dim a as string a = string(5, "a") a には、"aaaaa" がセットされます。 ■trim、ltrim、rtrim 全角半角空白を除去する。(文字列空白削除) 【例】'** 左右の空白を取る dim a as string a = trim(" abc def ") a には、"abc def" がセットされます。 【例】'** 左の空白を取る dim a as string a = ltrim(str(100.12)) a には、"100.12" がセットされます。 サイン桁「+」の意味の空白が除去されています。 尚、str 関数に -100.12 を指定したとき a には、"-100.12" が セットされます。 ■lcase、ucase 小文字、大文字に変換する。 【例】'** 小文字にする。 dim a as string a = lcase("ABCdefABC") a には、"abcdefABC" がセットされます。 【例】'** 大文字にする。 dim a as string a = ucase("ABCdefabc") a には、"ABCDEFabc" がセットされます。 ■left、mid、right (leftB、midB、rightB) 文字列を切り出す。 【例】'** 先頭から 4 文字切り出す dim a as string a = left("abcdef", 4) a には、"abcd" がセットされます。 【例】'** 最後から 4 文字切り出す dim a as string a = right("abcdef", 4) a には、"cdef" がセットされます。 【例】'** 2 文字目から 4 文字切り出す dim a as string a = mid("abcdef", 2, 4) a には、"bcde" がセットされます。 ■mid (midB) 文字列を置き換える。 【例】'** 2 文字目から 4 文字を置き換える dim a as string a = "abcdef" mid(a, 2, 4) = "1234" a には、"a1234f" がセットされます。 ■len (lenB) 文字列の長さを数える。 【例】'** 何文字あるか調べる dim i as integer i = len("abcあいう") i には、6 がセットされます。 ■instr 文字列があるか調べる。 【例】'** "def" の開始場所を調べる dim i as integer i = instr("abcdefdefdef", "def") i には、4 がセットされます。 【例】'** 5 文字目移行の"def" の開始場所を調べる dim i as integer i = instr(5, "abcdefdefdef", "def") i には、7 がセットされます。 ■format、now 書式化する。(書式変換) 【例】'** コードをゼロ埋め(0 埋め)にする。 dim a as string a = format(1, "00000") a には、"00001" がセットされます。 【例】'** カンマと小数点を指定 dim a as string a = format(1234, "##,##0.00") a には、"1,234.00" がセットされます。 【例】'** さらに桁合わせをするとき dim a as string a = right(space(10) + format(1234, "##,##0.00"), 10) a には、" 1,234.00" と 10 文字の右寄せがセットされます。 【例】'** 文字列フォーマット dim a as string a = format("1234567890001", "@@@@-@@@@@@-@@@") a には、"1234-567890-001" がセットされます。 【例】'** 現在の日付、曜日、時間を生成する ' (システム日付、システム時間、現在日付取得、現在時刻取得) dim a as string a = format(now, "yyyy.mm.dd ddd hh:mm:ss") a には、"1999.04.07 Wed 13:46:00" がセットされます。 ああ、疲れた。(笑い) ■VB 基礎編資料
■VB 入門編資料
■VB ビジュアル編資料
■VB テクニック編資料