2007年11月8日木曜日

excel2007環境で dtsでexcel4.0シートを受信するには activex

excel2007環境になって excel4.0シートでの保存ができなくなりました
asからsqlserverに受信するときpcom excel4.0シートを介して転送している処理がすべてこけるようになってしまった。

dts activeXスクリプトサンプル

*saveas がexcel2003の環境でこける(?)のでバージョン判定追加
KazzzのJとNのはざまで 参考

Function Main()
Set xlsobj = CreateObject("excel.application")
With xlsobj
.DisplayAlerts =false
bookname="c:\My Documents\tenso\filename.xls"
bookname1="filename.xls"
.Workbooks.Open bookname
.Workbooks(bookname1).activate

if cint(.Application.Version) <12
.ActiveWorkbook.Saveas bookname
else
.ActiveWorkbook.Saveas bookname,56
end if

.ActiveWorkbook.Close
.DisplayAlerts =true
End With
Set xlsobj = Nothing
Main = DTSTaskExecResult_Success
End Function

エクセルの保存形式56については  
KazzzのJとNのはざまで

4 件のコメント:

  1. このコメントは投稿者によって削除されました。

    返信削除
  2. excel97-2003形式にした後
    excel4.0-->sqlserver転送するステップはこける

    「外部テーブルのフォーマットが正しくありません」

    返信削除
  3. 訂正
    誤:cint(.Application.Version)
    正:cint(.Application.Version) <12

    返信削除
  4. excel2007環境で
    dts excel applicationで
    saveasをした場合こけないが

    エクセルをsqlserverに転送するステップで「外部テーブルのフォーマットが正しくありません」でこける

    excel2000環境でこのファイルを開こうとしたが「このファイル形式を認識できません」となり開けなかった

    dtsの接続でこのエクセルを開く操作をするとき excel4.0でも5.0でも外部フォーマットが正しくありません、で開けなかった。 excel97-2003で開けるが上記エラーでこける

    返信削除