[リストへもどる]
一括表示

投稿時間:2003/04/22(Tue) 21:43
投稿者名:Nobby
URL :
タイトル:
VBで新しい文書を開く
「逆引きヘルプ」No.091「Wordを起動してExcelの表を貼りつけ印刷する」を参照してプロシージャを
作りましたがVBのないPCでは Wordに関連した部分に入った辺りで ”実行時エラー:VBではサポートさ
れていないオートメーションが変数で使われています”となります。 もちろん参照設定は Word, Exce
lの順にしてあります。なにかセットアップ時に入れるのでしょうか? 基本的なことが分かりませんの
で教えてください。(環境:Windows98SE, VB6.0, Office97)

投稿時間:2003/04/22(Tue) 23:02
投稿者名:花ちゃん
Eメール:
URL :
タイトル:
Re: VBで新しい文書を開く
> 「逆引きヘルプ」No.091「Wordを起動してExcelの表を貼りつけ印刷する」を参照してプロシージャを
> 作りましたがVBのないPCでは Wordに関連した部分に入った辺りで ”実行時エラー:VBではサポートさ

>VBのないPCでは
VBで作成したプログラムですからなければ動きません。ランタイムは入っていますか?

>参照してプロシージャを作りましたが
>”実行時エラー:VBではサポートされていないオートメーションが変数で使われています”

どのように変更されたのでしょうか? 開発環境では問題なく動くのでしょうか?

> (環境:Windows98SE, VB6.0, Office97)

これは、開発環境でしょうか? Wordのバージョンは
実行環境 の OS Excelのバージョン Word のバージョン ランタイムは

投稿時間:2003/04/24(Thu) 17:12
投稿者名:Nobby
URL :
タイトル:
Re^2: VBで新しい文書を開く
> VBで作成したプログラムですからなければ動きません。ランタイムは入っていますか?

ランタイムについては良く分かりませんでした。Websiteを見てVBを持たないPCがVBで作ったソフトを展
開するには必須のものと知りました(確信は100%ではありませんが勉強になりました)。早速ランタイム
をダウンロードしましたが、どれもこれも別途instmsia.exeもダウンロードして使用しましたがうまくイ
ンストールできず、仕方なくhttp://hp.vector.co.jp/authors/VA002384/runtime5.htm よりVB6run5.exe
を得てインストールしました。結果はダメです(以前と同じエラーが出ます)。
>
> どのように変更されたのでしょうか? 開発環境では問題なく動くのでしょうか?
>
以下の通り印刷せず保存するよう改造しましてあります。
開発環境では新しい文書が表示されそれにExcelのデータが貼り付けられ保存されます。
Private Sub Command1_Click()
    'On Error Resume Next    
    Dim wdApp   As Word.Application
    Dim wdDoc   As Word.Document
    Dim xlApp   As Excel.Application
    Dim xlBook As Excel.Workbook
    Dim xlSheet As Excel.Worksheet
    Dim i       As Integer
    Dim danraku As Integer
    Dim InitialDocPropPrompt As Boolean

    Set xlApp = New Excel.Application
    Set xlBook = xlApp.Workbooks.Open(App.Path & "\Sample.xls")
    Set xlSheet = xlBook.Worksheets(1)
    
    xlApp.DisplayAlerts = False
    
    'エクセルの指定範囲をコピー
    xlSheet.Range("A1:F13").Copy
    
    DoEvents
    xlApp.Quit
    
    Set xlSheet = Nothing
    Set xlBook = Nothing
    Set xlApp = Nothing

    'Wordを操作
    Set wdApp = New Word.Application
    '新しい文書を開く
    Set wdDoc = wdApp.Documents.Add
  
    'Wordを表示
    wdApp.Visible = True
    
    '文書中の段落数を取得
    danraku = wdApp.ActiveDocument.Paragraphs.Count
    '段落がなければ段落を設定
    If danraku < 4 Then
        For i = 1 To 4 - danraku
            wdApp.Selection.TypeParagraph
        Next i
    End If

    '選択範囲を文書の 4 行目に移動
    wdApp.Selection.GoTo What:=wdGoToLine, Which:=wdGoToAbsolute, Count:=4

    '貼り付け
    wdApp.Selection.Paste

    'Word の保存
    wdApp.Application.Options.SavePropertiesPrompt = False  '保存時のプロパティ・プロンプト非
表示
    wdDoc.SaveAs (App.Path & "\Test.doc")
      
    'Document properties prompt(Word) の設定を初期値に戻す
    If InitialDocPropPrompt = True Then
        wdApp.Application.Options.SavePropertiesPrompt = True
    End If
    
    'オブジェクトを解放
    Set wdDoc = Nothing
    Set wdApp = Nothing
End Sub

ちなみに、参照設定は VBA, VB runtime objects & procedures, VB objects & procedures, O
LE Automation, MS Word8.0 object Library, MS Excel8.0 Object Library.

パッケージの際「含まれるファイル」は excel8.olb, MSWORD8.OLB, Project1.exe, Sample.xls, SETUP
.EXE, SETUP1.EXE, ST6UNST.EXE, VB6ランタイムおよびOLEオートメーション, VB6JP.DLL, VB6STKIT.DLL
です。 ウィザードでセットアップ先は変更せず、共有ファイルも選択せず。

