【関数・プロパティ設定をつかう】
12 指定した行番号と列番号のセル番地を取得
13 特定の文字列を指定文字列に置き換える
14 セル列番号を英字の列名に変換
15 文字列の中で特定の文字の位置を取得
16 セルの書体を変更
17 セルの文字サイズを変更
18 セルの罫線を変更
文字列の中で特定の文字の位置を取得
パイさん
「今回は、Excel VBA/マクロのInStr関数によって文字列の中で特定の文字があればその位置を取得してみましょう。
InStr関数の構文は、次のようになります。」
パイさん
「InStr関数では、
引数:String1に対象となる文字列、
引数:String2に検索したい文字列を入れると、
対象となる文字列の中で指定した文字を検索し、
ヒットすれば、戻り値として、文字列の先頭からの位置数
を受け取ることができます。
予め、次のようなExcelシートを用意します。
ExcelのセルA2に『セルを思いのままに動かそう』、セルC2に『セ』を入れた後、
InStr関数をつかい対象となる文字列の中で指定した文字を検索し、文字列の先頭からの位置数を受け取って、
セルD2に格納してみましょう。」
ソンくん
「早速、InStr関数をつかってみます。引数としてセルA2・セルC2から取得した文字列を渡してから、
先頭からの位置数を受け取り、セルD2に格納するのだから、
左辺には、Range("D2").Value
右辺には、InStr関数、引数:String1にRange("A2").Value、
引数:String2にRange("C2").Value
を当てはめれば良いのだから、
Range("D2").Value = InStr(Range("A2").Value, Range("C2").Value)
これで良いのでしょうか。」
Sub InStr関数()
Range("D2").Value = InStr(Range("A2").Value, Range("C2").Value)
End Sub
パイさん
「それでは、そのマクロを実行してみましょう。」
ソンくん
「InStr関数により、『セルを思いのままに動かそう』から『セ』が検索されて、セルD2に先頭からの位置『1』が
書きこまれました。」
パイさん
「ExcelのセルA2に『セルを思いのままに動かそう』、セルC2に『思』を入れた後、
InStr関数をつかい対象となる文字列の中で指定した文字を検索し、文字列の先頭からの位置数を受け取って、
セルD2に格納してみましょう。先ほどのマクロを実行してみましょう。」
ソンくん
「InStr関数により、『セルを思いのままに動かそう』から『思』が検索されて、セルD2に先頭からの位置『4』が
書きこまれました。」
パイさん
「ExcelのセルA2に『セルを思いのままに動かそう』、セルC2に『動』を入れた後、
InStr関数をつかい対象となる文字列の中で指定した文字を検索し、文字列の先頭からの位置数を受け取って、
セルD2に格納してみましょう。先ほどのマクロを実行してみましょう。」
ソンくん
「InStr関数により、『セルを思いのままに動かそう』から『動』が検索されて、セルD2に先頭からの位置『10』が
書きこまれました。」
パイさん
「ExcelのセルA2に『セルを思いのままに動かそう』、セルC2に『無』を入れた後、
InStr関数をつかい対象となる文字列の中で指定した文字を検索し、文字列の先頭からの位置数を受け取って、
セルD2に格納してみましょう。先ほどのマクロを実行してみましょう。」
ソンくん
「InStr関数により、『セルを思いのままに動かそう』から『無』が検索されたけど、ヒットしなかったため、
セルD2に『0』が書きこまれました。」
パイさん
「このように、InStr関数をつかえば、文字列の中で特定の文字の位置を取得することができます。」