4.ステートメント(statement)

Excel VBA(VB6.0)と Excel 組み込み関数(fx)

Navi Open
Close Navi
 Microsoft Docs によると ステートメントの説明として次の様に記されています。
Visual Basic におけるステートメントは完全な命令です。 キーワード、演算子、変数、定数、および式を含めることができます。 各ステートメントは、次のいずれかのカテゴリに属します。

*宣言ステートメント。変数、定数、またはプロシージャの名前を指定します。データ型を指定することもできます。
*実行可能なステートメント。アクションを開始します。 これらのステートメントでは、メソッドまたは関数を呼び出すことができ、コードのブロックをループまたは分岐できます。 実行可能なステートメントには、変数または定数に値または式を代入する、代入ステートメントが含まれます。
と有ります。
とても解り易い説明です。VB/VBA に於けるステートメントの解説について調べてみると、とても解り難い説明が多いですね。
そのため ステートメントとは何? と問われても、具体的に且つ明確に しかも端的にこたえられる人は少ないと思います。
代表的なステートメントと、その使用例を集めてみました。
大きく「宣言ステートメント」と「実行可能なステートメント」に分けていますが、年代によっては「関数」に分類されるものも有ります。
ads by google
宣言ステートメント
Const
定数とその値を宣言するには、Const ステートメントを使用します。
定数を宣言することで、値にわかりやすい名前を割り当てます。
宣言した定数を変更したり、新しい値を割り当てたりすることはできません。
記述凡例

Public Const MyInteger As Integer = 42
Private Const DaysInWeek As Short = 7
Protected Friend Const Funday As String = "Sunday"
       
Dim
1 つ以上の変数に対して、宣言して記憶域を割り当てます
記述凡例
Dim finished As Boolean
Dim monitorBox As System.Windows.Forms.Form
Dim bottomLabel As New System.Windows.Forms.Label
       
Function
プロシージャを定義する名前、パラメーター、およびコードを宣言します
記述凡例
Function MyFunction(ByVal j As Integer) As Double
  Return 3.87 * j
End Function
      
Option Base
モジュール レベルで使用して、配列の添字の既定の下限を宣言します
記述凡例
Option Base 1
      
Option Compare
文字列データを比較するときに使用する既定の比較方法を宣言します
記述凡例

Option Compare Binary ' That is, "AAA" is less than "aaa". 
Option Compare Text ' That is, "AAA" is equal to "aaa".
       
Option Explicit
ファイル内のすべての変数の明示的な宣言を強制させるか、変数の暗黙的な宣言を許可します
記述凡例

Option Explicit On

Option Explicit     
Option Private
Visual Basic のスタンドアロン バージョンでは無効
複数のプロジェクト間での参照が許可されているホストアプリケーションで、プロジェクトの外部からのモジュールの内容の参照が禁止されます
記述凡例
'モジュールがプライベートであることを示します
Option Private Module
       
Private
プライベート変数を宣言して記憶領域を割り当てるために、モジュール レベルで使用します
Private 変数は、その変数を宣言したモジュール内でのみ使用できます
記述凡例
Private Number As Integer
Private NameArray(1 To 5) As String
Private MyVar, YourVar, ThisVar As Integer
       
Public
モジュールレベルで使用して、パブリック変数を宣言して記憶領域を割り当てます
Public ステートメントを使用して宣言した変数は、すべてのアプリケーションのすべてのモジュール内のすべてのプロシージャで使用できます
記述凡例
Public Number As Integer
Public NameArray(1 To 5) As String
Public MyVar, YourVar, ThisVar As Integer
       
ReDim
プロシージャレベルで使用して、動的配列変数の記憶域領域を再割り当てします
ReDim ステートメントは、空のかっこ (次元下付き文字なし) を持つ Private、Public、または Dim ステートメントを使用して、既に正式に宣言されている動的配列のサイズを変更したり、サイズを変更したりするために使用されます
記述凡例
Sub ReDimTest()
'動的配列変数に対する記憶域の容量の割り当ておよび再割り当て
  Dim MyArray() As Integer
  ReDim MyArray(5)
  For i = 1 To 5
     MyArray(i) = i
  Next i
  
'配列のサイズを変更し、要素を消去
  ReDim MyArray(10)
  For i = 1 To 10
     MyArray(i) = i
  Next i
End Sub
       
