- PR -

Office SR-1→SP3におけるCreateObjectでのエラー

投稿者投稿内容
OpS
ベテラン
会議室デビュー日: 2003/12/09
投稿数: 50
投稿日時: 2004-03-05 13:11

Set objExcelApp = CreateObject("Excel.Application")
objExcelApp.Workbooks.Add()
Set objExcelBook = objExcelApp.ActiveWorkbook
Set objExcelSheets = objExcelBook.Worksheets
Set objExcelSheet = objExcelBook.Sheets(1)
objExcelSheet.Activate
objExcelApp.Application.Visible = True


このコードでもエラーがでるのでしょうか。
SP3をあてていないクライアントでは動作するのですか。

動作していたソースを投稿してください。
あい
会議室デビュー日: 2003/06/04
投稿数: 15
投稿日時: 2004-03-05 13:38
Jitta様

ご質問ありがとうございます。
私のほうではMSDNのCreateObject 関数↓
http://www.microsoft.com/japan/msdn/library/default.asp?url=/japan/msdn/library/ja/script56/html/vsfctcreateobject.asp
にもありますように使用しておりました。

「CreateObjectの引数ですが、“Excel.Sheet”?
“Excel.Application”ではないですか?」
Excel.Application Excel:本体
Excel.Sheet Excel:シート
Excel.Chart Excel:グラフ
なので私はシートをバインディングしています。OFFICE SR-1時はできていました。
Jitta様に教えていただいたリンクを拝見しました。
私はそういった類のものではないかと考えていまして、掲載されている
「CreateObject メソッドや GetObject メソッドを使用して、Excel をオートメーションのサーバーとして使用した場合、Excel のバージョンにより動作が異なる場合があります。 」
「すべてのバージョンの Excel に対して正しく動作させるには、プロシージャ内で Excel の バージョンを確認し、バージョン番号を変数に格納する方法です。以下のコードを使用します。
 ExcelVersion = Val(xlObj.Application.Version)

をすぐに試してExcel のバージョンの取得をこころみました。
CreateObject("Excel.Application")もCreateObject("Excel.sheet")も
Stringの空文字がかえってきます。
Createされていないということですよね。
あい
会議室デビュー日: 2003/06/04
投稿数: 15
投稿日時: 2004-03-05 14:17
さ・お様

度々申し訳ありません。
引用:

さ・おさんの書き込み (2004-03-05 13:11) より:
Set objExcelApp = CreateObject("Excel.Application")
objExcelApp.Workbooks.Add()
Set objExcelBook = objExcelApp.ActiveWorkbook
Set objExcelSheets = objExcelBook.Worksheets
Set objExcelSheet = objExcelBook.Sheets(1)
objExcelSheet.Activate
objExcelApp.Application.Visible = True
このコードでもエラーがでるのでしょうか。
SP3をあてていないクライアントでは動作するのですか。


上記コードですがブラウザIE6インターネットオプションの
セキュリティのレベルを低(一番低いレベル)でならSheetが作成されました!!
罫線などは作成されますが、xlWookSheet.Columns("A").ColumnWidth=0
表の項目に入れようと下記のようにします。

call Set_Title("B8","月 計","MS Pゴシック","標準",8,3)
Sub Set_Title(xlcell,xlValue,xlFontName,xlFontStyle,xlFontSize,xlHorizontalAlignment)
   xlWookSheet.Range(xlcell).Value = xlValue
   xlWookSheet.Range(xlcell).Font.Name = xlFontName
   xlWookSheet.Range(xlcell).Font.FontStyle = xlFontStyle
   xlWookSheet.Range(xlcell).Font.Size = xlFontSize
   xlWookSheet.Range(xlcell).HorizontalAlignment = xlHorizontalAlignment
   xlWookSheet.Range(xlcell).Value = xlWookSheet.Range(xlcell).Value
End Sub

上記では値が出力されません。sp3では表記が変わっていて違うのでしょうか?
ちなみに上記コードで
Val(objExcelApp.Application.Version)バージョンの取得を試みましたが
空文字かなにかで取得できませんでした。
TypeNameは「Application」と確認できました。


