- ベストアンサー
ファイルを複数選択して・・・
ダイアログボックスでファイルを複数選択して、読み込んだ内容をテキストボックスに表示させたいのですが、複数でやるとどうもうまくいきません・・・。 どういうふうにコードを記述すればよいのでしょうか? よろしくお願いします。
- みんなの回答 (4)
- 専門家の回答
質問者が選んだベストアンサー
複数選択ダイアログ属性にしたときは、 ※ファイルを1つ選択したとき 複数選択属性を持たないダイアログと同様に扱えます。 ※ファイルを複数選択したとき vbNullChar区切りで パス/ファイル名1/ファイル名2/ファイル名3・・・・ といったように値が返されます。 サンプルは環境を書いてなかったので、VB6用です。 Splitが使えないバージョンのVBであれば、参考URLを元に読み替えてください。 Dim i As Long Dim valWork As Variant Dim strPath As String ' CancelError プロパティを真 (True) に設定します。 CommonDialog1.CancelError = True On Error GoTo ErrHandler ' Flags プロパティを設定します。 CommonDialog1.Flags = cdlOFNHideReadOnly Or cdlOFNAllowMultiselect Or cdlOFNExplorer ' リスト ボックスに表示されるフィルタを設定します。 CommonDialog1.Filter = "すべてのファイル (*.*)|*.*|" & _ "テキスト ファイル (*.txt)|*.txt|" & _ "バッチ ファイル (*.bat)|*.bat" ' "テキスト ファイル" を既定のフィルタとして指定します。 CommonDialog1.FilterIndex = 2 ' [ファイルを開く] ダイアログ ボックスを表示します。 CommonDialog1.ShowOpen valWork = Split(CommonDialog1.FileName, vbNullChar) If UBound(valWork) = 0 Then Debug.Print valWork(0) Else strPath = valWork(0) If Not (Right(strPath, 1) = "\") Then strPath = strPath & "\" For i = LBound(valWork) + 1 To UBound(valWork) Debug.Print strPath & valWork(i) Next i End If Exit Sub ErrHandler: ' ユーザーが [キャンセル] をクリックしました。 Exit Sub
その他の回答 (3)
- maruru01
- ベストアンサー率51% (1179/2272)
No.1の人の言うように、CommonDialogって複数選択出来るんですね。知らなかった・・・ というわけで、私の回答は無視して下さい。 では。
お礼
いえいえ、 ありがとうございます。
- yuizuian
- ベストアンサー率42% (103/245)
ダイアログボックスってコモンダイアログですよね? ファイルの名前が取れているのであれば、 1つ目のファイルをOpen→処理→Close 2つ目の… とやるのでは駄目なのでしょうか? もし、同時に開きたいのであれば、 intFileNo = FreeFile で、使用可能なファイル番号が取得できますので intFileNo = FreeFile Open path For mode As intFileNo ・ ・ ・ という感じでファイルを開けていけば、同時に複数ふぃ有るを扱う事が出来ますよ。
お礼
どうもありがとうございました~!
- maruru01
- ベストアンサー率51% (1179/2272)
こんにちは。maruru01です。 ダイアログボックスって、CommonDialogですか? それは出来ないんじゃないでしょうか(私には方法が思いつきません)。 ご自分で、選択用ダイアログを作ってそれを表示させるということでしょうか? またテキストボックスに複数で表示させるというのは、どういうことでしょうか? 1つのテキストボックスに、複数のファイルの内容を表示させるということでしょうか?それなら、文章をつなげるだけですが。 何をやろうとして、どういう風にうまくいかないのかを、もう少し詳しく説明していただけないでしょうか。 ちなみに蛇足ですが、このカテゴリーなので、VBなのでしょうが、バージョンとかOSとかを書いておくといいと思いますよ、こういうコンピュータ関係の質問は。 では。
お礼
ちなみにVB6のWin2000です。 ありがとうございます!
お礼
ばっちりできました!! ありがとうございました!