Access2000 の●●mdb から Excel2007 のAAA.xls を開こうとしますが
オートメーションエラー(サーバーによって例外が返されました)
が表示され開きません。
●●mdb と AAA.xls は同じフォルダーに入れてます。
Accessの「参照設定」では、
Microsoft Excel 12.0 Object Library
を選んでます。
ボタン(Cmd1)を押して表示させたいので
Private Sub Cmd1_Click()
Dim Appexcel As New Excel.Application
Dim wb As Excel.Workbook
Dim strfile As String
strfile = CurrentProject.Path & "\AAA.xls"
Set Appexcel = New Excel.Application
Set wb = Appexcel.Workbooks.Open(strfile)
Appexcel.Visible = True
End Sub
のように書いてますが、どうもうまく開いてくれません。
どうすれば表示させることができますか。
A 回答 (4件)
- 最新から表示
- 回答順に表示
No.4
- 回答日時:
回答ではなく、情報にすぎませんが、
Access2000->Excel2000なら、下記で問題なく開きました。
>Excel2007 のAAA.xls を開こうとしますが
というところが問題なのかもしれませんが、環境が無いので試せません。ご参考まで。
'Excel9.0 Object Library
Sub test()
Dim Appexcel As New Excel.Application
Dim wb As Excel.Workbook
Dim strfile As String
strfile = CurrentProject.Path & "\Book1.xls"
'Set Appexcel = New Excel.Application 先にNewしているので不要、有ってもエラーにならない
Set wb = Appexcel.Workbooks.Open(strfile)
Appexcel.Visible = True
End Sub
No.3
- 回答日時:
読み取り専用になる場合は他に非表示で
Excelが起動されている可能性がある場合
です。
このコードで読み取り専用になるわけでは
ありません。訂正しておきます。
このような書き方もあるということで
少しコードを変更しておきます。
読み取り専用にはならないと思います。
Private Sub コマンド1_Click()
On Error GoTo Err_コマンド1_Click
Dim oApp As New Excel.Application
Dim wkb As Excel.Workbook
Set oApp = CreateObject("Excel.Application")
Set wkb = oApp.Workbooks.Open(Filename:=CurrentProject.Path & "\AAA.xls", ReadOnly:=False)
oApp.Visible = True
On Error Resume Next
oApp.UserControl = True
Exit_コマンド1_Click:
Exit Sub
Err_コマンド1_Click:
MsgBox Err.Description
Resume Exit_コマンド1_Click
wkb.Close
Set wkb = Nothing
oApp.Close
Set oApp = Nothing
End Sub
No.2
- 回答日時:
どこかのソースを拝借するのもいいですが、
まずは、ウィザードを利用してExcelを
開く方法を取得してください。以下は
Access2000なので他のバージョンでは
違うコードが生成されるかもしれませんが
おおよそ似たようなものです。
その方法は、
(1)
フォームにボタンを取り付ける前に
ツールボックスの右上のボタンをクリック
してONにします。
(2)
フォームにボタンを付けるとウィザードが
表示されます。
(3)
アプリケーションを選択し、Excelの起動を
選択して次にいきます。
(4)
ボタンに表示するピクチャあるいは文字列
を適当に選択します。
(5)
ボタンの名前を設定します。
これで完了です。
保存してコード表を開くと以下のような
コードが生成されています。
Private Sub コマンド1_Click()
On Error GoTo Err_コマンド1_Click
Dim oApp As Object
Set oApp = CreateObject("Excel.Application")
oApp.Visible = True
'Only XL 97 supports UserControl Property
On Error Resume Next
oApp.UserControl = True
Exit_コマンド1_Click:
Exit Sub
Err_コマンド1_Click:
MsgBox Err.Description
Resume Exit_コマンド1_Click
End Sub
このままボタンをクリックすると空の
Excelが起動します。
そこで作っておいたファイルを起動するために
以下のように付け加えます。
Private Sub コマンド1_Click()
On Error GoTo Err_コマンド0_Click
Dim oApp As Object
'追加
Dim wkb As Excel.Workbook
Set oApp = CreateObject("Excel.Application")
'追加
Set wkb = oApp.Workbooks.Open(Filename:=CurrentProject.Path & "\AAA.xls")
oApp.Visible = True
'Only XL 97 supports UserControl Property
On Error Resume Next
oApp.UserControl = True
Exit_コマンド1_Click:
Exit Sub
Err_コマンド1_Click:
MsgBox Err.Description
Resume Exit_コマンド1_Click
End Sub
これは同じフォルダに置いたAAA.xlsを指定して
開きます。
これで開いたファイルは読み取り専用で開かれます。
これからいろいろ応用するのが一番いいのでは。
No.1
- 回答日時:
実験はしておりませんので、違ってたらご容赦を (^^;
> Dim Appexcel As New Excel.Application
は Dim Appexcel As Excel.Application
> Set Appexcel = New Excel.Application
は Set Appexcel = CreateObject("Excel.Application")
ではないでしょうか?
Set文の直後に Msgbox で Appexcel.Name を表示させてみると
そこがうまくいっているかどうかわかりますよ。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) VBAでファイルを開くプログラムがエラーです 2 2023/02/21 16:56
- Visual Basic(VBA) 複数のcsvファイルをExcelに一括変換したい 2 2023/03/03 12:44
- Visual Basic(VBA) このVBAでExcelアプリケーションを作成は必要ですか? 3 2023/07/19 21:13
- Visual Basic(VBA) ExcelVBAに関する質問 3 2023/02/17 10:47
- Excel(エクセル) Excel VBAどこが間違ってますか? 4 2023/07/17 10:04
- Visual Basic(VBA) VBAのユーザーフォームのテキストボックスに入力制限をしたい 6 2022/11/15 08:28
- Visual Basic(VBA) マクロVBA 1シートをまとめる 閉じ方 初心者 SOS! 1 2022/06/17 14:54
- Visual Basic(VBA) VBA Bookの表示、非表示 1 2022/09/16 20:44
- Visual Basic(VBA) エクセルのマクロを使ってメールを送る方法について教えてください 2 2022/03/29 01:36
- Visual Basic(VBA) Excel vbaについての質問 3 2023/04/18 16:14
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
UNIX コマンドにおける # や円...
-
アクセスのボタンから指定のワ...
-
SCコマンドでアクセス拒否
-
[バッチファイル]レジストリ値...
-
AIXでの文字コード、改行コード...
-
compressコマンドってなくなっ...
-
Ctrl+Zで戻りすぎた場合、逆に...
-
「環境変数名の編集」ウィンド...
-
JP1での保留Job一覧取得につき...
-
vbaで「最前面に」とする方法は?
-
dig/host/nslookup コマンド...
-
閉じている全ての+ボタンを一...
-
【Gmailコマンド】1年以上前の...
-
DOSコマンドについて
-
setxコマンドが思い通りにいかない
-
Linuxでコマンドが終了しない
-
UNIXとLinuxのコマンドは同じ?
-
ディスク上のサイズを確認する方法
-
ls -lコマンドで表示される合計...
-
Linux コマンド入力待ち状態に...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
UNIX コマンドにおける # や円...
-
【Gmailコマンド】1年以上前の...
-
SCコマンドでアクセス拒否
-
コマンドプロンプト tree
-
[バッチファイル]レジストリ値...
-
Excel下部のメニューが消えた
-
Ctrl+Zで戻りすぎた場合、逆に...
-
AIXでの文字コード、改行コード...
-
ワイルドカードを使ってでフォ...
-
コマンド履歴が~/.bash_history...
-
アクセスのボタンから指定のワ...
-
echo $!の意味を教えてください
-
vbaで「最前面に」とする方法は?
-
コマンドプロンプトにおけるコ...
-
shutdownコマンドをキャンセル...
-
Linuxコマンドは何の言語で書か...
-
「環境変数名の編集」ウィンド...
-
Linuxでコマンドが終了しない
-
相手PCのMACアドレスを知るため...
-
compressコマンドってなくなっ...
おすすめ情報