Static
プロシージャ レベルで変数を宣言し、記憶域スペースを割り当てる場合に使用します。 Staticステートメントで宣言された変数は、コードが実行されている間はその値を保持します
記述凡例
Function KeepTotal(Number)
    Static Accumulate
    Accumulate = Accumulate + Number
    KeepTotal = Accumulate
End Function
 
Static Function MyFunction(Arg1, Arg2, Arg3)
    Accumulate = Arg1 + Arg2 + Arg3
    Half = Accumulate / 2
    MyFunction = Half
End Function
       
Set
オブジェクト参照を変数またはプロパティに割り当てます
Dim ステートメント、Private ステートメント、Public ステートメント、ReDim ステートメント、Static ステートメントは、オブジェクトを参照する変数の宣言のみを行います。 Set ステートメントを使用して特定のオブジェクトを割り当てるまでは、実際のオブジェクトは参照されません
記述凡例
Sub SetTest()
    Dim TestOfj As Range
    Set TestOfj = Sheets("Sheet1").Range("A3")
    TestOfj.Value = "Set_Test"
    MsgBox "Set したobject(Cell_A3)に文字を入力しました"
    Set TestOfj = Nothing
    MsgBox "objectのSetを解放しました"
End Sub
       
Sub
Sub プロシージャの名前、引数、および本文を形成するコードを宣言します
Sub ステートメントの構文には、次の指定項目があります Public,Private,Friend,Static
明示的な指定がない場合、Sub プロシージャは既定で Public になります
記述凡例
Sub SubTest()
  Dim Area As Double
  For i = 1 To 10
   If i = 10 Then
      MsgBox "loopが10に達したのでSubルーチンから抜け出します"
      Exit Sub
   End If
  Next i
End Sub
       
Type
モジュール レベルで 使用して、1 つ以上の 要素を含 むユーザー定義のデータ型を定義します
モジュール レベルでのみ使用できます。 Type ステートメントを使用してユーザー定義型を宣言した後、その型の変数を宣言の範囲内の任意の 場所で宣言できます。 Dim、Private、Public、ReDim、または Static を使用して、ユーザー定義型の変数を宣言します
記述凡例
Type Specif ' ユーザー定義型を作成します
'データ型の要素を定義します
  xStr As String
  xInt As Single
End Type

Sub TypeTest()
  Dim xValue As Specif
  xValue.xStr = "MS_Excel"
  xValue.xInt = 8.12
  MsgBox "App_version:" & xValue.xStr & "_" & xValue.xInt
End Sub
       
こちらも役に立つ情報
実行可能なステートメント
AppActivate
記述凡例


       
       
Beep
ビープ音を鳴らします
記述凡例


Sub BeepTest()
  MsgBox "Beep音を鳴らします", vbOKOnly
  Beep
End Sub
       
Call
Call キーワードは、プロシージャを呼び出すときに使用できます。 ほとんどのプロシージャ呼び出しでは、このキーワードを使用する必要はありません
記述凡例
Sub TestCall()
    Call (Sub() Console.Write("Hello"))()
    Call New TheClass().ShowText()
End Sub

 Class TheClass
 
Public Sub ShowText()
    Console.Write(" World")
End Sub

 End Class
       
ChDir
現在のディレクトリまたはフォルダーを変更します
記述凡例

ChDir("C:\'変更するアドレス'")
       
ChDrive
現在のドライブを変更します
記述凡例

ChDrive("D")
       
       
Close
objectを終了します
記述凡例


       
       
Date
データ型は、日付、時刻、またはその両方の値を格納するのに使用します
記述凡例

Dim someDateAndTime As Date = #8/13/2002 12:14 PM#
       
Declare
動的リンクライブラリ(DLL) 内の外部プロシージャへの参照を宣言するためにモジュール レベルで使用されます
記述凡例

Declare Sub First Lib "MyLib" (X As Long)
       
DefBool(Boolean)
Function プロシージャ、Property Get プロシージャの戻り値をブール型(Bool)に設定します。 このステートメントは、モジュールレベルで使用します
記述凡例

DefBool X
       
Sub DefBoolTest()
  Dim xValue
  MsgBox TypeName(xValue)
End Sub
       
