- 締切済み
ACCESSからエクセルを操作する方法
宜しくお願いします。 (1)ACCESSのフォームをクリックして、抽出されたデータをエクセルに出力(マクロでやってます) (2)抽出されたデータを、エクセル上で、セル幅や項目変更等を、手動にて行っています。 この、(2)の処理を、エクセルのマクロを用いて行いたいのですが、ACCESSからエクセルのマクロ 操作は可能なのでしょうか? ご存知の方がいらっしゃいましたら、宜しくお願い致します。
- みんなの回答 (3)
- 専門家の回答
みんなの回答
- gadd3
- ベストアンサー率46% (211/451)
>この、(2)の処理を、エクセルのマクロを用いて行いたい >のですが、 というご質問でしたら、skikichiさんのご回答どおりでは ないでしょうか? そうではなく、(1)も(2)もAccessから自動で行いたい、 つまり、 >ACCESSからエクセルのマクロを操作したい ということでしたら、 AccessVBA記述するときのVBEditorの画面で 「ツール」「参照設定」で、 「Microsoft Excel ×.0 Object Library」 にチェックをいれてあげれば、オートメーション(でしたっけ?)で、 AccessVBA上で、ExcelVBAのコードを書いて Excelを制御することは可能です。 たとえば、Cドライブのルートに事前にExcelファイル (sample.xls)を作り、以下のようなコードをAccessの標準モジュールに書いて(コピペして) 実行してやればExcelがVBA制御可能な状態でsample.xlsが 開きます。 Sub test01() Dim objEXE As Object Set objEXE = Excel.Application objEXE.Workbooks.Open ("c:\sample.xls") 'Excelファイルを開く objEXE.Visible = True 'Excelを表示する objEXE.ScreenUpdating = True 'Excelの画面を更新する End Sub これはWordやOutlookからも同様に可能です。 Excelへの出力はTransferほにゃららという 命令でやればいいと思います。
- skikichi
- ベストアンサー率65% (45/69)
セルの整形だけでいいのですか? Excel(2003の場合)のマクロでファイルオープン時に・・・ Sub Auto_open() Cells.Select Cells.EntireColumn.AutoFit End Sub でよろしいかと思いますが!? もし、保存ファイル名を可変にしたり、マクロは保存したくないとかでしたら、ちょっと工夫がいりますが可能です。 分らない点はご質問ください。
- skikichi
- ベストアンサー率65% (45/69)
どのような操作を想定されていますか? セル幅や項目変更等は決まったパターンではないということですね!? データ内容等で可変てことですか? Excel側にその条件をパラメーターで引き渡し、マクロ操作するのではダメですか? AccessからExcelへのデータ出力のマクロは何を使用されていますか?
補足
ご回答有難うございます。 想定している作業は、セルの幅、列の調整だけです。 エクセルに出力すると、セル幅や列の幅が均等になっていないので、こちらをきれいにしたいだけなのです。 >Excel側にその条件をパラメーターで引き渡し、マク >ロ操作するのではダメですか? この作業は、どのようにされるのですか?自分、ACCESSを使うのが久々なので、完全に忘れてしまっているものですから・・・ >AccessからExcelへのデータ出力のマクロは何を使用 >されていますか? アクション「出力」でエクセルに出力しています。 VB?VBA?を使う手もあるようなのですが、自分全く分からない者で。。。 大変お手数ですが、宜しくお願い致します。