仕事で未だに使うことのあるを改めて体系的に学びたく
を読んでいく。
目次
4. 「文字列」と「日付」と「時間」の扱い方
4.1 文字列の扱い方
4.1.1 文字列の基本はダブルクォーテーションで「囲む」
で扱う際には「""」(ダブルクォーテーション)で文字列を囲む。
- 特殊な文字列を表す定数の代表例
定数 |
値 |
内容 |
---|---|---|
キャリッジリターン*1 | ||
ラインフィード*2 | ||
キャリッジリターンとラインフィード | ||
または | ,のプラットフォームに応じた標準改行文字 | |
タブ |
4.1.2 文字列の情報や一部分を取り出す関数
関数 |
説明 |
---|---|
文字列を調べる*3 | |
文字列内の指定した文字列のある場所を調べる | |
文字列内の指定した文字列のある場所を逆から調べる | |
文字列の右から指定した文字数だけ取り出す | |
文字列の左から指定した文字数だけ取り出す | |
文字列の指定した位置から指定した文字数だけ取り出す |
' Len:長さを調べる Dim str As String str = Len("VBA") Debug.Print str 'InStr:文字が含まれている位置 str = "VBA" If InStr(str, "VBA") > 0 Then MsgBox "変数strに「VBA」という文字列が含まれている" End If 'Right,Left,Mid:文字列の位置を調べる Right("Excel VBA", 3) Left("Excel VBA", 3) Mid("Excel VBA", 3,3)
4.2 文字列を変換する関数
文字列を整えたり、任意の値を基に「型にはめた文字列」を作成したりする関数も用意される。
関数 |
説明 |
---|---|
文字列左右の余分なスペース(空白)を取り除く | |
文字列左側の余分なスペース(空白)を取り除く | |
文字列右側の余分なスペース(空白)を取り除く | |
文字列内の任意の文字列を置き換える | |
大文字・小文字・ひらがな・カタカナ・全角・半角を統一する | |
指定した値を任意の表示形式で表示した文字列を返す |
4.2.1 文字列の形式を統一する
文字列中の「ひらがな/カタカナ」「全角/半角」「大文字/小文字」などの表記を統一するのに関数を用いる。
StrConv(置き換え対象文字列,変換ルール)
- 第2引数に指定する定数
関数 |
値 |
形式 |
---|---|---|
大文字に変換 |
||
小文字に変換 |
||
先頭の文字を大文字に変換 |
||
全角文字に変換 |
||
半角文字に変換 |
||
カタカナに変換 |
||
ひらがなに変換 |
||
既存のコードページからに変換 |
||
から既定のコードページに変換 |
4.3 正規表現
で正規表現を利用するには、オブジェクトを用いる。オブジェクトを用いるには、関数の引数にを指定して実行する。
プロパティ/メソッド |
用途 |
---|---|
プロパティ |
全体を対象にするか、最初の1つが見つかった時点で終了するかを真偽値()で指定 |
プロパティ |
パターン文字列を指定 |
メソッド |
マッチングを行なう。結果をコレクションの戻り値として返す |
メソッド |
プロパティに指定したパターンの箇所を任意の文字列に置き換えた結果を返す |
メソッド |
マッチングするものがあるかどうかをテストし、結果を真偽値で返す |
- オブジェクトで利用できるメタ文字の例
メタ文字/ |
マッチする要素 |
---|---|
. |
改行を除く任意の1文字 |
[ABC] |
指定された任意の1文字(AかBかC) |
[^ABC] |
指定されていない任意の文字列(A・B・C除く文字) |
? |
直前パターンの0~1回までの繰り返し |
+ |
直前パターンの1回以上の繰り返し |
* |
直前パターンの0回以上の繰り返し |
^ |
文字列の先頭 |
$ |
文字列の末尾 |
\n |
改行 |
\r |
キャリッジリターン |
\t |
タブ文字 |
\d |
数字 |
\D |
数字以外 |
\s |
スペース文字 |
\S |
スペース文字以外 |
\ |
メタ文字のエスケープ文字。「\?」は「?」にマッチ |
( ) |
後方参照時のグループを指定 |
$1 $2 … |
後方参照時の各グループ文字 |
マッチングの結果はコレクションの形で返され、そこから個々のマッチング結果へとアクセスする。