その他の Def ステートメント
プロシージャの戻り値の型(Type)を設定します
記述凡例
DefByte(Byte) _DefCur(Currency) _DefDate(Date) _DefDbl(Double) _DefDec(Decimal) _DefInt(Integer) _DefLng(Long) _DefObj(Object) _DefSng(Single) _DefStr(String) _DefVar(Variant)
SaveSetting/DeleteSetting
Windows のレジストリのアプリケーションのエントリからセクションまたはキーを設定/削除します
記述凡例
SaveSetting appname := "MyApp", section := "Startup", key := "Top", setting := 75 
SaveSetting "MyApp", "Startup", "Left", 50 
DeleteSetting "MyApp", "Startup"
       
Do...Loop
条件が True の間または True になるまで、一連の ステートメントを繰り返し実行します
記述凡例
Sub DoLoopTest()
  Dim Counter As Long
  Counter = 0 ' Counterの初期化

    Do While Counter < 10 '0から9までループを繰り返します
       Counter = Counter + 1 'Counterの加算
       MsgBox "Counter = " & Counter, vbOKOnly
    Loop
  MsgBox "ループを終了しました"
End Sub
       
End
プロシージャまたはブロックを終了します
記述凡例
expression.End 
Sub xxx()
End Sub         
With
 .xxx
End With
Function xxx()
End Function
If...Then...Else
End If
Select Case
End Select
Type xxx
  TestInt As Integer
End Type
Erase
固定サイズの配列の要素を再初期化し、動的配列記憶領域を解放します
記述凡例
Dim NumArray(10) As Integer
Erase NumArray
       
Exit
Do...Loop、For...Next、Function、Sub、または Property のコード ブロックの実行を終了します
記述凡例
Exit Do
Exit For
Exit Function
Exit Property
Exit Sub
       
ファイルをコピーします
記述凡例
FileCopy source,destination
       
For Each...Next
コレクション内の オブジェクトごと、または 配列内の要素ごとに、ステートメントのブロックを繰り返します。 ループを実行するたびに、Visual Basic によって変数が自動的に設定されます
記述凡例
Dim TestArray(10) As Integer, I As Variant 
For Each I In TestArray 
 TestArray(I) = I 
Next I
       
For...Next
指定した回数だけ、一連のステートメントを繰り返します
For...Next ループの内部に別の For...Next ループを入れて、For...Next ループをネストできます
記述凡例
For I = 1 To 10 
  For J = 1 To 10 
    For K = 1 To 10 
        ... 
    Next K 
  Next J 
Next I
       
Get
開いているディスク ファイルから変数にデータを読み込みます
Get で読み取 ったデータ は、通常、Put を使用してファイルに 書き込まれます。 ファイルの最初のレコードまたはバイトは位置 1 になり、2 番目のレコードまたはバイトは位置 2 になります
記述凡例
VarString = String(10," ") 
  Get #1,,VarString
       
GoSub...Return
プロシージャ内で、サブルーチンに分岐し、サブルーチンから戻ります
記述凡例
Sub GosubTest() 
  Dim Num 
  Num = InputBox("正の数を入力してください、2で割ります") 
  If Num > 0 Then GoSub MyRoutine 
  MsgBox "結果は " & Num 
  Exit Sub 
  MyRoutine: Num = Num/2  
  Return 
End Sub
       
Goto
プロシージャ内の指定行に無条件で分岐します
記述凡例
Sub GotoTest()
  Dim Number As Integer
  'Number に代入する数値を1又は2、それ以外で試してください
  Number = 1
  If Number = 1 Then
     GoTo Line1
  ElseIf Number = 2 Then
     GoTo Line2
  Else
     GoTo LastLine
  End If
Line1:
  MsgBox "Line1 です"
  GoTo LastLine
Line2:
  MsgBox "Line2 です"
LastLine:
  MsgBox "LastLine に到達しました"
End Sub
       
If...Then...Else
式の値に基づいて、条件に応じてステートメントのグループを実行しま
記述凡例
Sub IfThenTest()
  Dim Number, Digits, MyString
  Number = 53 'Number の数値を変更して試してください
  If Number < 10 Then
     MsgBox "Number は10未満"
  ElseIf Number < 100 Then
     MsgBox "Number は100未満"
  Else
     MsgBox "Number は100以上"
  End If
'一行式・・1
  If Number = 1 Then MyString = "One" Else MyString = "More than one": MsgBox MyString
'一行式・・2
  If Number > 10 Then Digits = Number + 1: Digits = Number + 2: Digits = Number + Digits: MsgBox Digits
End Sub
       
