
フォルダの参照ダイアログボックスを使用して
ファイルを選択できるようにしています。
プログラムでcsv形式で保存し、そのcsv形式ファイルを指定して開くという動作を目的としています。
そのファイル選択を固定でなく可変で選択したいと思っています。
Dim ShellApp As Object
Dim oFolder As Object
Set ShellApp = CreateObject("Shell.Application")
Set oFolder = ShellApp.BrowseForFolder(0, "ファイル選択", &H4000,"C:\test")
msgbox(oFolder)
このような感じで、フォルダのみではなくファイルを指定することに成功しました。
しかし、このフォルダ参照ダイアログが表示されたときに、何も選択せずに
キャンセルボタンをクリックするとエラーが出て止まってしまいます。
目的とする動作はできてはいるのですが、キャンセルするとエラーになるので、この原因がわからず困っています。
キャンセルボタンに関することを記述する必要があるのでしょうか?
また、この他にファイルを指定するのに適した方法がありましたら教えてください。
参照するフォルダを指定しているのでパスの取得は必要ありません。
ファイルが選択できたらOKです。
フォルダのパス取得のプログラムはよくサンプルを見かけるのですが、
ファイル選択のサンプルはあまり見かけないです(-_-;)
また、この方法ではC:\と絶対パスで指定していますが、exeファイルが存在する場所からの相対パスでの指定はできないのでしょうか?
csvで保存する時は"./test/test.csv"などと記述して書き込みできていたのですが、
このようなパスを書くとエラーとなりファイルを見つけられないといわれてしまいます。
No.1ベストアンサー
- 回答日時:
通常のWindowsアプリケーションはファイルを指定する時、「ファイルを開く」ダイアログなるダイアログをみんな出しています。
これで指定するのが自然です。フォルダを参照ダイアログはあくまでも「フォルダ」を指定するものなので。
さて。
ファイルを開くダイアログはどう出すかですが、
GetOpenFileName
というAPI関数を呼べば出せます。
簡単にここに書ければよいのですが、宣言が長くて見る気になれなそうなので参考URLを紹介するだけにしておきます。
下の方にサンプルがあるみたいなので(見てませんが)、ご参考になるかも。
VB6.0のつもりで書いてますが、VBAでもOKです。
.NETの場合は・・・はて?同じ?
そうそう。
あとは、コモンダイアログコントロールを使うって方法もありますが。これはVB6.0はOK。VBAはムリ。
参考URL:http://www.h5.dion.ne.jp/~p-s-s/vb/api/fileopen. …
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
このQ&Aを見た人はこんなQ&Aも見ています
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
【python】pandasでExcel(...
-
Microsoft Access エラー 3051
-
【Excel VBA】PDFを作成して,...
-
エクセルVBA フォームを開く時...
-
Refreshで落ちる
-
VBAを使い、Web上からファイル...
-
複数のテキストファイルをexcel...
-
ASPでCSVファイルを作成しダウ...
-
Excelでdatファイルを作成??
-
ダウンロード不可PDFファイルは...
-
PrtScの禁止方法
-
HTMLタグのあるCSVファイルを利...
-
テキストファイルの文字色に色...
-
パスの省略形を作成するには
-
バッチファイルが作成できない
-
delphiネットワークドライブフ...
-
VBSでファイル選択ダイアログを...
-
Thunderbird ローカルフォルダ...
-
エクセルの「元に戻す」を上書...
-
フォルダ作成用バッチファイル...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
Microsoft Access エラー 3051
-
【Excel VBA】PDFを作成して,...
-
OCXのライセンス
-
VBAでファイルパスが長すぎてコ...
-
Refreshで落ちる
-
エクセルVBA フォームを開く時...
-
FFFTPでサーバに新規フォルダが...
-
ExcelVBAで、隠しフォルダにあ...
-
ASPのファイルを他のサーバにコ...
-
VBAでFTPファイル転送がうまく...
-
ASP.NETで、別サーバーへファイ...
-
web.configファイル内、valueに...
-
フォルダ参照ではなくファイル...
-
ブラウザでASPファイルを開こう...
-
Excel VBA シートを指定して...
-
他のパソコンで自作のマクロを...
-
グーグルドライブからコピーし...
-
VBSで指定したフォルダにファイ...
-
JQuery Agile Carouselの設置...
-
Windows2000へアプリケーション...
おすすめ情報