誕生日にもらった意外なもの

EXCELで、「ファイルを開く」を表示させようとしています。
下記命令文でEXCEL2003ではうまくいくのですが、2000だとエラーになるようです。
どちらでも使えるコマンドを教えていただけるでしょうか。
タイトル = "ファイルを開く"
ファイルの場所 = "C:\Users" '場所
フィルタ1a = "CSV" '種類
フィルタ1b = "*.csv" '拡張子
With Application.FileDialog(msoFileDialogOpen)
.Title = タイトル
.InitialFileName = ファイルの場所
.Filters.Clear 'フィルタクリア
.Filters.Add フィルタ1a, フィルタ1b 'フィルタ設定
.AllowMultiSelect = False '複数選択不可
.Show
End With

A 回答 (8件)

#3 の回答者です。



>Sub Test2のほうを試したところパスが見つかりません とエラーが出ますが、どういったことなのでしょう

今、調べてみましたが、「\」(パスセパレータ)を抜くと、いけないのでした。こちらには、ないパスだったので、いい加減に書いてしまいました。
Const ファイルの場所 = "C:Users" '場所
  ↓
Const ファイルの場所 = "C:\Users" '場所
    • good
    • 0
この回答へのお礼

早速お返事いただいてありがとうございます。

うまくいきました。
エラーの原因はフィルの場所のところでしたか。
わたしも、もう少し注意深く見てからお尋ねすればよかったですね。

でも、良い回答をありがとうございました。
いまは2003でやっているので、あとは実際に2000で試してうまくいけば解決です。
ありがとうございました。

お礼日時:2008/10/11 23:51

こんにちは。



#6のお礼の部分。
>後にそのファイルを開きたいのですが開きません。
(パス名は、例のように直していただければよいのですが)

'MsgBox fName
Workbooks.Open fName '行の先頭にある、コメントブロック(')は、外してくださいね。Excel2000でテストはされています。
    • good
    • 0

#1です。


コードをご確認下さい。お礼の項に書かれた通りの動作をする、ファイル名取得までのサンプルコードです。
ご質問の内容から、XL2000の生の情報を提供すれば十分と判断させていただきました。
    • good
    • 0

>いまは2003でやっているので、あとは実際に2000で試してうまくいけば解決です。



こちらでは、Excel 2000 で、作動試験しましたから、たぶん大丈夫です。(フォルダの名称は、実際は、C:\Temp などで試して、元に書いたものに戻すとき、ミスしました。(^^; すみません。)
    • good
    • 0
この回答へのお礼

何度もお答えしていただきありがとうございます
Sub2でもうまく言ったと思ったのですが、ファイル名は取得できていますが、最後にそのファイルを開きたいのですが開きません。
Sub1のほうでは開く要になっているのですが。
教えていただけますか。

お礼日時:2008/10/13 13:28

FileDialogを使えるのはエクセル2002からのようです。


http://www.happy2-island.com/bbs/bbs.cgi?mode=vi …
(この方はプロフィールを見てください。VBAの本を沢山書いておられる方です)
http://park7.wakwak.com/~efc21/cgi-bin/exqaloung …
>2000以前では使えません。
ココにはApplication.Dialogs(xlDialogOpen).の引数の指定なども載っています。
    • good
    • 0

こんばんは。



ご質問のマクロをそのまま移せば、こんなところでしょうね。

Sub Test1()
Dim OrgDir As String
Const ファイルの場所 = "C:\Users" '場所
OrgDir = CurDir
ChDir ファイルの場所
  Application.Dialogs(xlDialogOpen).Show "*.csv"
ChDir OrgDir
End Sub

一般的には、
GetOpenFilename を使い

Sub Test2()
Const タイトル = "ファイルを開く"
Const ファイルの場所 = "C:Users" '場所
Const フィルタ1a = "CSV" '種類
Const フィルタ1b = "*.csv" '拡張子
Dim fName As String
Dim orgDir As String

 orgDir = CurDir
 ChDir ファイルの場所
 
 fName = Application.GetOpenFilename(フィルタ1a & "," & フィルタ1b, 1, タイトル)
 If fName <> "False" Then
  MsgBox fName
  'Workbooks.Open fName
 End If
 ChDir orgDir
End Sub

なお、Access 2000 ~は、通常、CommonDialog (Microsoft Common Dialog Control 6.0 )を使うかと思います。
    • good
    • 0
この回答へのお礼

ご回答ありがとうございます。
Sub Test1の方はうまく開きました。
Sub Test2のほうを試したところパスが見つかりません とエラーが出ますが、どういったことなのでしょう。

お礼日時:2008/10/11 23:23

FileDialog オブジェクトを使えるのは2002からのようですよ。



FileDialog オブジェクトの使用
http://msdn.microsoft.com/ja-jp/library/cc326127 …
    • good
    • 0

以下、Excel2000のヘルプより CopyRight Microsoft


GetOpenFilename メソッドの使用例

次の使用例は、ファイルを開くときに表示されるダイアログ ボックスで、ファイルの種類をテキスト ファイルに限定して表示します。ファイル名を選択すると、そのファイル名がメッセージ ボックスに表示されます。

fileToOpen = Application _
.GetOpenFilename("テキスト ファイル (*.txt), *.txt")
If fileToOpen <> False Then
MsgBox "選択されたファイル : " & fileToOpen
End If

なんでしたら、APIを使う方法もあります。
Access2000はこれのお世話にならないといけない...
http://www.accessclub.jp/samplefile/samplefile_7 …
    • good
    • 0
この回答へのお礼

ご回答ありがとうございます。

試したところ、ファイルを選択し、メッセージボックスに選択したファイル名は出ましたが、実際にファイルが開かれることがありませんでした…。

お礼日時:2008/10/11 23:28

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