VB6「名前を付けて保存」ダイアログを表示する

スポンサーリンク

VB6 では、CommonDialog コントロールの ShowSave メソッドを使用します。他のダイアログの機能も含まれてしまっているので、有効でないプロパティが存在します。

オプションの殆どが、Flags プロパティに集約されています。複数のオプションを選択したい場合は Or キーワードで付加する必要があります。また、面倒なことに [キャンセル] ボタンを選択したことを、エラーを起こすことによって判断することになります。

以下の例では、適用可能な属性を列挙していますが、必要のないものは削ってください。

サンプルコード

以下にサンプルコードを示します。

VB6.0 以前
    ' ダイアログのタイトルを設定する
    CommonDialog1.DialogTitle = "ここにダイアログのタイトルを書いてください"

    ' 初期表示するディレクトリを設定する
    CommonDialog1.InitDir = "C:\"

    ' 初期表示するファイル名を設定する
    CommonDialog1.FileName = "ここに初期表示するファイル名を書いてください"

    ' ファイルのフィルタを設定する
    CommonDialog1.Filter = "テキスト ファイル|*.txt;*.log|すべてのファイル|*.*"

    ' ファイルの種類 の初期設定を 2 番目に設定する (初期値 1)
    CommonDialog1.FilterIndex = 2

    ' ダイアログボックスを閉じる前に現在のディレクトリを復元する
    CommonDialog1.Flags = CommonDialog1.Flags Or FileOpenConstants.cdlOFNNoChangeDir

    ' 存在しているファイルを指定した場合は、上書きするかどうかの問い合わせを表示する
    CommonDialog1.Flags = CommonDialog1.Flags Or FileOpenConstants.cdlOFNOverwritePrompt

    ' 存在しないパスを指定した場合は警告を表示する
    CommonDialog1.Flags = CommonDialog1.Flags Or FileOpenConstants.cdlOFNPathMustExist

    ' 複数のファイルを選択可能にする
    'CommonDialog1.Flags = CommonDialog1.Flags Or FileOpenConstants.cdlOFNAllowMultiselect

    ' [ヘルプ] ボタンを表示する
    'CommonDialog1.Flags = CommonDialog1.Flags Or FileOpenConstants.cdlOFNHelpButton

    ' 有効な Win32 ファイル名でなくとも返す (検証しない)
    'CommonDialog1.Flags = CommonDialog1.Flags Or FileOpenConstants.cdlOFNNoValidate

    ' [読み取り専用] チェックボックスを非表示にする
    ' (省略しても表示はされませんが、ダイアログの大きさが変わります)
    CommonDialog1.Flags = CommonDialog1.Flags Or FileOpenConstants.cdlOFNHideReadOnly

    ' 共有違反エラーを無視する
    'CommonDialog1.Flags = CommonDialog1.Flags Or FileOpenConstants.cdlOFNShareAware

    ' ショートカットファイル自体を選択可能にする
    'CommonDialog1.Flags = CommonDialog1.Flags Or FileOpenConstants.cdlOFNNoDereferenceLinks

    ' 長いファイル名を使用しない
    'CommonDialog1.Flags = CommonDialog1.Flags Or FileOpenConstants.cdlOFNNoLongNames

    ' 長いファイル名を使用する
    'CommonDialog1.Flags = CommonDialog1.Flags Or FileOpenConstants.cdlOFNLongNames

    ' Window 95 のファイルを開くダイアログのテンプレートを使用する
    'CommonDialog1.Flags = CommonDialog1.Flags Or FileOpenConstants.cdlOFNExplorer

    ' Flags の属性はこのように同時に選択するのが一般的である
    'CommonDialog1.Flags = cdlOFNOverwritePrompt Or cdlOFNPathMustExist Or cdlOFNHideReadOnly

    ' [キャンセル] ボタンを選択した場合はエラーを発生させる
    CommonDialog1.CancelError = True

    ' エラーをトラップしない
    On Error Resume Next

    ' ダイアログを表示する
    Call CommonDialog1.ShowSave

    ' [キャンセル] ボタンが選択されなかった場合は、選択したファイル名を表示する
    If Err.Number <> ErrorConstants.cdlCancel Then
        Call MsgBox(CommonDialog1.FileName)
    End If

    ' エラー処理を通常のロジックに戻す
    On Error GoTo 0

関連するリファレンス

準備中です。

スポンサーリンク