- - PR -
Office SR-1→SP3におけるCreateObjectでのエラー
投稿者 | 投稿内容 | ||||
---|---|---|---|---|---|
|
投稿日時: 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をあてていないクライアントでは動作するのですか。 動作していたソースを投稿してください。 | ||||
|
投稿日時: 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されていないということですよね。 | ||||
|
投稿日時: 2004-03-05 14:17
さ・お様
度々申し訳ありません。
上記コードですがブラウザ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 ] | ||||
|
投稿日時: 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 ] | ||||
|
投稿日時: 2004-03-05 15:22
サーバーを信頼済みサイトに追加すれば、
Excelのセキュリティレベルは「高」でも動作 しておりますが... こういうことではないのでしたら、 メンゴです。 | ||||
|
投稿日時: 2004-03-05 15:31
さ・お様
初歩的な問題でスミマセン... そうですよね。セキュリティレベルをあげて動きます。 しかしなぜソースやセキュリティレベルを変えていないのに、同じ条件で OfficeのバージョンをR-1→SP3にして動かなくなるのかはわかりません。 | ||||
|
投稿日時: 2004-03-05 15:49
「Office 2000 Service Pack 3 (SP-3) は、Office 2000 で最も高いレベル
のセキュリティを安定性を実現します。このサービス パックは、企業ユーザー でも個人ユーザーでもご利用いただけます。」 と書いてありますので、セキュリティの縛りが強くなったからではないでしょうか。 | ||||
|
投稿日時: 2004-03-05 16:23
さ・お様 そして、ほむら様,Jitta様
サーバーを信頼済みサイトに追加することで 従来SR-1で稼動していたソースも、SP3で稼動させることができました。 SP3でセキュリティが強化されたことは知っていたのですが、 SP3をあてることで、どこが、どのように変わったのが分からずにいました。 私の言葉不足でご迷惑をおかけし、 長々とおつきあいいただき申し訳なかったです。 本当にありがとうございました |