こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

解決済みの質問

コモンダイアログで複数のファイルを開く

このサイトでの質問No.222750
http://www.okweb.ne.jp/kotaeru.php3?q=222750
を読んで、コモンダイアログを使って複数のファイルパスを取得するプログラムを作りました。ところが実行するとある程度の数のファイルなら問題はないのですが多いと、
タイトル:「ファイルを開く」内容:「c:\(ここにパスが入ります)\ 上記のファイル名は無効です」という警告メッセージが出ます。

それらのファイルも数を加減して開けばメッセージは出ないので、ファイル名に問題があるとは思えません。
それぞれのファイル名が短いと、多くのファイルを選択できることから文字数に関係があると思うのですが、よく分かりません。

コードはNo.222750の#1の回答とほとんど同じです。但し使っているver5ではSplitが使えないためにプロシージャを使って以下のように書き換えました。ここに問題はないと思うのですがよろしくお願いします。

'Splitを用いている文の書き換え
Call SplitD(CommonDialog1.Filename, vbNullChar, valWork())

'
Private Sub SplitD(Filename As String, Serch As String, strData() As Variant)
Dim t As Integer
Dim s As Long  '検索開始位置
Dim e As Long  '検索文字位置

s = 1
Do
e = InStr(s, Filename, Serch)
If e = 0 Then: e = Len(Filename) + 1

ReDim Preserve strData(t)
strData(t) = Mid(Filename, s, e - s)
t = t + 1
s = e + 1

Loop Until e = Len(Filename) + 1

End Sub

投稿日時 - 2002-06-11 00:36:05

QNo.289429

困ってます

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

コモンダイアログコントロールのプロパティである
MaxFileSizeは設定しましたか?
デフォルト値は256byteなので、それを超える選択された
ファイルパス名+NULL値であるとエラーになります。
MaxFileSizeプロパティの最大値は32kですので、

CommonDialog1.MaxFileSize = 32767

を設定してみてはどうでしょうか。

投稿日時 - 2002-06-11 12:14:46

お礼

そういったプロパティがあったんですか。サイズの関係だろうと思って、変数がオーバーフローしないようにデータ型を変えてみたりしたのですがそれではなかったんですね。
助かりました。

投稿日時 - 2002-06-12 01:02:21

ANo.1

このQ&Aは役に立ちましたか?

0人が「このQ&Aが役に立った」と投票しています

回答(1)

あなたにオススメの質問