Input
開いているシーケンシャル ファイルからデータを読み取り、変数に代入します
記述凡例
Sub InputTest()
  Dim MyString, MyNumber
  Open "InputFileName" For Input As #1
  Do While Not EOF(1)
     Input #1, MyString, MyNumber
     Debug.Print MyString, MyNumber
  Loop
  Close #1
End Sub
       
Kill
ディスクからファイルを削除します
Microsoft Windows で、Kill で MacID 関数を使用するとエラーが発生します。 開いているファイルを Kill を使用して削除する場合も、エラーは発生します
記述凡例
' Assume TESTFILE is a file containing some data.
Kill "TestFile" ' Delete file.
 
' Delete all *.TXT files in current directory.
Kill "*.TXT"
       
Let
式の値を変数またはプロパティに代入します
記述凡例
Dim MyStr, MyInt
' Letステートメントを使用して変数の割り当てを行います
Let MyStr = "Hello World"
Let MyInt = 5
'明示的に Letステートメントを記述する必要は有りません
MyStr = "Hello World"
MyInt = 5
       
Line Input
開いているシーケンシャル ファイルから 1 行を読み込み、それを文字列変数に割り当てます
記述凡例
Dim TextLine
Open "TESTFILE" For Input As #1
Do While Not EOF(1)
 Line Input #1, TextLine
 Debug.Print TextLine
Loop
Close #1
       
Load
オブジェクトを読み込みますが、そのオブジェクトは表示されません
読み込まれたオブジェクトはメモリに配置されます
オブジェクトを表示するには、Show メソッドを使用します
記述凡例
Private Sub UserForm_Initialize()
 Load UserForm2
 UserForm2.Show
End Sub
       
Lock/Unlock
LockステートメントはOpenステートメントで開いたファイルの一部または全部を、他プロセスのアクセスからロックします
UnLockステートメントは、Lockステートメントで制御したロックを解除します
記述凡例
*

       
       
LSet/Reset
文字列変数内で文字列を左揃え又は右揃えにします。また、ユーザー定義型の変数を別のユーザー定義型の変数にコピーすることもできます
記述凡例
Sub R_L_SetTest()
  Dim TesStr As String, Cap As String * 30
  RSet Cap = "Reset"
  TesStr = Cap & vbCrLf
  LSet Cap = "LSet"
  TesStr = TesStr & Cap
  MsgBox TesStr
End Sub
       
MkDir
記述凡例
*
       
       
Name
記述凡例
*
       
       
On Error
エラー処理ルーチンを有効にして、プロシージャ内のルーチンの場所を指定します。エラー処理ルーチンを無効にする目的でも使用できます
記述凡例
On Error GoTo ErrorHandler 
       
On..GoTo/On..GoSub
式の値に応じて、複数の指定した行のいずれかに分岐します
記述凡例

       
Open
ファイルへの入出力 (I/O) を有効にします
ファイルに対する I/O 操作を実行する場合は、その前にファイルを開いておく必要があります。 Open により、ファイルへの I/O のためのバッファーが割り当てられて、そのバッファーで使用するアクセス モードが決まります
記述凡例
Sub StopTest()
'シーケンシャル入力モードでファイルを開きます
  Open "D:\test.txt" For Input As #1
'別のモードで再度開く前に閉じます
  MsgBox "test.txtをシーケンシャル入力モードで開きました"
  Close #1

'書き込み操作のためにのみ Binary モードでファイルを開きます
  Open "D:\test.txt" For Binary Access Write As #1
  MsgBox "test.txtをBinary モードで開きました"
'別のモードで再度開く前に閉じます
  Close #1
End Sub
       
Print
シーケンシャル出力モードで開いたファイルに、データを書き込みます
記述凡例
Sub PrintTest()
'test.txtの10桁目からTestと書き込みます
  Open "D:\test.txt" For Output As #1
  Print #1, Tab(10); "Test"
  Close #1
End Sub
       
Property Get/Let/Set
プロパティの値を取得する Property プロシージャの名前、引数、および本文を形成するコードを宣言します
すべてのモジュールのすべてのプロシージャから参照できるプロパティを宣言します
記述凡例
*
       
       
Put
変数のデータをディスク ファイルに書き込みます
通常、Put で書き込むデータは、Get でファイルから読み取ります
記述凡例
Type Record ' Define user-defined type. 
  ID As Integer 
  Name As String * 20 
