gooID利用規約 改定のお知らせ

いろいろ検索してコピペ等でやってみてもだめでした。

エクセルVBAで、エクセルファイルやEXEファイルを開く方法は簡単なのに、
アクセスファイルの開き方がわかりません。

ただ開くだけなのですが、簡単な記述の仕方はありませんか?

このQ&Aに関連する最新のQ&A

A 回答 (3件)

Dim acApp As Object



Private Sub CommandButton1_Click()
On Error GoTo Err_CommandButton1_Click
  
  Set acApp = CreateObject("Access.Application")
  acApp.OpenCurrentDatabase "C:\Temp\Db2.mdb"
  acApp.Visible = True
Exit_CommandButton1_Click:
  Exit Sub
Err_CommandButton1_Click:
  MsgBox Err.Description
  Resume Exit_CommandButton1_Click
End Sub

Private Sub CommandButton2_Click()
On Error GoTo Err_CommandButton1_Click
  acApp.CloseCurrentDatabase
  acApp.Quit
Exit_CommandButton2_Click:
  Exit Sub
Err_CommandButton2_Click:
  MsgBox Err.Description
  Resume Exit_CommandButton2_Click
End Sub

エクセルのバージョンが問題かと思いますが・・・。
昨今は、Access から Excel をこのようにして開いています。
その逆バージョンです。
    • good
    • 1
この回答へのお礼

ありがとうございました!!
きちんと開けました!!
今後も活用させていただきます。

お礼日時:2007/07/24 17:44

補足:



閉じる時のデバッグエラーを回避するには、エクセルのエラートラップの設定を変更!
    • good
    • 0

shellを使うと簡単でしょう。


指定するアクセスのDBはフルパスで記述して下さい。

例) マイドキュメントにある、db1.mdb を起動します。
Shell "msaccess.exe ""C:\Documents and Settings\takataka65\My Documents\db1.mdb""", vbNormalFocus

「”」の数に注意してください。
mdbのフルパスを指すときに空白がある場合の対処になります。
    • good
    • 4

このQ&Aに関連する人気のQ&A

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

このQ&Aを見た人はこんなQ&Aも見ています

このQ&Aを見た人が検索しているワード

このQ&Aと関連する良く見られている質問

QExcelのマクロでAccessのmdbを起動したい

タイトルどおりです。
Excelマクロで試してみたところ、「ExcelからはAccessを起動できません」という旨のメッセージが出てしまいました。

Aベストアンサー

ツールで、参照設定して、Microsoft Access xx.0 Object Library

Sub AccessOpen()
Dim appAcc As Access.Application
Dim myPath As String
Set appAcc = New Access.Application
myPath = "C:\"  '要設定
With appAcc
 .OpenCurrentDatabase myPath & "test1.mdb", False
 '処理
 .Quit
End With
Set appAcc = Nothing
End Sub

ただ、単独で、mdbファイルを開けるのでしたら、Excelから、MsQuery でも開けられるはずです。また、通常は、ADOで、mdb ファイルを開けますね。

QExcel VBAからAccessマクロを実行したい

Excel VBAからAccessマクロを実行する方法を知っている人がいましたら
教えてください。
よろしくおねがいしまっす!

Aベストアンサー

こんにちは

私もExcelVBAからACCESSのマクロを実行したことはないのですが以下の方法で
一応マクロは実行されました。

----------------------------------------------------------------

DB2.MDBには"メッセージ"というマクロが存在します。
"メッセージ"というマクロはメッセージボックスを表示しています

Dim objAccess As Object

''ACCESSオープン
Set objAccess = CreateObject("Access.Application")
Call objAccess.OpenCurrentDatabase("C:\db2.mdb")

'マクロの実行
objAccess.DoCmd.RunMacro "メッセージ"

''ACCESSクローズ
objAccess.CloseCurrentDatabase
Set objAccess = Nothing

----------------------------------------------------------------------

もっと良い方法があるのかもしれません

参考にしてみてください。

こんにちは

私もExcelVBAからACCESSのマクロを実行したことはないのですが以下の方法で
一応マクロは実行されました。

----------------------------------------------------------------

DB2.MDBには"メッセージ"というマクロが存在します。
"メッセージ"というマクロはメッセージボックスを表示しています

Dim objAccess As Object

''ACCESSオープン
Set objAccess = CreateObject("Access.Application")
Call objAccess.OpenCurrentDatabase("C:\db2.mdb")

'...続きを読む

QACCESS(VBA)でエクセルファイルを開く時

VBAでエクセルファイルを開いて処理していますが
一つのエクセルファイルを開いている時に(これは手操作)
VBAからエクセルファイルを開くと
一瞬、開いたような反応を示すのですが
すご、閉じてしまい
用を足しません
こんな時、VBAで今開こうとするエクセルファイルを
優先的に開けたら、と思いますが
むりでしょうか?
よろしくお願いします

Aベストアンサー

以下の方法で開けませんか?

Sub ExcelCreate()
Set MyExcel = CreateObject("excel.application")
'MyExcel.Workbooks.Open FileName:="C:\test.xls" '<---既存のエクセルブックを開く場合
MyExcel.Workbooks.Add '<---新しくエクセルを生成する場合
MyExcel.Visible = True
End Sub

QAccessからExcelのファイルを起動する

Accessのフォーム上にボタンを作成して
クリックすると特定のExcelのファイルが起動する
ようにしたいのですが、簡単な手はありませんか?

Aベストアンサー

こんにちは。maruru01です。

Shell関数を使って、

Shell "C:\Program Files\Microsoft Office\Office\EXCEL.EXE ファイル名"

とします。
ちなみに、Excelの実行ファイルのパスは環境によって違ってきます。

