• ベストアンサー

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

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

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

  • ベストアンサー
  • TAGOSAKU7
  • ベストアンサー率65% (276/422)
回答No.1

複数選択ダイアログ属性にしたときは、 ※ファイルを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

参考URL:
http://oshiete1.goo.ne.jp/kotaeru.php3?q=221365
aika25
質問者

お礼

ばっちりできました!! ありがとうございました!

その他の回答 (3)

  • maruru01
  • ベストアンサー率51% (1179/2272)
回答No.4

No.1の人の言うように、CommonDialogって複数選択出来るんですね。知らなかった・・・ というわけで、私の回答は無視して下さい。 では。

aika25
質問者

お礼

いえいえ、 ありがとうございます。

  • yuizuian
  • ベストアンサー率42% (103/245)
回答No.3

ダイアログボックスってコモンダイアログですよね? ファイルの名前が取れているのであれば、 1つ目のファイルをOpen→処理→Close 2つ目の… とやるのでは駄目なのでしょうか? もし、同時に開きたいのであれば、 intFileNo = FreeFile で、使用可能なファイル番号が取得できますので intFileNo = FreeFile Open path For mode As intFileNo ・ ・ ・ という感じでファイルを開けていけば、同時に複数ふぃ有るを扱う事が出来ますよ。

aika25
質問者

お礼

どうもありがとうございました~!

  • maruru01
  • ベストアンサー率51% (1179/2272)
回答No.2

こんにちは。maruru01です。 ダイアログボックスって、CommonDialogですか? それは出来ないんじゃないでしょうか(私には方法が思いつきません)。 ご自分で、選択用ダイアログを作ってそれを表示させるということでしょうか? またテキストボックスに複数で表示させるというのは、どういうことでしょうか? 1つのテキストボックスに、複数のファイルの内容を表示させるということでしょうか?それなら、文章をつなげるだけですが。 何をやろうとして、どういう風にうまくいかないのかを、もう少し詳しく説明していただけないでしょうか。 ちなみに蛇足ですが、このカテゴリーなので、VBなのでしょうが、バージョンとかOSとかを書いておくといいと思いますよ、こういうコンピュータ関係の質問は。 では。

aika25
質問者

お礼

ちなみにVB6のWin2000です。 ありがとうございます!

関連するQ&A