プロが教える店舗&オフィスのセキュリティ対策術

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

A 回答 (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

参考URL:http://oshiete1.goo.ne.jp/kotaeru.php3?q=221365
    • good
    • 0
この回答へのお礼

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

お礼日時:2002/02/24 13:53

No.1の人の言うように、CommonDialogって複数選択出来るんですね。

知らなかった・・・
というわけで、私の回答は無視して下さい。
では。
    • good
    • 0
この回答へのお礼

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

お礼日時:2002/02/24 13:52

ダイアログボックスってコモンダイアログですよね?


ファイルの名前が取れているのであれば、
1つ目のファイルをOpen→処理→Close
2つ目の…
とやるのでは駄目なのでしょうか?
もし、同時に開きたいのであれば、
intFileNo = FreeFile
で、使用可能なファイル番号が取得できますので

intFileNo = FreeFile
Open path For mode As intFileNo




という感じでファイルを開けていけば、同時に複数ふぃ有るを扱う事が出来ますよ。
    • good
    • 0
この回答へのお礼

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

お礼日時:2002/02/24 13:52

こんにちは。

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

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

お礼日時:2002/02/24 13:53

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!