下のようなコードで、ダイアログから画像ファイルをマルチセレクトした場合の、 ファイル名が配列に格納される順番について教えていただけますでしょうか。 myPicture = Application.GetOpenFilename("Image Files (*.jpeg;*.jpg;*.emf;*.wmf;*.gif;*.png), *.bmp", MultiSelect:=True) QNo.4477885ですでに同様の質問がされていますが、 http://soudan1.biglobe.ne.jp/qa4477885.html ダイアログで、ファイル名を選択するときにCtrlを押しながら複数選択すると、 『開く』を押すときに、アクティブになっているファイルから順に次々と格納されるようです。 例えば次の場合、下のような順で取得されます。 ・Ctr + ダイアログで下の順を選択 → 『開く』 ファイル名(1)『1.png』、ファイル名(2)『2.png』、ファイル名(3)「3.png」、 ファイル名(4)『4.png』、ファイル名(5)『5.png』 ・結果以下の順で配列に格納される。 格納順 → ファイル名(5)『5.png』、ファイル名(3)『1.png』、ファイル名(2)『2.png』、 ファイル名(4)『3.png』、ファイル名(1)『4.png』 の順で格納されます。 この場合は、2番目から貼り付けを行うことで、回避できました。 しかし、ここからが質問ですが、次の場合の回避策はありますでしょうか。 【質問】ダイアログで、Ctr + 以下の順を選択 → 『開く』 ファイル名(3)『キウイ.png』、ファイル名(1)『りんご.png』、ファイル名(4)『みかん.png』、 ファイル名(5)『いちご.png』、ファイル名(2)『バナナ.png』 結果以下の順で配列に格納されました。 myPicture (1) = ファイル名(2)『バナナ.png』 myPicture (2) = ファイル名(4)『みかん.png』 myPicture (3) = ファイル名(1)『りんご.png』 myPicture (4) = ファイル名(5)『いちご.png』 myPicture (5) = ファイル名(3)『キウイ.png』 選択順とは関係なく、格納されています。 どうしてこの順番なのかもわかりません。 やりたいこととしては、選択した順番に連続して画像を貼り付けられるコードを作りたいのです。 GetOpenメソッドにこだわりなどはありません。 ただ、指定した順に貼り付けたいのです。 代替案が浮かばないのでわかる方がいましたら、教えてください。 ファイル名にコードを振り、ソートをするのは手間がかかるのでやりたくないです。 環境としましては Excel2003 Windows 7 VB6.0です。 質問が初めてのため状況が伝えられてなければ、すいません。 どなたかご教授下さい。宜しく御願い致します。
↧