表紙 > VB6 サンプル >

VB6

フロッピーディスクのフォーマットダイアログを表示する

 

以下の関数FormatFloppyを使用するとフロッピーディスクをフォーマットするためのWindows標準のダイアログを開くことができる。

この関数はCall FormatFloppy("A")のように簡単に使えるように作ってあるが、引数・戻り値についてはコメントを参照。

なお、この関数は標準モジュールに作成すること。フォームに作成する場合は列挙型の宣言をPrivateにする必要がある場合がある。

VB6対応 

Private Declare Function SHFormatDrive Lib "Shell32" (ByVal hWnd As Long, ByVal nDrive As Long, ByVal fmtID As Long, ByVal Options As Long) As Long

Private Const SHFMT_ERROR As Long = &HFFFFFFFF ' フォーマットに失敗
Private Const SHFMT_CANCEL As Long = &HFFFFFFFE ' フォーマットは中止された
Private Const SHFMT_NOFORMAT As Long = &HFFFFFFFD ' ドライブはフォーマットされない

Public Enum FormatFloppyResult
    fmfSuccess = 0
    fmfError = 1
    fmfCancel = 2
    fmfFailed = 3
End Enum

'■FormatFloppy
'■機能:フロッピーディスクフォーマットのダイアログを表示する
'■引数:DriveLetter 対象となるドライブのドライブ文字
'■ hOwnerWnd 省略可。呼出元のウィンドウハンドル。指定例:Form1.hWnd
'■戻り値:フォーマットの結果。成功した場合fmfSuccess、その他の場合fmfError(エラー),fmfCancel(キャンセル),fmfFailed(失敗)

Public Function FormatFloppy(DriveLetter As String, Optional hOwnerWnd As Long) As FormatFloppyResult

    Dim Ret As Long
    Dim strTargetDrive As String
    Dim lngTargetDrive As Long

    strTargetDrive = StrConv(Left$(DriveLetter, 1), vbUpperCase)
    lngTargetDrive = Asc(strTargetDrive) - Asc("A")

    Ret = SHFormatDrive(hOwnerWnd, lngTargetDrive, 0, 0)

    Select Case Ret
        Case SHFMT_ERROR
            FormatFloppy = fmfError

        Case SHFMT_CANCEL
            FormatFloppy = fmfCancel

        Case SHFMT_NOFORMAT
            FormatFloppy = fmfFailed

        Case Else
            FormatFloppy = fmfSuccess

    End Select

End Function

メモ:実はハードディスク等他のドライブもこの関数でフォーマットダイアログを呼び出すことができます。