タイトル : Re^2: MidB関数 投稿日 : 2009/05/16(Sat) 18:02 投稿者 : 魔界の仮面弁士
> この中でのリンク先が現在は無くなっています。 VB ラボ! のサイトですね。 当時も指摘されていましたが、そのサンプルはいろいろと間違っているので、 一応ツッコミを入れさせてください。 > Private Function LenBB(sTargetStr As String) As Long > LenBB = 0 > If IsNull(sTargetStr) Then IsNull(sTargetStr) が True を返す事はありえないので、 この部分の If 文は不要です。 sTrargetStr As Variant であれば意味を成しますが、その場合は 最初の LenBB = 0 の行は冗長となります。(どうせその後で上書きされてしまうため) > Private Function MidBB(sTargetStr As String, lStrPos As Long, lLength As Long) As String > MidBB = "" > If IsNull(sTargetStr) Then こちらも同様。Null 値を保持できるデータ型は、Variant 型だけですが、 sTargetStr は String 型であるため、IsNull(sTargetStr) は常に False です。 > MidBB = Null これも NG です。 String 型に Null 値を代入することはできないので、これが処理された場合、 実行時エラー「Null の使い方が不正です」が発生することになります。 ただし、先の『If IsNull(sTargetStr) Then』の条件自体が間違っているため、 実際には、この部分の代入処理が実行される事はありません。 --- で、その代替となる関数を下記に掲載しておきました。 http://hanatyan.sakura.ne.jp/patio/read.cgi?no=229 このコードを貼り付けた上で S = MidA(A1, 4, 6) のようにして利用できます。 |