End Type 

Dim MyRecord As Record, RecordNumber ' Declare variables. 
' Open file for random access. 
Open "TESTFILE" For Random As #1 Len = Len(MyRecord) 
For RecordNumber = 1 To 5 ' Loop 5 times. 
MyRecord.ID = RecordNumber ' Define ID. 
MyRecord.Name = "My Name" & RecordNumber ' Create a string. 
Put #1, RecordNumber, MyRecord ' Write record to file. 
Next RecordNumber 
Close #1 ' Close file.
       
Randomize
Rnd 関数の乱数ジェネレーターを初期化しします
記述凡例
Dim MyValue 
Randomize ' Initialize random-number generator. 
 
MyValue = Int((6 * Rnd) + 1) ' Generate random value between 1 and 6.
       
Rem
プログラム内に説明のための注釈を入れる場合に使用します
記述凡例
Dim MyStr1, MyStr2 
MyStr1 = "Hello": Rem ステートメントの後のコメント. 
MyStr2 = "Goodbye" ' これもコメントです。 コロンは必要ありません.
       
Resume
エラー処理ルーチンの終了後に実行を再開します
Resume では、エラーが発生した行を再度実行します。
Resume Nextでは、エラーが発生した行の次行から処理を再開します。
Resume lineでは、lineで指定した行ラベルまたは行番号の行に分岐します
記述凡例
Sub ResumeTest()
  On Error GoTo ErrorHandler
  Dim TestData As Boolean
  TestData = "String" 'ErrorNo.13(型相違)を発生します
 'ErrorHandler へジャンプします
  MsgBox TestData
ErrorHandler:
  TestData = True '正しい型の値を代入します
  Resume Next 'エラー発生の次の行に差し戻します
End Sub
       
Return
プロシージャ内で、サブルーチンに分岐し、サブルーチンから戻ります
記述凡例
Sub GosubTest()
  Dim Num
  Num = InputBox("2で割る正の数を入力してください")
  If Num > 0 Then GoSub ExRoutine
  MsgBox Num
  Exit Sub
ExRoutine:
  Num = Num / 2
  Return
End Sub
       
RmDir
既存のディレクトリまたはフォルダーを削除します
記述凡例
Sub RmDirTest()
    If Dir("C:\TestFolder", 16) = "" Then
        MkDir "C:\TestFolder"
        MsgBox "Drive C:\にTestFolderフォルダを作成しました"
    End If
    RmDir "C:\TestFolder"
    MsgBox "C:\のTestFolderフォルダを削除しました"
End Sub
       
SavePicture
imageやobjectに表示された画像を指定した画像ファイルに保存します
記述凡例
Sub SavePictureTest()
       'D:\に"D:\win.bmp"を配置します
   With UserForm1
    .Picture = LoadPicture("D:\win.bmp")
    .Show
   End With
End Sub
'UserForm1にCommandButton1を配置します
Private Sub CommandButton1_Click()
   SavePicture UserForm1.Picture, "D:\win.jpg"
   MsgBox "UserForm1にLoadされた画像[D:\win.bmp]を[D:\win.jpg]として保存しました"
End Sub
       
Seek
Open ステートメントを使用して開いたファイル内で、次の読み取り/書き込み操作のための位置を設定します
記述凡例
Sub SeekTest()
  Dim xSize, NextStr, xStr
'数行のテキストを格納しているファイル["D:\test.txt]をセットします
  Open "D:\test.txt" For Input As #1 'ファイルを開く
  xSize = LOF(1) ' ファイルのサイズをバイト単位で取得
  MsgBox "size = " & xSize & " byte"
