• ベストアンサー

VB6.0で、APIのファイルを開くダイアログボックスを使い、複数のファイルを選択したいのですが。

VB6.0で、APIのファイルを開くダイアログボックスを使い、複数のエクセルファイルを開きたいのですが、どなたかご存じないでしょうか?

  • ddtqp
  • お礼率68% (139/203)

質問者が選んだベストアンサー

  • ベストアンサー
回答No.3

>OFN_LONGNAMES 従来のスタイルのダイアログボックスで、長いファイル名(long file name)を 使えるようにします。 このフラグを設定せずにOFN_ALLOWMULTISELECTを設定すると、 空白を含むファイル名のために、従来のスタイルのダイアログでは 短いファイル名(short file name - 8.3 format)を使います。 エクスプローラスタイルのダイアログでは、常に長いファイル名を使うので、 このフラグは無視されます。 これですかね?

参考URL:
http://hp.vector.co.jp/authors/VA023539/tips/dialog/004.htm
ddtqp
質問者

お礼

ありがとうございます! 旧ダイアログボックスでは、ショートネームがでるのですね。 教えていただいた、エクスプローラースタイルのダイアログを使うようにしました。 以下のコードでオッケーでした。助かりました。 .Flags = OFN_PATHMUSTEXIST Or _ OFN_FILEMUSTEXIST Or _ OFN_HIDEREADONLY Or _ OFN_ALLOWMULTISELECT Or OFN_EXPLORER 'マルチセレクト追加

その他の回答 (2)

回答No.2

すみません。間違えました。プロパティではなく、 openfilename構造体のF;agsにOFN_ALLOW_NULTISELECTを指定するんですね。必要なら他のも。ファイル名のバッファとか、そのサイズとかも関係してそうですね。

ddtqp
質問者

補足

早速のお返事ありがとうございます。 試してみたら、マルチセレクト用のダイアログボックスが表示されました。 「おおー、ばっちり!」と思ったのですが、 パス名のところどころにチルダ「~」が混じり、ファイルを開けません。 なぜでしょう。。。

回答No.1

Multiselectプロパティっていうのがありませんか? こんなページ見つけました。 http://www.red.oit-net.jp/tatsuya/vb/FileDialog.htm

参考URL:
http://www.red.oit-net.jp/tatsuya/vb/FileDialog.htm

