Microsoft Access 掲示板

ACCESS2003からEXCEL2007を開いたりエクスポートしたい

6 コメント
views
4 フォロー

ACCESSは初心者レベルの者です。ACCESS2003からEXCEL2003の指定ファイルにエクスポートして起動するVBAコード(ボタン)を作成して問題なかったのですが事情によりEXCEL2007にアップデートしました(ACCESSは2003のままでEXCELファイルは以前の形式で保存・WIN7PC)。そうするとエクスポートは出来るのですがEXCELが開けなくなりました(そのVBAコードでは)。理由が分からなくて困ってます。開くコードは 『Shell "excel.exe C:\Users\user\Desktop\○○\△△.xls", vbNormalFocus』で記述してます。
あと次の段階でしたい事は旧バージョンのEXCELファイルを.xlsx形式に変換してACCESS2003のコードでエクスポートを試したのですが今度はエクスポートも出来ませんでした。コードは『DoCmd.TransferSpreadsheet acExport, acSpreadsheetTypeExcel12, "テーブル名", "○○\△△.xlsx"』
コード記述が間違えていると思うのですが、自分では分からなくて・・・

ピース
作成: 2022/04/05 (火) 12:20:56
通報 ...
1
りんご 2022/04/05 (火) 15:16:46 c564b@0e907

 まず、諸々のアップデートをもっと進めませんか?この質問が解決しても、結局、問題の先送りだから無意味でしょ。
 次に、VBAコードは白紙に戻して全部作り直しましょう。Excelをあれこれして、Accessに取り込んであれこれして、Excelにエクスポートとかも、外注してAccessに一本化しましょう。いつの時代の話ですか。

2
ピース 2022/04/05 (火) 16:05:02 ddfe5@b32f8

りんごさんへアドバイスありがとうございました。確かに仰る通りですね。先の事を考慮して早急に色々と考え直してみます。それまで当面のExcelファイルにエクスポート出来るのにSHELL関数で開かなくなった事だけ解決したいのですが、対処方はないでしょうか? 互換ファイルになった兼ね合いだと思うのですが。コード記述を少し変更したらいいという問題ではないでしょうか?

4
りんご 2022/04/05 (火) 23:45:01 c564b@0e907 >> 2

Shell "excel.exe C:\Users\user\Desktop\○○\△△.xls",

 詳しくないんだけど、excel.exeの部分もフルパスに変えてみるとか。

当面…SHELL関数で開かなくなった事だけ解決したいのですが、対処方はないでしょうか?

 Excel2003に戻すのはどうですか。また、当面、Windows10とサポート継続中のExcelを用意すると考えないのですか?

3
ゲッキョク駐車場 2022/04/05 (火) 17:13:24 cb55f@f6500

下記のサイトが参考になるかもしれません。

https://www.drk7.jp/MT/archives/001226.html
Excel 2003 と Excel 2007 を共存させる場合の留意点

5

あと次の段階でしたい事は旧バージョンのEXCELファイルを.xlsx形式に変換してACCESS2003のコードでエクスポートを試したのですが今度はエクスポートも出来ませんでした。

.xlsx形式は 2007以降のバージョンから実装されたものですので、2003の時にはなかったものなので、Access2003で.xlsx形式のエクスポートは不可能です。

そうするとエクスポートは出来るのですがEXCELが開けなくなりました(そのVBAコードでは)。理由が分からなくて困ってます。

エクスポートしてできたファイルを直接ダブルクリックすると開くことはできますか。
開けた場合、その時のエクセルのバージョンは2003ですか、2007ですか。

開くコードは 『Shell "excel.exe C:\Users\user\Desktop\○○\△△.xls", vbNormalFocus』で記述してます。

excel.exe のところをフルパスに変更したらどうでしょうか。

6
ピース 2022/04/06 (水) 16:15:38 ddfe5@b32f8

色々とアドバイスありがとうございました。大変参考になりました。
まずShell関数でexcel.exe のところをフルパスにして動作させると”実行時エラー53”となりました。指定ファイルも記述せずExel起動だけでも同様でした。試しにnotepad.exe(ファイル指定せずに)だとメモ帳は起動しました。不思議です。
それでShellを諦めて下記の1でExcelを起動させて 2で指定ファイルを開くと、上手くいきました。
 1:『 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』

 2:『oApp.Workbooks.Open Filename:="C:○○△△.xls"』

Shellで起動が出来ないのは不明ですが、何とかこれで取りあえずの対処でします。

WIN10/Office2016(ACCESS2016入り)環境の別PCがありまして、それで現行のmdbファイルを試した事があるのです。そうするとVbaコードが無反応となるコマンドが多くあったので(mbd形式、accdb形式に変換後も)、それに移行するのが億劫で古いバージョンを使い続けている次第です。でも先々考えると行き詰まってしまいますね。今後何とかそれを新しいもので使える様にしなくてはと今回感じました。

色々と丁寧にアドバイス頂き、大変ありがとうございました。