|
▼VBA初心者 さん:
こんにちは。
メールのやりとりだと問題ないのですが
無料で貸して使わせて頂いている掲示版ですので
不必要な引用は避ける用にしましょう。
> いろいろなサイトから探してみました。
先に提示させて頂いたURLに
> h tp://msdn.microsoft.com/en-us/library/bb225982.aspx
Value 8 がMicrosoft Excel 97 format、Microsoft Excel 2000 format
となっていますね。
>クエリ式'登録日 'の構文エラー:演算子がありません。」というメッセージ
>が表示されます。
こちらの掲示板の仕様で
半角スペースが続くと全角スペースに
置換されてしまう場合がある模様です。
VBエディタにペーストしたタイミングで
全角スペースがあるようでしたら
半角スペースに置き換えて下さい。
> エラーメッセージが表示されてしまいます。
こちらで再現しなかったので
色々Webを調べてみたのですが…。
VBA初心者さんの環境で Excel2007 を使われていないでしょうか?
その場合は通常開くExcelの拡張子が xlsx になる筈ですので
xlsFileName = "C:\" & Format(Date, "yyyy_mm_dd") & "ホストデータ.xlsx"
にすればエラーが出なくなるかと思われます。
また、拡張子 xls で保存されたいのであれば
xlsWkb.SaveAs xlsFileName, FileFormat:=56
の様に記述してみて下さい。
以下補足です-------------------------------------------------------------
以前に提示させて頂いた回答で
> DoCmd.TransferSpreadsheet acExport, 8, "Q_Rireki", xlsFileName, True
とありましたが、
DoCmd.TransferSpreadsheet acExport, acSpreadsheetTypeExcel8, "Q_Rireki", xlsFileName, True
の様にAccessの定数を使うのが一般的かと思われます。
Ctrl + G キーを押しイミディエイトウィンドウを出現させ、
そこに
? acSpreadsheetTypeExcel8
と入力し、Enterキーを押してみて下さい。
8 という結果が返って来たかと思われます。
acSpreadsheetTypeExcel8 という定数を AccessVBAにおいて
数値に変換すると 8 という値になるという意味です。
次に
? xlExcel8
と入力するとどうなるでしょうか。
通常は何も値を返さないかと思われます。
今度は Excelを起動し、VBエディタのウィンドウにイミディエイトウィンドウを表示させ
(Excel2007の場合は開発タブをリボンに表示させる必要があった気がします)
? xlExcel8
と入力すると 56 という値が返ります。
先のコードにある
> FileFormat:=56
はこの数値を指します。
Excelへの参照設定を行うと
AccessからExcelの定数を使う事も可能です。
(Excel 参照設定 でWeb検索するとやり方等も探せるかと思われます。)
ただし、Ac2007、Ex2007 で作ったプログラムを
Ac2003、Ex2003 の環境で実行するとエラーが出る事がありますので
注意して下さい。
|
|