MW211 EXIT

devlog
ExcelVBA/区切文字で区切って値を取得する方法
2014年10月04日
例えば「前:後」の「前」のみを抽出する方法。
┌──────────────────────────────────────┐
│If InStr(値, ":") > 0 Then                                                  │
│    取得値 = Left(値, InStr(値, ":") - 1)                                   │
│Else                                                                        │
│    取得値 = 値                                                             │
│End If                                                                      │
└──────────────────────────────────────┘

これを配列にしてから抽出する方法に切り替えると以下の通り。
┌──────────────────────────────────────┐
│Dim 配列 As Variant                                                         │
│配列 = Split(値, ":")                                                      │
│If UBound(配列) > 0 Then                                                    │
│    取得値 = 配列(0)                                                        │
│Else                                                                        │
│    取得値 = 値                                                             │
│End If                                                                      │
└──────────────────────────────────────┘
「UBound(配列) > 0」の条件式は不要だが(*1)、
二番目以降で応用したい場合向けに記載してある(一番目なら本当に不要)
*1:区切文字の該当がない場合は、一つの配列に全て格納される
    よって、この場合「UBound(配列)」は「0」になり、
    「配列(0)」にもアクセスできる(エラーにはならない)
分類:ExcelVBA