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 テクニック編資料