VB6
フロッピーディスクのフォーマットダイアログを表示する
以下の関数FormatFloppyを使用するとフロッピーディスクをフォーマットするためのWindows標準のダイアログを開くことができる。
この関数はCall FormatFloppy("A")のように簡単に使えるように作ってあるが、引数・戻り値についてはコメントを参照。
なお、この関数は標準モジュールに作成すること。フォームに作成する場合は列挙型の宣言をPrivateにする必要がある場合がある。
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 |
メモ:実はハードディスク等他のドライブもこの関数でフォーマットダイアログを呼び出すことができます。