• ベストアンサー

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は立ちあがりますが沢山のホルダーがあるので一歩でも自動で近づきたいのです。方法がありましたらよろしく教えてください。

noname#18634
noname#18634

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

  • ベストアンサー
  • imogasi
  • ベストアンサー率27% (4737/17068)
回答No.4

#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

noname#18634
質問者

お礼

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

noname#18634
質問者

補足

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

その他の回答 (4)

回答No.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" に変えるくらいで使用できると思います。

noname#18634
質問者

お礼

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

  • i-harada
  • ベストアンサー率22% (56/252)
回答No.3

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

noname#18634
質問者

補足

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

  • imogasi
  • ベストアンサー率27% (4737/17068)
回答No.2

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

noname#18634
質問者

補足

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

回答No.1
参考URL:
http://www.accessclub.jp/samplefile/samplefile_159.htm http://www.accessclub.jp/samplefile/samplefile_78.htm
noname#18634
質問者

お礼

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

関連するQ&A

  • Access2007のマクロ

    Access2007のフォーム画面でコマンドボタンを貼り付けこれをクリックするとExcel2007が開くマクロに以下のパス名を書き入れてこれを開くにはマクロの何という項目にこの引数を入れればよいのか教えて下さい。 C:\Program Files\Microsoft Office\Office12\EXCEL.EXE D:\Excel\A_SHOKU\shoku2008.xlsm よろしくお願いします。

  • マクロを登録したボタンの表示を変更するマクロ

    かなり難易度が高いと思いますが、Excelのマクロでこんなことできませんか? Excelのボタン(表示名:ファイル取り込み)にあるマクロを登録し、このマクロを実行するとファイル選択ウインドウが開き、ここでフルパス指定(仮にc:\aaa\bbb.xls)であるファイルを選択する。 すると、ボタンの表示が”参照ファイル”に変わり、参照ファイルをクリックするとc:\aaa\bbb.xlsが別Windowオープンになる。

  • EXCELのマクロ記録でMSアクセス操作は可能?

    EXCEL2003のDATA(SHEET1全体)をアクセス2003の指定されたテーブルに取り込む操作を マクロの記録で行いたいのですが可能でしょうか?。 VBA等難しく思えるので、マクロの記録だけでできるといいのですが....。 下記のような操作はVBAで簡単に組めますでしょうか?。 (1)アクセスのBBB.MDBのTTTというテーブル内のDATAを全削除してテーブル閉じる (2)AAA.XLSのsheet1全体をTTTのテーブルにインポート。 (3)データーベースの最適化を行い保存して閉じる。 以上初歩的かもしれませんが、どなたかお願いします。

  • 現在、以下のような処理のマクロ[EXCEL2000]を作成しております

    現在、以下のような処理のマクロ[EXCEL2000]を作成しておりますが、 今月から初めて携わる分野なので四苦八苦しております。 お力添えをお願いいたします。 なお、下記に出てくるディレクトリに関しては、今後変更も考えられますので コンフィグファイルを別途用意して指定するように作成します。 以下、処理の流れです。 (1)Aと言うディレクトリに以下のようなCSVファイルが格納されています。 ※例  20100201_AAA.csv  20100201_bbb.csv  20100201_ccc.csv  20100202_AAA.csv  20100202_bbb.csv (2)日付選択画面にて指定の日付を選択し、作成ボタンを押下します。  ※添付ファイルの画像参照 (3)指定された日付からAに格納されているCSVファイルを選択し、  対象ファイルのデータを新規EXCELファイルにコピーします。  ※例   2010年2月1日を選択した場合、以下のファイルが対象となります。   20100201_AAA.csv   20100201_bbb.csv   20100201_ccc.csv (4)新規EXCELファイルをCSVファイルと同名でBのフォルダへ保存します。  ※例   20100201_AAA.xls   20100201_bbb.xls   20100201_ccc.xls (5)終了 このような流れになっていますが、日付指定の画面作成から すでに躓いております。 お手数ですが、ご教授いただけますと助かります。 また今後の勉強のために、お勧めのサイトなどございましたら 教えていただけると幸いです。 それではよろしくお願いいたします。

  • AccessからAccessを開く

    Access2003です。 今AAA.mdbのフォームを開いています。このフォーム上にボタン(このボタンの正式名称は分かりません。たしかツールの中に入っていたもの)を貼り付けこのボタンをクリックして新たにBBB.mdbを開く方法を教えて下さい。 尚AAA.mdbもBBB.mdbも同じホルダーにあります。 BBB.mdbに書き込んだ後BBB.mdbを閉じると画面にはAAA.mdbが残っているようにしたいです。

  • ExcelのVBAで、他のExcelファイルのセルのデータを取得

    ExcelのVBAで、他のExcelファイルのセルのデータをファイルを実際に開かずに取得する方法はありますか? Workboks.openを使わずに、具体的にどうすればいいのでしょう? (例)  AAA.xls のセル"C5"に BBB.xls のセル"B3"のデータを入力したい場合。 (AAA.xlsにマクロを起動するボタンがある) ただし、BBB.xlsの最初の3行は空白です。

  • Excelマクロ パスの指定方法

    Excelのマクロで別のファイルを編集するのにパスを指定しています。 現状は使用しているドライブ、フォルダが固定されているので下記の様に ドライブ名から指定しています。 <現状>  ・C:\AAA\BBB\PPP.xls   →マクロの入っているファイルを指定  ・C:\AAA\BBB\CCC\SSS.xls  →編集したいファイルを指定 今後、別のドライブやフォルダで使用出来る様にしたいのですがどうすれば よろしいでしょうか?  ・~\BBB\PPP.xls、~\BBB\CCC\SSS.xlsの位置関係は固定  ・~\BBB\CCCの下にあるSSS.xlsを開いて編集したい。  ・~\BBB\PPP.xlsがC\、D\等どのドライブ、フォルダになっても使用可能にしたい。 以上よろしくお願い致します。

  • Excel → Access データをインポート

    OS WinXP Pro SP2 Office 2000 SP3 はじめまして。 マクロ(Excel VBA)を記述しているExcelファイル(Xls_Macro.xls)とインポート用データのExcelファイル(Xls_Data.xls)は別々のファイルになっていて、マクロを実行するとExcelファイルとインポート用データのExcelファイルのデータをAccessファイル(Access.mdb)にインポートする仕組みを開発しています。 インポート用データのExcelファイル(Xls_Data.xls)をADOで接続しレコードセットでデータを取得し、Accessファイル(Access.mdb)もADOで接続しレコードセットの「.AddNew」でAccessファイル(Access.mdb)に更新しようと考えています。 この考え方で問題ないのでしょうか!? もっと簡単な方法があるという方や、何か良い方法をお持ちの方 いらっしゃいましたら、よろしくお願いいたします。

  • 複数のexcelファイルの置換について

    AAA.xlsというファイルの中の情報を複数のexcelファイル(A.xls、B.xls、C.xls、D.xls)でリンク付けしてあるとします。 AAA.xlsをBBB.xlsに名前を変更するとリンクが成り立たなくなってしまいます。 そこで、一括でリンクを変更する方法を教えてください。 マクロでもいいです。 =[AAA.xls]Sheet1!$A$1 これを =[BBB.xls]Sheet1!$A$1 に一括変更したいのです。 よろしくお願いします。

  • ACCESSからEXCELの特定のファイル呼び出し

    ACCESSのメインフォームからコマンドボタンとマクロを使ってEXCELの特定のファイル(デスクトップ上にある顧客情報.xls)を参照したいのですが、EXCELを起動するところまでは出来ますが、このファイルが開けません。マクロのコマンドラインの記述がわかっていないようです。素人ですのでどなたか教えてください。 現在、コマンドラインには下記のように記述しています。 c:\Program Files\Microsoft Office\Office10\excel.exe \顧客情報.xls 記述のどこが違っているのでしょうか?ちなみに、顧客情報.xlsは C:\Documents and Settings\Administrator\デスクトップ  にあるとファイルには書いてありますが、この記述を全て書いてもエラーが出ます。 WINDOWS XP  ACCESS2002 EXCEL2002 を使用しております。 どなたかお教えください。よろしくお願い致します。

専門家に質問してみよう