第47回.VBA関数(文字列操作,Replace,InStr,StrConv)
文字列操作は、マクロVBAでプログラミングする上で必須です、
データ整形、データクレンジング、データクリーニング、
これらを行うVBAにおいて不可欠なものが、文字列操作関数です。
Replace関数、InStr関数、StrConv関数について解説します。
これら以外の他の関数は、一覧のリンクより個別のページを参照して下さい。
文字列操作に関するVBA関数の一覧
太字は、このページの下でも解説しています。
関数 | 説明 | 対応ワークシート関数 |
Asc,AscB,AscW | 指定した文字列内にある先頭の文字の文字コードを返す変換関数です | ワークシート関数のCODE,UNICODEと同様ですが、文字コードが違います。 |
Chr,ChrB,ChrW | 指定した文字コードに対応する文字を示す文字列型 (String) の値を返します | ワークシート関数のCHAR,UNICHARと同様ですが、文字コードが違います。 |
LCase | アルファベットの大文字を小文字に変換します | ワークシート関数のLOWERと同じ |
UCase | アルファベットの小文字を大文字に変換します | ワークシート関数のUPPERと同じ |
Len,LenB | 指定した文字列の文字数を表す値を返します LenBはバイト数です |
ワークシート関数と同じ |
Left,LeftB | 文字列の左端から指定した文字数分の文字列を返します LeftBはバイト数です |
ワークシート関数と同じ |
Mid,MidB | 文字列から指定した文字数分の文字列を返します MidBはバイト数です |
ワークシート関数と同じ、文字数は省略可能 |
Right,RightB | 文字列の右端から指定した文字数分の文字列を返します RightBはバイト数です |
ワークシート関数と同じ |
Replace | 指定された文字列の一部を、別の文字列で指定された回数分で置換した文字列を返します | ワークシート関数のSUBSTITUTEと同じ機能 |
InStr | ある文字列の中から指定した文字列を検索し、最初に見つかった文字位置を返す | ワークシート関数のFINDと同じ機能 ただし大文字小文字の区別はcompareで指定可能。 |
InStrRev | ある文字列の中から指定された文字列を最後の文字位置から検索を開始し、最初に見つかった文字位置を返す文字列処理関数です | |
Space | 指定した数のスペースからなる文字列を返す文字列処理関数です | |
String | 指定した文字コードの示す文字、または文字列の先頭文字を、指定した文字数だけ並べた文字列を返す文字列処理関数です | ワークシート関数のREPTと似ているが、REPTが文字列(複数文字)を繰り返すのに対し、Stringは先頭1文字のみ繰り返します。また引数の順序が違います。 |
Str | 数式の値を文字列で表した値 (数字) で返す文字列処理関数です | |
StrConv | 指定した変換方式で変換した文字列をバリアント型 (内部処理形式 String の Variant) で返します | |
StrReverse | 指定された文字列の文字の並びを逆にした文字列を返します | |
Trim | 指定した文字列から先頭と末尾の両方のスペースを削除した文字列を表す値を返します | ワークシート関数とほぼ同じだが、中間スペースは削除されない |
LTrim | 指定した文字列から先頭のスペースを削除した文字列を表す値を返します | |
RTrim | 指定した文字列から末尾のスペース (RTrim)を削除した文字列を表す値を返します | |
Val | 指定した文字列に含まれる数値を適切なデータ型に変換して返します | ワークシート関数のVALUEに近いが、先頭の数値部分のみ取り出す |
対応するワークシート関数が解らない場合は、まずは、そちらを覚えて頂きたい。
ワークシート関数と同じと記していても、全く同一と言う訳ではありません。
引数や戻り値において、若干の違いがあるものもありますので注意願います。
マクロにおいて、良く使うものの中から、少々説明が必要と思われるものを以下に説明します。
上表では太字にしてあります。
Replace関数
expression | 必ず指定します。 置換する文字列を含む文字列式 を指定します。 |
find | 必ず指定します。 検索する文字列を指定します。 |
replace | 必ず指定します。 置換する文字列を指定します。 |
start | 省略可能です。 引数 expression 内の内部文字列の検索開始位置を指定します。 この引数を省略すると、1 が使用されます。. |
count | 省略可能です。 置換する文字列数を指定します。この引数を省略すると、既定値の -1 が使用され、すべての候補が置換されます。 |
compare | 省略可能です。 文字列式を評価するときに使用する文字列比較のモードを表す数値を指定します。設定する値については、次の「設定値」を参照してください。 |
Replace関数の使用例
InStr関数
start | 省略可能です。 検索の開始位置を表す数式を指定します。 省略すると、先頭の文字から検索されます。引数 start に Null 値が含まれている場合、エラーが発生します。 引数 compare を指定した場合は、start も指定する必要があります。 |
string1 | 必ず指定します。 検索対象となる文字列式を指定します。 |
string2 | 必ず指定します。 引数 string1 内で検索する文字列式を指定します。 |
compare | 省略可能です。文字列比較の比較モードを指定する番号を設定します。 引数 compare が Null 値の場合は、エラーが発生します。 引数 compare を指定した場合は、引数 start も指定する必要があります。 引数 compare を省略すると、Option Compare ステートメントの設定に応じて、比較モードが決まります。 ローカル固有の比較ルールを使用するには、有効なLCID (LocaleID) を指定します。 |
※注意
指定するとコンパイルエラーになります。
以下のVBA関数一覧のページも参考にしてください。
StrConv関数
string | 必ず指定します。 変換する文字列式を指定します。 |
||||||||||||||||||||
conversion |
必ず指定します。整数型 (Integer) の値を指定します。
|
||||||||||||||||||||
LCID | 省略可能です。システムとは異なる国別情報識別子 (LCID) を指定できます。 既定値はシステムが使用する LCID です。 |
StrConv関数の使用例
StrConv("123aAbBcC",vbLowerCase) → "123aabbcc"
StrConv("123aAbBcC",vbWide) → "123aAbBcC"
StrConv(StrConv("アイウエオ",vbWide),vbHiragana) → "あいうえお"
以下のVBA関数一覧のページも参考にしてください。
最後に
Replace関数、InStr関数、StrConv関数
これらの関数はマクロVBAで頻繁に使うもので、重要かつ習得必須な関数になります。
同じテーマ「マクロVBA入門」の記事
第44回.VBA関数について
第45回.VBA関数(Format)
第46回.VBA関数(日付,DateAdd)
第47回.VBA関数(文字列操作,Replace,InStr,StrConv)
第48回.VBA関数(その他,Fix,Int,Rnd,Round,IsEmpty)
第49回.Like演算子とワイルドカード
第50回.総合練習問題6
第87回.WorksheetFunction(ワークシート関数を使う)
第51回.Withステートメント
第52回.オブジェクト変数とSetステートメント
第53回.Workbookオブジェクト
新着記事NEW ・・・新着記事一覧を見る
TRIMRANGE関数(セル範囲をトリム:端の空白セルを除外)|エクセル入門(2024-08-30)
正規表現関数(REGEXTEST,REGEXREPLACE,REGEXEXTRACT)|エクセル入門(2024-07-02)
エクセルが起動しない、Excelが立ち上がらない|エクセル雑感(2024-04-11)
ブール型(Boolean)のis変数・フラグについて|VBA技術解説(2024-04-05)
テキストの内容によって図形を削除する|VBA技術解説(2024-04-02)
ExcelマクロVBA入門目次|エクセルの神髄(2024-03-20)
VBA10大躓きポイント(初心者が躓きやすいポイント)|VBA技術解説(2024-03-05)
テンキーのスクリーンキーボード作成|ユーザーフォーム入門(2024-02-26)
無効な前方参照か、コンパイルされていない種類への参照です。|エクセル雑感(2024-02-17)
初級脱出10問パック|VBA練習問題(2024-01-24)
アクセスランキング ・・・ ランキング一覧を見る
1.最終行の取得(End,Rows.Count)|VBA入門
2.セルのコピー&値の貼り付け(PasteSpecial)|VBA入門
3.変数宣言のDimとデータ型|VBA入門
4.繰り返し処理(For Next)|VBA入門
5.RangeとCellsの使い方|VBA入門
6.ブックを閉じる・保存(Close,Save,SaveAs)|VBA入門
7.セルのクリア(Clear,ClearContents)|VBA入門
8.メッセージボックス(MsgBox関数)|VBA入門
9.条件分岐(Select Case)|VBA入門
10.マクロとは?VBAとは?VBAでできること|VBA入門
このサイトがお役に立ちましたら「シェア」「Bookmark」をお願いいたします。
記述には細心の注意をしたつもりですが、
間違いやご指摘がありましたら、「お問い合わせ」からお知らせいただけると幸いです。
掲載のVBAコードは動作を保証するものではなく、あくまでVBA学習のサンプルとして掲載しています。
掲載のVBAコードは自己責任でご使用ください。万一データ破損等の損害が発生しても責任は負いません。