'※51byte半角文字+改行(4*2byte)=59
'ループにより文末から全ての文字を読み取ります
  For NextStr = xSize To 1 Step -1
      Seek #1, NextStr
      xStr = xStr + Input(1, #1)
  Next NextStr
  Close #1
  MsgBox xStr
End Sub
       
Select Case
式の値に応じて、複数のステートメントのグループのいずれかを実行します
記述凡例
Sub SelectCaseTest()
  Dim Number
  Number = 7 '判定対象の値設定(文字や数値等)
  Select Case Number
    Case 1 To 5    ' 1から5までの数値
       MsgBox "Numberは1から5までの数値"
    Case 6, 7, 8    '6,7,8のいずれかの数値
       MsgBox "Numberは6から8までの数値"
    Case 9 To 10    '9から10の数値
       MsgBox "Numberは9から10までの数値"
    Case Else       '上記以外
       MsgBox "Numberは1から10の間の数値では無い"
    End Select
End Sub
       
SendKeys
キーボードから入力したかのように、1 つ以上のキーボード操作をアクティブなウィンドウに送信します
記述凡例
Sub SendKeysTest()
    ActiveSheet.Cells(1, 1).Select
    SendKeys "ABCDEFGHIJKLMNOPQRSTUVWXYZ"
    SendKeys "{Enter}"
End Sub
       
SetAttr
ファイルの属性情報を設定します
設定値は以下のいずれか
vbNormal[0],vbReadOnly[1],vbHidden[2],vbSystem[4],vbArchive[3],vbAlias[64]Macintosh only
記述凡例
Sub SendKeysTest()
   ' 対象ファイルを[隠しファイル]および[読み取り専用]に設定
   SetAttr "D:\Test.txt", vbHidden + vbReadOnly
End Sub
       
Stop
実行を一時停止します
Stop ステートメントは実行を中断しますが、End とは異なり、ファイルを閉じたり 変数を解除することはありません
記述凡例
Sub StopTest()
  Dim i 
  For i = 1 To 10 ' Start For...Next loop.
     MsgBox "loop[" & i & "]回目です、コードの実行を中断します。"
     Stop
  Next i
End Sub
       
Time
システムの時刻を設定します
現在のシステム時間を示すTime関数とは別
記述凡例
Sub PrintTest()
'Time ステートメントを使用してコンピューター システムの時刻をユーザー定義の時刻に設定します
  Dim MyTime
  MyTime = #4:35:17 PM# ' Assign a time.
  Time = MyTime ' Set system time to MyTime.
End Sub
'※OSにより非サポート
       
Unload
メモリからオブジェクトを削除します
オブジェクトは、アンロード時にメモリから削除され、そのオブジェクトに関連付けられていたすべてのメモリが解放されます
記述凡例
 Load UserForm2
       
 UserForm2.Show

 Unload UserForm2
       
While..Wend
特定の条件が True である限り一連の ステートメントを実行します
記述凡例
Sub WhileWendTest()
  Dim Counter
  Counter = 0
  While Counter < 20
     Counter = Counter + 1
  Wend
  MsgBox Counter
End Sub
       
Width
Open ステートメントで開いたファイルに出力する行の幅を設定します
記述凡例
Sub WidthTest()
  Dim I
  Open "D:\test.txt" For Output As #1 '出力用にファイルを開きます
  VBA.Width 1, 5 '出力幅を5に設定します
  For I = 0 To 9 '10回ループします
      Print #1, Chr(48 + I); '1行に5文字を出力します
  Next I
  Close #1 'ファイルを閉じます
End Sub
       
With..End With
オブジェクトまたは構造のメンバーにアクセスする場合にステートメントで簡単な構文を使用できるように、単一のオブジェクトまたは構造を繰り返し参照する一連のステートメントを実行します
記述凡例
Sub With_Test()
  With UserForm1
       .Height = 180
       .Width = 300
       With .CommandButton1
            .Caption = "ボタン"
            .ForeColor = &HFF&
       End With
       .Show
  End With
End Sub
       
Write
シーケンシャル ファイルにデータを書き込みます
記述凡例
Sub Write_Test()
  Open "D:\test.txt" For Output As #1    '出力用にTextファイルを開きます
  Write #1, "Hello World", 234    'カンマ区切りのデータを書き込みます
  Write #1,    '空白行を書きます
  Dim MyBool, MyDate, MyNull, MyError
'ブール値、日付、ヌル、およびエラー値を割り当てます
  MyBool = False: MyDate = #2/12/1969#: MyNull = Null
  MyError = CVErr(32767)
'ブールデータは#TRUE#または#FALSE#として書き込まれます。 日付リテラルは
'ユニバーサル日付形式で記述されています。たとえば、#1994-07-13#
'1994年7月13日を表します。ヌルデータは#NULL#として書き込まれます
'エラーデータは#ERRORエラーコード#として書き込まれます
  Write #1, MyBool; " is a Boolean value"
  Write #1, MyDate; " is a date"
  Write #1, MyNull; " is a null value"
  Write #1, MyError; " is an error value"
  Close #1 'ファイルを閉じます
End Sub