関連するQ&A

  • VB6.0で、マルチセレクトダイアログボックス(API)を使うと、パス名にチルダが混ざってしまうのですが。

    VB6.0で、APIのファイルを開くダイアログボックスで複数のファイルを開こうとしています。 下記のページで、openfilename構造体のFlagsにOFN_ALLOWMULTISELECTを指定したのですが、 パス名のところどころにチルダ「~」が混じってしまいます。 対処法をご存知ないでしょうか? ​http://www.red.oit-net.jp/tatsuya/vb/FileDialog.htm​

  • VB6.0で、APIのダイアログボックスを使い複数のファイル名を取得したいのですが

    以下のサイトのファイルを開くコードを引用して、なんとかダイアログボックスをマルチセレクトにするところまではできました。 以下のコードを実行すると、strFileNameにファイルが入っているフォルダのパス名だけが取得されます。複数のファイル名を取得したいのですが。 どこを直せばいいのかわからず教えていただきたいのですが。 アドバイスお願いいたします。 "http://www.red.oit-net.jp/tatsuya/vb/FileDialog.htm" 以下、追加したコードです。---------------------------- Public Const OFN_LONGNAMES = &H200000 '旧スタイルのダイアログのとき、ロングファイル名を使用可能にする Public Const OFN_EXPLORER = &H80000 'エクスプローラ型ダイアログとして表示 '構造体の設定 With OFN .Flags = OFN_PATHMUSTEXIST Or _ OFN_FILEMUSTEXIST Or _ OFN_HIDEREADONLY Or _ OFN_ALLOWMULTISELECT Or OFN_EXPLORER 'マルチセレクト追加

  • ファイルとフォルダのどちらも選択できるダイアログ

    環境  OS:Win2000及びWinXP  バージョン:VB6.0 SP5 ファイルとフォルダのどちらも選択できるダイアログを使用する為のAPIを探しています。 詳しく言うと、Windowsのエクスプローラ上で右クリックから新規のショートカットを作成した際の、 ウィザードにて参照ボタンを押下した際に表示される使用されているダイアログのようなものです。 フォルダまたはファイルだけのダイアログをAPIにて表示できる方法は調べて分かったのですが、 フォルダとファイルをどちらでも選択できるダイアログが見つかりませんでした。 逆にフォルダまたはファイルだけのダイアログのAPIのオプションの違いなのでしょうか? ヒント・キーワード・参考サイトだけでも良いので、 よろしくお願いします。

  • なぜVBEにはファイルダイアログボックスがないんですか

    私はプログラマーでもないんですが、会社の同期がVB.NETを使っています。そこにはドラッグアンドドロップするとファイルダイアログボックスが簡単につくれるようになっています。しかしoffice2003,2007でのコントロールではそのようなダイアログは見当たりません。ということは、VBAでダイアログボックスが欲しい場合は(例えばファイル選択時など)、自分でコードを書いてダイアログボックスを作るか、どこかからコードを見つけてコピペするしかないのでしょうか?

  • ファイル保存のAPI?

    VBでコモンダイアログで「ファイルを開く」のAPIはわかるのですが、「ファイルを保存」のAPIがわかりません。そのようなAPIがあるのでしょうか?あればAPIの名称を教えてください。 (補足)「ファイルを開く」はGetOpenFileNameですが、これだと「開く」ボタンですが、「保存」ボタンのAPIがあるという事らしいですが、そのAPIを教えて欲しいのです。お願いします。

  • ディレクトリを選択するコモンダイアログボックス

    Windows APIに関する質問です。 GetOpenFileNameを使うとファイルを選択するコモンダイアログボックスが使えますが、ファイルではなくディレクトリ(フォルダー)を選択するコモンダイアログボックというのは存在するのでしょうか?

  • ファイルを複数選択して・・・

    ダイアログボックスでファイルを複数選択して、読み込んだ内容をテキストボックスに表示させたいのですが、複数でやるとどうもうまくいきません・・・。 どういうふうにコードを記述すればよいのでしょうか? よろしくお願いします。

  • ダイアログボックスで複数フォルダの複数ファイルの選択

    ダイアログボックスで複数フォルダの複数ファイルの選択がうまくいきません。 単一フォルダ内からの複数ファイルの選択は機能しているのですが、ダイアログボックスで他のフォルダを選択して他のファイルを選択すると最終的に選択したファイルのみが残り、先に選択した分が累積されません。  OpenFileNameが上書きされるのが原因な気がするのですが配列への累積処理が解りません。 その後の処理で選択したファイルを全て開いて加工したいので、累積させる方法を知りたいのです。下記コードはLoop処理で行おうとして累積が解らないままのものです。 一度のダイアログ表示で複数フォルダの複数ファイルを選択出来る方法があればそれでもかまいません。どなたか助けては頂けないでしょうか。お願いします。 '**明細の選択(複数同時)** Do BN = Application.InputBox("対象明細書の年月を入力してください。1桁の月は02月のように入力)", , Default:="2009.04", Type:=2) If BN = False Then '入力なければ GoTo OWARI End If WorkPath = ThisWorkbook.Path & "\明細書一覧" & BN & "月" ChDrive WorkPath ChDir WorkPath OpenFileName = Application.GetOpenFilename(FileFilter:="Microsoft Excelブック,*.xls", _ Title:="対象の明細書を選んで下さい。Ctrlキーを押しながら複数ファイルを同時に選択出来ます。", MultiSelect:=True) Rtn = MsgBox("他にも対象ファイルがありますか?", vbYesNo, "選択") If Rtn = vbNo Then Exit Do End If Loop Mypath = ThisWorkbook.Path MyFile = "\請求制御.xls" 'ここにファイル名記入 If IsArray(OpenFileName) Then For i = 1 To UBound(OpenFileName) If OpenFileName(i) = Mypath & MyFile Then MsgBox "同じファイルが含まれてます。", vbInformation, "同じファイルは選択出来ません" GoTo OWARI End If tmp = tmp & Dir(OpenFileName(i)) & vbCrLf Next MsgBox vbCrLf & tmp & vbCrLf & "の全" & i - 1 & "枚です" & vbCrLf & "これらでよろしいですか? ", vbInformation, "選択したファイルは "

  • VB5で、PDFファイルを印刷ダイアログボックスを非表示にして任意の場

    VB5で、PDFファイルを印刷ダイアログボックスを非表示にして任意の場所に保存したいのです。 現状は、VB5で下記のように記述しています。 通常のプリンタ設定はCutePDFとなってます。 Printer.Print ○○ Printer.EndDoc 上記で名前をつけて保存ダイアログボックスが表示され、 デスクトップ上が保存先、名前はVisualBasic.pdfとなってます。 これを、 保存ダイアログボックスを非表示にし、 保存先、ファイル名をVB側で指定したいのですが、 どのようにやればいいのかわからず困っています。 その前にできるのか… VB5は客先での環境なので変更できません。 どうぞお力をお貸しください。。 よろしくお願いいたします。

  • 「ファイルの選択」ダイアログボックス

    お世話になります。 メールで添付ファイルを指定する際など「ファイルの選択」ダイアログボックス が表示されますが、ファイルの表示形式がいつも「一覧」になっています。 これを常に「詳細」表示にすることは可能でしょうか。

専門家に質問してみよう