tagCANDY CGI VBレスキュー(花ちゃん)の Visual Basic 6.0用 掲示板
VBレスキュー(花ちゃん)の Visual Basic 6.0用 掲示板
[ツリー表示へ]  [ワード検索]  [Home]

タイトル 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)
のようにして利用できます。

- 関連一覧ツリー をクリックするとツリー全体を一括表示します)

古いスレッドにレスはつけられません。