• 締切済み

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 ==============================

みんなの回答

  • sarap100
  • ベストアンサー率0% (0/0)
回答No.1

Oracleは詳しくありませんが、 1. ActiveSheet.Paste (ActiveSheet.Cells(2,8)) の様にペースト先を明示する 2. クリップボード経由ではなく、直接貼りつける Cells(2,8).Value = objDs.Value (こちらはエラーが出る可能性があります)

参考URL:
http://www.vbalab.net/vbaqa/c-board.cgi?cmd=ntr;tree=6040;id=excel

関連するQ&A