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

解決済みの質問

Accessのマクロについて教えてください。

WinXP Access2002です。
現在Accessのあるフォームにコマンドボタンを貼り付けこのボタンをクリック時にマクロでアプリケーションの実行を指定しExcelのファイルを開いています。具体的には
c:\PROGRAM FILES\MICROSOFT OFFICE\OFFICE10\EXCEL.EXE D:\EXCEL\AAAY\BBB.XLS
です。D:\以下はExcelで作ったファイルの格納場所です。現在これでうまくいっています。
この場合BBB.xlsしか立ちあがりません。これはこれでBBB.xlsだけで用が足りているので何ら問題ないのですがやろうとしていることは¥AAAのホルダーに入っている複数のCCC.xls、DDD.xls・・・・・・等をマクロの途中ダイアログボックス等で仮に今ほしいファイルがXXX.XLSだったとしたら目的のXXX.xlsを指定し開く方法がありますでしょうか。
又これが駄目ならマクロで¥AAAのホルダーまで開く方法はあるのでしょうか。何せAccessのマクロでExcelは立ちあがりますが沢山のホルダーがあるので一歩でも自動で近づきたいのです。方法がありましたらよろしく教えてください。

投稿日時 - 2004-03-07 10:56:42

QNo.799105

暇なときに回答ください

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

#2です。
Sub test03()
ChDir "c:\my documents\test2"
myFname = Application.GetOpenFilename _
("Excel ファイル (*.xls),*.xls")
MsgBox myFname
End Sub
をエクセルVBAで実行すると、test2フォルダの中のフォルダとエクセルブックの一覧のダイアログが出てきましたが。
http://member.nifty.ne.jp/bear/basis/getopen.htm
http://www5c.biglobe.ne.jp/~yamag/data/Soft/VBAProgramingTIPS.html
http://www.amy.hi-ho.ne.jp/pepa/pc/tips/excel/xl_vba21.html

投稿日時 - 2004-03-07 18:32:35

補足

いろいろ有り難うございます。上記VBAの
"c:\my documents\test2"を
自分の環境に合わせて書き換えて実行しますと
("Excel ファイル (*.xls),*.xls") の行が
赤字になり
「コンパイルエラー
修正候補:行番号または行ラベルまたはステートメント
またはステートメントの最後」
とエラーメッセージがでてしまいます。
いろいろ全角にしたり半角にしたりと書いてみましたが
駄目でした。お時間がありましたらよろしくお願いします。

投稿日時 - 2004-03-08 13:57:50

お礼

お手数かけまして有り難うございます。今日はこれから時間がありませんので明日やってみたいと思います。とりあえず有り難うございます。

投稿日時 - 2004-03-07 18:50:31

ANo.4

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

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

回答(5)

ANo.5

>myFName = Application.GetOpenFilename("テキスト ファイル (*.txt),*.txt")

Excel では実行可能ですが、Access だと、GetOpenFilename が実装されてないのでしょう。Access でやろうとするなら、
Dim ea As Excel.Application
Set ea = New Excel.Application
myFName = Application.GetOpenFilename("テキスト ファイル (*.txt),*.txt")
のようにしなければならないと思います。
が、GetOpenFilename って、ダイアログを開いたときに表示するフォルダの指定ができなさそうですよね・・・。
それなら FileDialog の方が良いと思うんですけど。
全部は理解できなくても、そのままコピー&ペーストで貼り付けて、
.Filters.Add "HTML ファイル", "*.html"
のところを Excel 用に変えるのと、
.InitialFileName = CurrentProject.Path
のところを
.InitialFileName = "D:\EXCEL\AAAY\BBB.XLS"
に変えるくらいで使用できると思います。

投稿日時 - 2004-03-07 19:24:59

お礼

お手数をおかけしています。しかし丁寧に教えていただいても小生のレベルでは無理と分かりました。今隠居の身ですから時間はありますのでゆっくり勉強します。有り難うございました。

投稿日時 - 2004-03-08 13:57:28

ANo.3

i-haradaです。

D:\EXCEL\AAAY\BBB.XLSの後に1スペース入れてから、D:\EXCEL\AAAY\ccc.XLS D:\EXCEL\AAAY\DDD.XLS D:\EXCEL\AAAY\EEE.XLS って感じで出来ないでしょうか? 見当違いでしたらごめんなさい(。-人-。)

投稿日時 - 2004-03-07 14:33:05

補足

有り難うございます。確かに教えていただいた方法でやってみましたら複数開くことができましたが、AAAホルダーの中にはファイルが500個ぐらいあるので駄目でした。すいませんです。

投稿日時 - 2004-03-07 15:41:32

ANo.2

エクセルVBAでは出きる
Sub test02()
myFName = Application.GetOpenFilename _
("テキスト ファイル (*.txt),*.txt")
End Sub
が出きると思うので、やって見てください。
ファイルをオープンする前にファイル名をユーザーに選択させる部分に上記1行を挟んで見てください。
("テキスト ファイル (*.txt),*.txt")の部分は、たまたま身近にあったテキストファイルの例ですが、エクセルファイル用に変えてください。

投稿日時 - 2004-03-07 12:38:24

補足

有り難うございます。やみくもに教えていただいた
Sub test02()
myFName = Application.GetOpenFilename _
("テキスト ファイル (*.txt),*.txt")
End Sub
をホルダーの中にある一番最初のファイルの中に書いてみましたが("テキスト ファイル (*.txt),*.txt") の部分がエラーになります。
その前に教えていただいたことが完全に理解できませんです。
このVBAをどこに書くのか、
「ファイルをオープンする前にファイル名をユーザーに選択させる部分に上記1行を挟んで見てください。」
は具体的にどこに挟むのか等々です。

もし可能ならば教えてただけますか。よろしくです。

投稿日時 - 2004-03-07 15:31:03

ANo.1

お礼

有り難うございます。しかし参考URLを熟読しましたが小生のレベルでは理解できませんでした。すみませんです。

投稿日時 - 2004-03-07 15:30:51

あなたにオススメの質問