PRIMG0001
 毎週金曜日、プログラミングのちょっとした講座を記しています。
 ここでは、小学校から「プログラミング」が必須項目になってしまったため、お父さん・お母さん・おじいちゃん・おねえちゃんが子供に「プログラミング」教えることができるように、ここでこっそりと勉強してしまおうという企画です。
 今週から「文字列操作」について説明していきます。
プログラムをある程度理解して、自分なりに作ってみようとした場合、「文字列」の処理を行わなけばならない場合が多数出てきます。そこで、今回から数回に分けて文字列の操作について説明していきます。

1.文字数を取得
文字列の文字数を取得する場合にはLen関数を使用します。Len関数の使用方法は次の通りです。

戻り値=Len(文字列または変数)



Dim  A  as    string
Dim  B  as   Integer
A="東京特許許可局”
B=Len(A)

上記を実行した場合、Bには「7」が返されます。

Len関数は大文字・小文字・全角・半角すべて1文字は1となります。
同様にバイト数を数える場合はLenB関数を使用します。

Dim  A  as    string
Dim  B  as   Integer

A="東京特許許可局”
B=LenB(A)

先ほどLen関数では「7」が返ってきたのに対し、LenBの場合バイト数ですので「14」が返ってきます。
補足:バイト数に関して
 文字には全角・半角があります。同じカタカナでも「ア」のように半角の場合のバイト数は1となります。それに対し全角「ア」の場合、表示でもわかる通り、半角の2倍横に伸びているのでバイト数は「2
」となります。

2.文字列の置換
ある文字列の中から指定の文字列を別の文字列に置き換える場合にReplace関数を使用します。Replace関数の使用方法は次の通りです。

Replace(置換される文字列または変数,検索する文字列, 置換する文字列または変数, 検索開始する位置 省略可能, 置換する桁数 省略の場合はすべて置換, 比較モード 省略可能)

注)比較モードを指定する場合
vbBinaryCompare(0) バイナリモードで比較 大文字と小文字を区別する
vbTextCompare(1) テキストモードで比較 大文字と小文字を区別せず



Dim  A  as    string
Dim  B  as   Integer

A="東京特許許可局”
B=Replace(A,”東京”,”日本国”)

上記の場合、Bには「日本国特許許可局」が返ってきます。


Dim  A  as    string
Dim  B  as   Integer

A="東京特許許可局”
B=Replace(A,”東京”,”日本国”,3)

 上記の場合、Aの"東京特許許可局”の3つ目の文字以降「特許許可局」の中から「東京」を検索しますので、結果として「東京特許許可局」が返ってきます。
 このReplace関数は特殊文字の置換も行うことができます。特殊文字は前回の講座で説明したコードを使用します。

 また、Replace関数の戻り値は引数の指定によって変わります。その場合は次のようになります。

置換される文字列の長さが0("")の場合 戻り値:長さ0の文字列("")
置換される文字列の長さがNull(何もない・つまり変数に値も代入していない)の場合 戻り値:エラー
検索する文字列が長さ0("")の場合 戻り値:置換される文字列そのまま
置換の文字列が長さ0("")の場合 戻り値:置換される文字列で検索する文字列が削除された文字列
検索する開始位置の値が検索する文字列が長さ文字数より大きい 戻り値:長さ0の文字列("")
置換する文字列数が0の場合 戻り値:置換される文字列そのまま


 本日はここまでとなります。次回も引き続き文字列操作について説明します。