Visual Basic Tips(VB関数)


Format$:日付文字列8桁に"/"(スラッシュ)を挿入

'下のどちらか
Format$("20010501","@@@@/@@/@@")
Format$("20010501","0000/00/00")

Format$:数値データ表示で先頭に空白を付加し桁揃え

Format$(Format$(100,"####0"),"@@@@@")
'(Right$(Space$(5) & Format$(100,"####0"),5)よりはすっきりする)

Format$:日付から週を表す数値に変換(通常は日曜日が1だが)

Format$(Cdate("2001/01/01"),"w",vbMonday)
'この場合は月曜日から1,2,3...としている

Mid$:文字列の一部の置換

'Mid$関数を左辺値に使用する
Mid$(strWork,2,3) = "AAA"

Dir$:ファイルの存在確認

Dir$("C:\TEST.TXT") --> ファイルが存在すれば指定ファイル名を返す
(但しドライブ、ディレクトリのエラーが在ればVBエラーが発生する)

Cint(),Ccur(),CDbl():書式化された数値にはVal関数を使用しない

'Val関数の変わりにCint(),Ccur(),CDbl()等の関数を使用する
strWork = "51,234"
TextBox1.Text = Val(strWork)   '-->"51"と 表示される
TextBox1.Text = CDbl(strWork)  '-->"51234"と表示される

Cint(),Ccur(),CDbl():16進文字列を数値化する

'文字列の先頭に"&H"を付加して数値化
strWork = "AF"
intWork = CInt("&H" & strWork)
lngWork = Clng("&H" & strWork)
'注意:Cintの場合は4桁を超えるとオーバーフローエラーが発生し、8000~FFFFの間はマイナスの値になる。

Array:配列要素が可変の取り扱い

'バリアント型にArray関数を使用して配列データを設定する
    Dim pvntData As Variant
    pvntData = Array(1, 5, 9)
    Call Test1(pvntData)
    pvntData = Array(1, 5)
    Call Test1(pvntData)
---------------------------------
Private Sub Test1(ByVal avnt As Variant)
    Dim pint As Integer
    For pint = 0 To UBound(avnt)
        MsgBox "TEST..." & avnt(pint), vbOKOnly, "TEST"
    Next pint
End Sub
注意:(VBヘルプより)
Array 関数を使用して作成した配列のインデックスの最小値は、常に 0 です。
ほかの種類の配列とは異なり、Option Base ステートメントに最小値を指定しても
影響を受けません。

ページのトップへ戻る