あと、Excelの実行ファイルのパスがわからなくても、ファイルに関連付けられたアプリケーションで開くには、API関数のShellExecute関数を使用します。
API関数については、WEB上で検索して下さい。
このサイトの過去の質問でもヒットするかも知れません。

Qエクセル マクロで指定フォルダを開く

エクセルにて
指定フォルダを開く、マクロがあれば教えて頂けないでしょうか。
よろしくお願いいたします。

Aベストアンサー

こんにちは。

こういうものですか?
開くフォルダを変えたいときは targ に与えるパスを変更します。

Sub OpenFolders()
Dim targ As String
targ = "C:\"
Shell "C:\Windows\Explorer.exe " & targ, vbNormalFocus
End Sub

Q【Excel VBA】マクロでExcel自体を終了させたい

環境:WindowsXP、Excel2003

マクロでエクセルを終了(ブックを閉じて、アプリケーション自体も終了)させたいのですが、以下のコードではアプリケーションが閉じてくれません。

ThisWorkbook.Close
ExcObj.Quit
Application.Quit

どこか悪いところはありますでしょうか?

よろしくお願いします。

Aベストアンサー

普通に考えれば質問者のコードで上手くいきそうですが
hana-hana3さんの回答にもあるようにThisWorkBook.Closeでコード終了となりますので
Application.QuitをThisWorkBook.Closeの前にもってこないといけません。
Application.Quitはそれがあるプロシージャのコードが全て終わるまで
その実行を保留するちょと特別動作をします。

'-------------------------------------
 Application.Quit
 ThisWorkbook.Close
'-------------------------------------
 
 

QEXCEL VBA で現在開いているブックのファイル名を取得する方法

EXCEL2003 VBAで業務を簡素化するために、現在開いているブックのファイル名を取得する方法が分かりません。
作業手順をマクロを使って処理していますが、オリジナルのワークブックをファイル名を変えて保存し、以後、このワークブックを読み込んで使用しています。
このときのVBAは、オリジナルのファイル名を使っているため、ファイル名を変更するとエラーになり、以後の業務に使用できません。
常にファイル名を取得出来るVBAをどなたか、教えて下さい。

Aベストアンサー

>現在開いているブックのファイル名
 ちょっと曖昧な表現かなぁという気もいたしますが、VBAが書いてあるブックのブック名は
ThisWorkbook.Name
で、現在 "アクティブにして" 操作対象になっているブックの名前は
ActiveWorkbook.Name
ですね。

 しかし、
>VBAは、オリジナルのファイル名を使っているため、ファイル名を変更するとエラーになり
というような文脈からすると、
ThisWorkbook.Name
の方ですかね。

QAccessのマクロでモジュールを実行させたい。

Access2002を勉強中の初心者です。

AccessでDB1という名前のデータベースを作成し、その中で、モジュール1というモジュールを作成しました。これを実行するマクロを作成したく、次のようにマクロを作成しました。
マクロのデザイン画面でアクションに「プロージャの実行」を選択、プロージャ名入力覧の右側の...のボタンを押して式ビルダ画面を表示、ここの「関数」フォルダを開いてDB1を選択、表示されたモジュール1を貼り付けてOK。
しかし、このマクロを実行すると、次のエラーとなります。「DB1 指定されたDB1が見つけることができない関数名が含まれています」

根本的に方法が間違っているのでしょうか?
アドバイスをよろしくお願いします。

Aベストアンサー

#1です。

ちょっと時間ができたので、Accessのヘルプで、
 "RunCode/プロシージャの実行" アクション
についてのトピックを見てみました。

結論から言うと、基本的な考え方が間違っているみたいです^^;。

「プロシージャの実行」アクションでは、「Function」プロシージャを指定するようです。
Subプロシージャではエラーになります。


つまりご質問の件では、
「Subプロシージャを呼び出すFnctionプロシージャ」をまず書かなけれえばならない。
そして、マクロのアクションでは、あらためてこのFunctionプロシージャを指定しなければいけません。

QACCESSで空白のデーターをクエリで判定/識別する方法を教えてくださ

ACCESSで空白のデーターをクエリで判定/識別する方法を教えてください。
EXCELでは空白を""で判定/識別表していますがACCESSではどうなるのでしょうか。

下の例はフィールドに試験番号があればその番号を、空白なら”欠席”と表示しようとしています。
IIf(([試験番号]="空白の場合何を入れる?"),[試験番号],"欠席")

Aベストアンサー

もうひとつの書き方は
式1: IIf([試験番号] Is Not Null,[試験番号],"欠席")
第2、第3引数の、質問の順序にあわせるとこうなる。

QEXCELファイルのカレントフォルダを取得するには?

EXCELファイルのカレントフォルダを取得するには?

C:\経理\予算.xls

D:\2005年度\予算.xls

EXCEL97ファイルがあります。

VBAで
  カレントフォルダ名
(C:\経理\,D:\2005年度\)
を取得する事は可能でしょうか?

CURDIRでは上手い方法が見つかりませんでした。

Aベストアンサー

こんばんは。
Excel97 でも、同じですね。以下で試してみてください。

Sub test()
'このブックのパス
a = ThisWorkbook.Path
'アクティブブックのパス
b = ActiveWorkbook.Path
'Excelで設定されたデフォルトパス
c = Application.DefaultFilePath
'カレントディレクトリ
d = CurDir
MsgBox "このブックのパス   : " & a & Chr(13) & _
   "アクティブブックのパス: " & b & Chr(13) & _
   "デフォルトパス    : " & c & Chr(13) & _
   "カレントディレクトリ : " & d & Chr(13)
End Sub


このQ&Aを見た人がよく見るQ&A

人気Q&Aランキング

おすすめ情報