- 締切済み
OracleのデータをExcelに貼り付けるとき
EXCEL2003 SP3を使用しています。 EXCELのマクロを利用して、OracleにSQLを投げて戻ってきた結果をEXCELに貼り付けています。 OracleのデータをCopyToClipbordでコピーして、セルを指定してPasteしていたのですが、どのセルを指定しても何故か"A1"のセルに貼りついてしまいます。 今までSP2を使用していた時は問題なかったのですが最近バージョンアップしてからこの不具合が発生してしまいました。 しかも、エクスプローラーを使用してEXCELファイルを開いた時にこの現象が起きます。 EXCELを立ち上げてエクセルのメニューのファイル>開くでこのファイルを開けた場合は問題なく動きます。 マイクロソフトのホームページなど色々とあたってみたのですが 解決できません。 社内全体がこのファイルを利用しており、大変困っています。 どなたか対策をご存知の方、いらっしゃいませんか? ご参考までに、その部分のコード(抜粋)は次の通りです。 SQLの部分は*****としています。(データの抽出には問題ないので) ============================== Dim objSess As Object Dim objDb As Object Dim objDs As Object Dim Str_sql As String Application.ScreenUpdating = False Worksheets("Sheet1").Activate Set objSess = CreateObject("OracleInProcServer.XOraSession") Set objDb = objSess.OpenDatabase("sumple", "sumple/sumple", 0&) Str_sql = "" Str_sql = Str_sql + " SELECT *****" Str_sql = Str_sql + " FROM *****" Str_sql = Str_sql + " WHERE *****" Set objDs = objDb.CreateDynaset(Str_sql, 0&) objDs.CopyToClipboard Cells(2, 8).Select ActiveSheet.Paste ==============================
- みんなの回答 (1)
- 専門家の回答
みんなの回答
- sarap100
- ベストアンサー率0% (0/0)
Oracleは詳しくありませんが、 1. ActiveSheet.Paste (ActiveSheet.Cells(2,8)) の様にペースト先を明示する 2. クリップボード経由ではなく、直接貼りつける Cells(2,8).Value = objDs.Value (こちらはエラーが出る可能性があります)