目安箱 IV

目安箱投稿のルールはこちらをごらんください。
ご意見は電子メールで承っています。
「目安箱」は質問禁止です。技術的な質問はそれぞれの質問箱へどうぞ。

迷惑投稿防止のため、URLの入力を制限しています。ご了承ください。

  新規投稿 ┃ツリー表示 ┃一覧表示 ┃トピック表示 ┃検索 ┃設定 ┃ホーム  
136 / 277 ←次へ | 前へ→

【153】Split関数
Excel  Red  - 06/9/9(土) 2:58 -

引用なし
パスワード
   '=========================================================================================
'
' Split関数(各要素ごとに区切られた文字列から1次元配列を作成し、返します。)
'
'-----------------------------------------------------------------------------------------
'指定項目  説明
'expression 必ず指定します。文字列と区切り文字を含んだ文字列式を指定します。
'      引数 expression が長さ 0 の文字列 ("") である場合、Split関数は、要素も
'      データもない空の配列を返します。
'delimiter  省略可能です。文字列の区切りを識別する文字を指定します。
'      引数 delimiter を省略すると、区切り文字にスペース (" ") が使用されます。
'      引数 delimiter が長さ 0 の文字列 ("") である場合は、引数 expression 全体の
'      文字列を含む単一の要素の配列を返します。
'limit    省略可能です。返す配列の要素数を指定します。-1 を指定すると、すべての文字列を
'      含んだ配列を返します。
'compare   省略可能です。文字列式を評価するときに使用する文字列比較のモードを表す数値を
'      指定します。設定する値については、次の「設定値」を参照してください。
'
'引数 compare の設定値は次のとおりです。
'
'定数 値 説明
'VbUseCompareOption  -1  Option Compare ステートメントの設定を使用して比較を行います。
'vbBinaryCompare    0  バイナリ モードで比較を行います。
'vbTextCompare     1  テキスト モードで比較を行います。
'=========================================================================================
Public Function Split _
    (Expression As String, Optional Delimiter, Optional ByVal Limit As Long = -1, _
    Optional Compare As VbCompareMethod = vbBinaryCompare)
    
'-- 変数の設定 --
Dim Result() As String
Dim Pos As Long
Dim Start As Long
Dim DelimStr As String

'-- 戻り値初期化 --
  Split = Array() '空の配列を生成します。
  
'-- 引数確認 --
  If Expression = "" Then Exit Function
  If Limit = 0 Then Exit Function
  
'-- 初期設定 --
  DelimStr = IIf(IsMissing(Delimiter), " ", Delimiter)
  ReDim Result(0)
  Start = 1
  Pos = IIf(DelimStr = "", 0, InStr(Start, Expression, DelimStr, Compare))
  
'-- 配列要素の設定 --
  Do Until Pos = 0
    If UBound(Result) = Limit - 1 Then Exit Do
    Result(UBound(Result)) = Mid$(Expression, Start, Pos - Start)
    ReDim Preserve Result(UBound(Result) + 1)
    Start = Pos + Len(DelimStr)
    Pos = InStr(Start, Expression, DelimStr, Compare)
  Loop
  
'-- 配列最終要素の設定 --
  Result(UBound(Result)) = Mid$(Expression, Start)

  Split = Result
  Erase Result
  
End Function

1,540 hits

【152】97で2000以降に追加された関数を使う Red 06/9/9(土) 2:55 Excel[未読]
【153】Split関数 Red 06/9/9(土) 2:58 Excel[未読]
【154】InStrRev関数 Red 06/9/9(土) 3:00 Excel[未読]

  新規投稿 ┃ツリー表示 ┃一覧表示 ┃トピック表示 ┃検索 ┃設定 ┃ホーム  
136 / 277 ←次へ | 前へ→
ページ:  ┃  記事番号:   
0
(SS)C-BOARD v3.8 is Free