> これは、開発環境でしょうか? Wordのバージョンは
> 実行環境 の OS Excelのバージョン Word のバージョン ランタイムは

VB有り、無しPCとも
OSはWindows98SE 4.10.2222A
WordはWord97 SR-2
ExcelはExcel97 SR-2(但し、VB有りの方は "new parse mode"と記載されている)
VBはVB6.0(SP5) Professional Edition,  Version 8988 VBA Retail 6.0.8964 Forms3:2.01
ランタイムは前述のVB6(SP5) と思います。

投稿時間:2003/04/25(Fri) 02:23
投稿者名:花ちゃん
Eメール:
URL :
タイトル:
Re^3: VBで新しい文書を開く
実行環境で 他のVBで作成したプログラムは問題なく動くのでしょうか?
上記が問題なく動くようでしたら Word の方の処理を表示して終了するだけに
して試して見て順次コメントアウトの部分を変更する等して見てはいかがでしょうか?

開発環境で問題がなく実行環境で問題が発生する場合、大抵は環境の違いが原因かと
思われます。
上記の他のVBで作成したプログラムも動かないようでしたらランタイム関係かと思います

基本的な事ですが、実行環境に App.Path & "\Sample.xls" はあるのでしょうね

投稿時間:2003/04/28(Mon) 22:21
投稿者名:Nobby
URL :
タイトル:
Re^4: VBで新しい文書を開く
結論から申し上げると、花ちゃんのアドバイスに従い、エラーの出ない他のプログラムを参考に当プログ
ラムを改造し正常に作動させる事に成功しました。

改造の内容については後述しますが、この過程で以下のことを発見しました。

1)オリジナルのプログラムを友人の PC(Windows98SE, Excel, Word共に2000)にセットアップしたと
ころ問題無く作動した。 ついては私のもう1台の PC(英語Windows98SE 4.10.2222A、Excel, Word共に英
語版2000 9.0.2720)で試したところ、これも正常に動いた。 つまりオリジナル・プログラムは Excel,
Wordが2000の場合はOKで、97ではダメではないかと思われる。 尚、これらの PC には runtime はインス
トールされていない。
2)Vectorのサイトから別の runtime(vb6sp6r4)を入手し、うまくインストールできた(と思う)がオ
リジナル・プログラムのエラーは解消できない。
3)オリジナル・プログラムで最初にエラーが発生する個所は冒頭の Set xlApp = New Excel.Applicat
ion である。 つまり、Office97の環境では、新しい文書を開くことだけが問題ではなくExcelに関しても動かないようだ。

以下のようにオリジナル・プログラムを改造したところ Error freeとなりました。

Private Sub Command1_Click()
    'On Error Resume Next    
    Dim objWord As Object   '----改造
    Dim objDoc As Object    '----改造
    Dim objExcel As Object  '----改造
    Dim objBook As Object   '----改造
    Dim i As Integer
    Dim danraku As Integer
    Dim InitialDocPropPrompt As Boolean

    Set objExcel = CreateObject("Excel.Application")    '----改造
    Set objBook = objExcel.Workbooks.Open(App.Path & "\Sample.xls")
    objExcel.Application.DisplayAlerts = False
    'エクセルの指定範囲をコピー
    objBook.Worksheets(1).Range("A1:F13").Copy  '----小改造
    DoEvents
    objExcel.Quit
    
    Set objBook = Nothing
    Set objExcel = Nothing
    
    'Wordを操作
    Set objWord = CreateObject("Word.Application")  '----改造
    '新しい文書を開く
    Set objDoc = objWord.Documents.Add
    'Wordを表示
    objWord.Visible = True
    'Document properties promptの設定値を取得
    If objWord.Application.Options.SavePropertiesPrompt Then
            InitialDocPropPrompt = True
    Else
            InitialDocPropPrompt = False
    End If
    
    '----(この間はOriginalと同じなので記載省略)-----------------------

    'Word の保存
    objWord.Application.Options.SavePropertiesPrompt = False '保存時プロパティ・プロンプト非
表示
    objDoc.SaveAs (App.Path & "\Test.doc")
    'Document properties prompt(Word) の設定を初期値に戻す
    If InitialDocPropPrompt = True Then
            objWord.Application.Options.SavePropertiesPrompt = True
    End If

    Clipboard.Clear '----追加
    
    'オブジェクトを解放
    Set objDoc = Nothing
    Set objWord = Nothing
End Sub

ちなみに、改造後のプログラムはフォーマットしたWindows98SE, Excel97, Word97, runtime無しの環境
に加え英語版Windows98SE, Excel2000, Word2000, runtime無しの環境でも問題無く作動します。 改造内
容がベストのものか分かりませんが結果に満足しています。

花ちゃん、いろいろアドバイス頂き有難うございます。 大変勉強になりました。 Thanks a lot.

投稿時間:2003/04/29(Tue) 00:01
投稿者名:花ちゃん
Eメール:
URL :
タイトル:
Re^5: VBで新しい文書を開く
> VB有り、無しPCとも
> OSはWindows98SE 4.10.2222A
> WordはWord97 SR-2
> ExcelはExcel97 SR-2(但し、VB有りの方は "new parse mode"と記載されている)

前回の時、開発環境も実行環境も同じと書いておられたのに EXcel2000の環境で参照設定
したものでは Excel97 では当然そのようなケースがおきます。