2013.
10.
28
08:53:48
ド忘れしたのでメモっておきます。
ちなみにExcel2010ね。
ExcelVBAでの文字列の置換は
でOK。
サンプルはこちらφ(--)
第4引数で検索開始位置を指定できるそうです。
とすればOK……らしいのですが、これ、検索開始位置じゃなくね(--?
正確には「指定位置より左が捨てられる」だと思います。
こんなコードを書くとφ(--)
こんな結果になりますよφ(--)
左2文字が切り捨てられちゃいました。
Excel2010特有の動きなんでしょうか(--?
どの説明見ても「検索開始位置」って書いてあるけどなんか腑に落ちません。
まぁ良いや(--ゞ
気を取り直して、第5引数で置換回数を指定できるらしい。
ですね。
未指定時は全置換、指定時は見つかった順に指定回数置換してくれるようです。
サンプルはこちらφ(--)
最後にReplace関数には第6引数もあるそうです。
文字式を比較するときの種別(テキストとかバイナリとか)を指定できるのだそうな。
書き方は
ですね。
比較種別に指定可能な値は
です。
まぁ、ぶっちゃけ普通に使う分には気にしなくて良いですけどね。
単純な関数の割には思ったより書くことがありました。
取りあえず、そんな感じ(--)ノ
ちなみにExcel2010ね。
ExcelVBAでの文字列の置換は
Replace(置換元の文字列, 置換対象の文字列, 置換後の文字列)
でOK。
サンプルはこちらφ(--)
Dim text As String
text = "AfromA"
text = Replace(text, "from", "to")
'結果は「AtoA」
MsgBox text
text = "AfromA"
text = Replace(text, "from", "to")
'結果は「AtoA」
MsgBox text
第4引数で検索開始位置を指定できるそうです。
Replace(置換元の文字列, 置換対象の文字列, 置換後の文字列, 検索開始位置)
とすればOK……らしいのですが、これ、検索開始位置じゃなくね(--?
正確には「指定位置より左が捨てられる」だと思います。
こんなコードを書くとφ(--)
Dim text As String
text = "1234567890"
text = Replace(text, "from", "to", 3)
MsgBox text
text = "1234567890"
text = Replace(text, "from", "to", 3)
MsgBox text
こんな結果になりますよφ(--)
34567890
左2文字が切り捨てられちゃいました。
Excel2010特有の動きなんでしょうか(--?
どの説明見ても「検索開始位置」って書いてあるけどなんか腑に落ちません。
まぁ良いや(--ゞ
気を取り直して、第5引数で置換回数を指定できるらしい。
Replace(置換元の文字列, 置換対象の文字列, 置換後の文字列, 検索開始位置, 置換回数)
ですね。
未指定時は全置換、指定時は見つかった順に指定回数置換してくれるようです。
サンプルはこちらφ(--)
Dim text As String
text = "AfromAfromAfromA"
text = Replace(text, "from", "to", 1, 2)
'結果は「AtoAtoAfromA」
MsgBox text
text = "AfromAfromAfromA"
text = Replace(text, "from", "to", 1, 2)
'結果は「AtoAtoAfromA」
MsgBox text
最後にReplace関数には第6引数もあるそうです。
文字式を比較するときの種別(テキストとかバイナリとか)を指定できるのだそうな。
書き方は
Replace(置換元の文字列, 置換対象の文字列, 置換後の文字列, 検索開始位置, 置換回数, 比較種別)
ですね。
比較種別に指定可能な値は
vbUseCompareOption:-1:Option Compareステートメントの設定値を使用
vbBinaryCompare:0:テキストで比較
vbTextCompare:1:バイナリで比較
vbBinaryCompare:0:テキストで比較
vbTextCompare:1:バイナリで比較
です。
まぁ、ぶっちゃけ普通に使う分には気にしなくて良いですけどね。
単純な関数の割には思ったより書くことがありました。
取りあえず、そんな感じ(--)ノ