Public Function Split(ByVal
splitedString
As String, _ ByVal splitingString As String) As Variant 文字列を引数splitingStringで指定される区切り文字で分割した文字列(1次元配列)を返します。 |
Public Function Replace(ByRef
replacedString As String, _ ByRef oldString As String, _ ByRef newString As String) As String 文字列を置き換えます。 |
Public Function countStr(ByRef
str1 As
String, _ ByRef str2 As String, _ Optional ByVal compare As Long = 0) As Long str1の中にstr2が何個あるか調べて返します。 |
Public Function lastInStr(Optional
ByVal
start = 1, _ Optional ByVal string1 = "", _ Optional ByVal string2 = "", _ Optional ByVal compare As Long = 0) As Long string2でstring1を検索し、最後に見つかった場所を返します。 |
Public Function exportStr(ByRef
str1 As
String, ByVal objCol As Collection) As String str1で2つの"で囲まれている部分を見つけ出し、その文字列("も含む)をobjColの末尾に退避させます。 2つの"で囲まれていた部分はChr(127)に置き換わります。 |
Public Function importStr(ByRef
str1 As
String, ByVal objCol As Collection) As String exportStrで退避させた文字列を戻します。 |
Split |
文字列を引数splitingStringで指定される区切り文字で分割した文字列(1次元配列)を返します。(※1)in引数:
splitedString:分割される文字列
splitingString:分割文字列
だるまが適当に作ったSplit関数 |
Excel 2003標準のSplit関数 |
|
第1引数 |
splitedString:分割される文字列 |
expression:分割される文字列 |
第2引数 |
splitingString:分割文字列 省略不可 |
delimiter:分割文字列 省略すると" "(スペース)を指定したのと同じになる。 |
第3引数 |
ない Excel 2003標準のSplit関数のlimt引数で-1を指定したのと同じ。 |
limit:返す配列の要素数を指定する。 -1(デフォルト値)を指定するとすべて区切る。 |
第4引数 |
ない Excel 2003標準のSplit関数のcopare引数の何に対応しているんだろう? |
compare:比較モード (Option Compareステートメント・バイナリ・テキストの中から選ぶ) |
第1引数が
""(空文字)だった場合 |
print(ubound(split("",","))) 0 |
print(ubound(split("",","))) -1 |
Replace |
文字列を置き換えます。(※1)in引数:
replacedString:置換対象文字列※1:Excel 2003には始めからReplace関数があります。(Excel X for Macには無い。)
oldString:検索文字列
newString:置換文字列
だるまが適当に作ったReplace関数 |
Excel 2003標準のReplace関数 |
|
第1引数 |
replacedString:分割される文字列 |
expression:分割される文字列 |
第2引数 |
oldString:検索文字列 |
find:分割文字列 |
第3引数 |
newString:置換文字列 |
replace:置換文字列 |
第4引数 | ない Excel 2003標準のReplace関数のstart引数で1を指定したのと同じ。 |
start:検索開始位置 |
第5引数 | ない Excel 2003標準のReplace関数のcount引数で-1を指定したのと同じ。 |
count:置換する文字列数 |
第6引数 |
ない Excel 2003標準のReplace関数のcopare引数の何に対応しているんだろう? |
compare:比較モード (Option Compareステートメント・バイナリ・テキストの中から選ぶ) |
countStr |
str1の中にstr2が何個あるか調べて返します。in引数:
str1:検索対象文字列備考:
str2:検索文字列
compare:文字列比較モード(省略すると0を指定したのと同じ)
0:バイナリモード(大文字、小文字を区別する)
1:テキストモード(大文字、小文字を区別しない)
str1もしくはstr2が空文字の時は0が返されます。
lastInStr |
string2でstring1を検索し、最後に見つかった場所を返します。in引数:
start:検索開始位置(よく考えたら、指定する意味が無い)備考:
string1:検索対象文字列
string2:検索文字列
compare:文字列比較モード(省略すると0を指定したのと同じ)
0:バイナリモード(大文字、小文字を区別する)
1:テキストモード(大文字、小文字を区別しない)
VBAにあるStrings.InStr関数と引数を合わせたのですが、間違いでした。
何文字目まで検索するかという引数を持たせるべきでした。
exportStr |
str1で2つの"で囲まれている部分を見つけ出し、その文字列("も含む)をobjColの末尾に退避させます。in引数:
※str1に含まれる"の個数が奇数個の場合、最後の"から文字列の最後までの部分文字列もobjColに退避させます。
str1:文字列返り値:
objCol:2つの"で囲まれている部分文字列が末尾に追加される。(out引数ではありません。Nothingを入れないで下さい。)
引数str1で2つの"で囲まれた部分をChr(127)にした文字列。例:
引数str1="abcd""123""efg""456"
引数ojbCol={"""aaa""","""bbb"""}
の場合、exportStrメソッドを実行すると、
引数str1="abcd""123""efg""456" ※inout引数ではないので変化しない。
引数ojbCol={"""aaa""","""bbb""","""123""","""456"} ※引数で指定したコレクションオブジェクトの 末尾に2つの"で囲まれた文字列が追加される。
返り値="abcd" & Chr(127) & "efg" & Chr(127)
となります。
importStr |
str1に含まれるChr(127)をobjColにある文字列に置き換えます。in引数:
objColにある文字列の個数よりstr1に含まれるChr(127)の方が多かった場合Chr(127)が残ります。
objColからstr1へ置き換えた文字列はobjColからは取り除かれます。
str1:文字列返り値:
objCol:文字列があるコレクション。
引数str1に含まれるChr(127)をobjColにある文字列で置き換えた文字列。例:
引数str1="abcd" & Chr(127) & "efg" & Chr(127)
引数ojbCol={"AAA","BBB","123","456"}}
の場合、importStrメソッドを実行すると、
引数str1="abcd" & Chr(127) & "efg" & Chr(127) ※inout引数ではないので変化しない。
引数ojbCol={"123","456"} ※引数で指定したコレクションオブジェクトの先頭から2つの文字列が取り除かれる。
返り値="abcdAAAefgBBB"
となります。