出力できたにしろ、このセキュリティレベルだと不安なのですが
IEではしょうがないのでしょうか...
ちなみに作成されるExcelのセキュリティレベルは中になっていて
「ウイルス検索プログラムがインストールされていません」と表示されて
確認することができています。

[ メッセージ編集済み 編集者: あい 編集日時 2004-03-05 15:03 ]
あい
会議室デビュー日: 2003/06/04
投稿数: 15
投稿日時: 2004-03-05 15:18
SR-1では稼動していたものです。

〓〓〓〓〓〓〓〓〓〓
    Set xlApp = CreateObject("Excel.Sheet")
    Set xlWookSheet = xlApp.Application.Workbooks("object").Worksheets("Sheet1")
    Call Set_Title("B2","月 計","MS Pゴシック","標準",8,3)
        ・
        ・
        ・
    xlWookSheet.Columns("A").ColumnWidth=0
        ・
        ・
        ・
    xlWookSheet.Range("B2:M2").HorizontalAlignment = 7
        ・
        ・
        ・

    xlWookSheet.PageSetup.PaperSize = 9
    xlWookSheet.PageSetup.Orientation = 1

    xlWookSheet.PageSetup.LeftMargin=xlApp.Application.InchesToPoints(0.6)
    xlWookSheet.PageSetup.RightMargin=xlApp.Application.InchesToPoints(0.6)
    xlWookSheet.PageSetup.CenterHorizontally=-1

    xlApp.Application.Visible = True
    xlApp.SaveAs Trim(xlPath) & "\xlyyyymmddhhmmss.xls"

Sub Set_Title(xlcell,xlValue,xlFontName,xlFontStyle,xlFontSize,xlHorizontalAlignment)
  xlWookSheet.Range(xlcell).Value = xlValue
  xlWookSheet.Range(xlcell).Font.Name = xlFontName
  xlWookSheet.Range(xlcell).Font.FontStyle = xlFontStyle
  xlWookSheet.Range(xlcell).Font.Size = xlFontSize
  xlWookSheet.Range(xlcell).HorizontalAlignment = xlHorizontalAlignment
  xlWookSheet.Range(xlcell).Value = xlWookSheet.Range(xlcell).Value
End Sub
〓〓〓〓〓
点線は同じ用にセルに対して値を入れたりする処理です。
よろしくお願い致します。

[ メッセージ編集済み 編集者: あい 編集日時 2004-03-05 15:49 ]
OpS
ベテラン
会議室デビュー日: 2003/12/09
投稿数: 50
投稿日時: 2004-03-05 15:22
サーバーを信頼済みサイトに追加すれば、
Excelのセキュリティレベルは「高」でも動作
しておりますが...
こういうことではないのでしたら、
メンゴです。
あい
会議室デビュー日: 2003/06/04
投稿数: 15
投稿日時: 2004-03-05 15:31
さ・お様

初歩的な問題でスミマセン...
そうですよね。セキュリティレベルをあげて動きます。
しかしなぜソースやセキュリティレベルを変えていないのに、同じ条件で
OfficeのバージョンをR-1→SP3にして動かなくなるのかはわかりません。
OpS
ベテラン
会議室デビュー日: 2003/12/09
投稿数: 50
投稿日時: 2004-03-05 15:49
「Office 2000 Service Pack 3 (SP-3) は、Office 2000 で最も高いレベル
のセキュリティを安定性を実現します。このサービス パックは、企業ユーザー
でも個人ユーザーでもご利用いただけます。」
と書いてありますので、セキュリティの縛りが強くなったからではないでしょうか。

あい
会議室デビュー日: 2003/06/04
投稿数: 15
投稿日時: 2004-03-05 16:23
さ・お様 そして、ほむら様,Jitta様

サーバーを信頼済みサイトに追加することで
従来SR-1で稼動していたソースも、SP3で稼動させることができました。
SP3でセキュリティが強化されたことは知っていたのですが、
SP3をあてることで、どこが、どのように変わったのが分からずにいました。
私の言葉不足でご迷惑をおかけし、
長々とおつきあいいただき申し訳なかったです。
本当にありがとうございました

スキルアップ/キャリアアップ(JOB@IT)