Excel VBA質問箱 IV

当質問箱は、有志のボランティア精神のおかげで成り立っています。
問題が解決したら、必ずお礼をしましょうね。
本サイトの基本方針をまとめました。こちら をご一読ください。

投稿種別の選択が必要です。ご注意ください。
迷惑投稿防止のため、URLの入力を制限しています。ご了承ください。


10247 / 13646 ツリー ←次へ | 前へ→

【22916】実行時エラー462 焼肉 05/3/7(月) 15:32 質問[未読]
【22931】Re:実行時エラー462 [名前なし] 05/3/7(月) 23:01 発言[未読]
【22932】Re:実行時エラー462 [名前なし] 05/3/7(月) 23:30 発言[未読]
【22936】Re:実行時エラー462 G-Luck 05/3/8(火) 8:35 発言[未読]
【22939】Re:実行時エラー462 焼肉 05/3/8(火) 9:58 お礼[未読]
【22938】Re:実行時エラー462 焼肉 05/3/8(火) 9:45 お礼[未読]

【22916】実行時エラー462
質問  焼肉  - 05/3/7(月) 15:32 -

引用なし
パスワード
   皆様始めまして。
さて質問の内容ですが、今エクセルからワードを起動させて、
その中に新規文書を記述させて、ページ設定等も行ってます。
その後にそのワード文書を縦書きにして印刷します。
1回目は印刷が出来るのですが、2回目以降は、ある部分で
マクロが止まってしまいます。そして、エラーメッセージ
「実行時エラー462、リモートサーバーがないか、使用できる状態ではありません。」
と言うメッセージが出てしまいます。(停止箇所は下段*の線部分です。)
どなたか解決方法をご教授ください。お願い致します。

  Dim objword As New Word.Application

  ''リターンコード格納変数の初期化
  Rec = 0
  
  ''ワード起動部分
  Set objword = CreateObject("Word.Application")
  Set objword = GetObject(, "Word.Application")

  ''ワード書式設定、文章記述部分

  With objword
    .Visible = True
    .documents.Add
    .Activate
    .Selection.Font.Name = AllFontName
    .Selection.Font.Bold = True
    .Selection.Font.Size = TitleFontSize
    .Selection.typetext Text:=TitleText
    .Selection.Font.Size = MainFontSize
    .Selection.typetext Text:=Space(10) & Info_Name & Space(1) & "殿" & vbCrLf
    .Selection.typetextText:=vbCrLf                  
    .Selection.typetextText:=MainText
    .Selection.typetextText:=vbCrLf                       
    .Selection.Font.Size = DateFontSize
    .Selection.typetext Text:=Space(1) & Format(Year(Now) & "/1/1", "ggg") & LJapanYear & RJapanYear & "年" _
      & Space(1) & "四月" & Space(1) & "一日" & vbCrLf              ''現在年日付
    .Selection.typetext Text:=vbCrLf                      
    .Selection.Font.Size = CompanyNameFontSize
    .Selection.typetext Text:=CompanyNameText
  End With
**********************************************************************  
  ''ワードページ設定部分
  With ActiveDocument   
    .Content.Orientation = wdTextOrientationVerticalFarEast
**********************************************************************
↑の部分でエラーが出る。(wdTextOrientationVerticalFarEastが駄目なのかな?)

    With .PageSetup
      .LineNumbering.Active = False
      .Orientation = wdOrientLandscape
      .TopMargin = MillimetersToPoints(50)
      .BottomMargin = MillimetersToPoints(35)
      .LeftMargin = MillimetersToPoints(39)
      .RightMargin = MillimetersToPoints(35)
      .Gutter = MillimetersToPoints(0)
      .HeaderDistance = MillimetersToPoints(15)
      .FooterDistance = MillimetersToPoints(17.5)
      .PageWidth = MillimetersToPoints(297)
      .PageHeight = MillimetersToPoints(210)
      .FirstPageTray = wdPrinterAutomaticSheetFeed
      .OtherPagesTray = wdPrinterDefaultBin
      .SectionStart = wdSectionNewPage
      .OddAndEvenPagesHeaderFooter = False
      .DifferentFirstPageHeaderFooter = False
      .VerticalAlignment = wdAlignVerticalTop
      .SuppressEndnotes = False
      .MirrorMargins = False
      .TwoPagesOnOne = False
      .GutterPos = wdGutterPosLeft
      .LinesPage = 31
      .LayoutMode = wdLayoutModeLineGrid
    End With
  End With
  
  ''印刷部分
  ActiveDocument.PrintOut
       
  Rec = MsgBox("印刷完了を確認後ワードを終了します。", vbQuestion + vbOKOnly)
    
  If Rec = 1 Then
    With ActiveDocument
       ''保存部分
      .SaveAs Filename:="*****省略*****"
      .Application.Quit
    End With
  End If
  
  Set objword = Nothing

【22931】Re:実行時エラー462
発言  [名前なし]  - 05/3/7(月) 23:01 -

引用なし
パスワード
   >  ''ワードページ設定部分
>  With ActiveDocument   
>    .Content.Orientation = wdTextOrientationVerticalFarEast

          ↓

  With objword.ActiveDocument   
    .Content.Orientation = wdTextOrientationVerticalFarEast

じゃないのかな?全然自信が無いので回答じゃなく発言で・・・。

【22932】Re:実行時エラー462
発言  [名前なし]  - 05/3/7(月) 23:30 -

引用なし
パスワード
   ▼[名前なし] さん:
>>  ''ワードページ設定部分
>>  With ActiveDocument   
>>    .Content.Orientation = wdTextOrientationVerticalFarEast
>
>          ↓
>
>  With objword.ActiveDocument   
>    .Content.Orientation = wdTextOrientationVerticalFarEast
>
>じゃないのかな?全然自信が無いので回答じゃなく発言で・・・。

これは関係なかった模様・・・申し訳ないです。

【22936】Re:実行時エラー462
発言  G-Luck  - 05/3/8(火) 8:35 -

引用なし
パスワード
   ▼焼肉さんへ
処理の内容はわからないのですが、
参考までに、気になる点を記してみます。

> Dim objword As New Word.Application
>
>  ''リターンコード格納変数の初期化
>  Rec = 0
>  
>  ''ワード起動部分
>  Set objword = CreateObject("Word.Application")
>  Set objword = GetObject(, "Word.Application")
↑これってクリエイトは新たにワードを立ち上げると思うのですが、一回目の時のワードは閉じていますか?

※私も無知なもので、どうしてGet〜で取得しなおしているのですか?
これだと、先にワードが起動していると、そちらを取得してしまうと思うのですが?

>  ''ワード書式設定、文章記述部分
>
>  With objword
>    .Visible = True
>    .documents.Add
ここで、
  Set myDoc = .documents.Add
としておいて、ActiveDocumentを使わないようにしてみては。

>    .Activate
>    .Selection.Font.Name = AllFontName
>    .Selection.Font.Bold = True
>    .Selection.Font.Size = TitleFontSize
>    .Selection.typetext Text:=TitleText
>    .Selection.Font.Size = MainFontSize
>    .Selection.typetext Text:=Space(10) & Info_Name & _
>      Space(1) & "殿" & vbCrLf
>    .Selection.typetextText:=vbCrLf                 
>    .Selection.typetextText:=MainText
>    .Selection.typetextText:=vbCrLf                 
>    .Selection.Font.Size = DateFontSize
>    .Selection.typetext Text:=Space(1) & Format(Year(Now) _
>       & "/1/1", "ggg") & LJapanYear & RJapanYear & "年" _
>      & Space(1) & "四月" & Space(1) & "一日" & vbCrLf      
>        ''現在年日付
>    .Selection.typetext Text:=vbCrLf      
>    .Selection.Font.Size = CompanyNameFontSize
>    .Selection.typetext Text:=CompanyNameText
>  End With
>********************************************************************** 
>  ''ワードページ設定部分
>  With ActiveDocument   
>    .Content.Orientation = wdTextOrientationVerticalFarEast
>**********************************************************************
>↑の部分でエラーが出る。(wdTextOrientationVerticalFarEastが駄目なのか
>な?)
  Set buf = ActiveDocument
  Set buf = buf.Content
  Set buf = buf.Orientation
  buf = wdTextOrientationVerticalFarEast

みたいにして、どこでエラーが出るかを明確にすると、原因が思いつきませんか?

>    With .PageSetup
>      .LineNumbering.Active = False
>      .Orientation = wdOrientLandscape
>      .TopMargin = MillimetersToPoints(50)
>      .BottomMargin = MillimetersToPoints(35)
>      .LeftMargin = MillimetersToPoints(39)
>      .RightMargin = MillimetersToPoints(35)
>      .Gutter = MillimetersToPoints(0)
>      .HeaderDistance = MillimetersToPoints(15)
>      .FooterDistance = MillimetersToPoints(17.5)
>      .PageWidth = MillimetersToPoints(297)
>      .PageHeight = MillimetersToPoints(210)
>      .FirstPageTray = wdPrinterAutomaticSheetFeed
>      .OtherPagesTray = wdPrinterDefaultBin
>      .SectionStart = wdSectionNewPage
>      .OddAndEvenPagesHeaderFooter = False
>      .DifferentFirstPageHeaderFooter = False
>      .VerticalAlignment = wdAlignVerticalTop
>      .SuppressEndnotes = False
>      .MirrorMargins = False
>      .TwoPagesOnOne = False
>      .GutterPos = wdGutterPosLeft
>      .LinesPage = 31
>      .LayoutMode = wdLayoutModeLineGrid
>    End With
>  End With
>  
>  ''印刷部分
>  ActiveDocument.PrintOut
>       
>  Rec = MsgBox("印刷完了を確認後ワードを終了します。", _
>    vbQuestion + vbOKOnly)
>    
>  If Rec = 1 Then
>    With ActiveDocument
>       ''保存部分
>      .SaveAs Filename:="*****省略*****"
>      .Application.Quit
>    End With
>  End If

   objword.Quit  
にしてみては?
同じなんかな?

>  Set objword = Nothing

【22938】Re:実行時エラー462
お礼  焼肉  - 05/3/8(火) 9:45 -

引用なし
パスワード
   [名前なし] さん:
有難うございます。
やはりこちらでも確認した結果、直接の原因ではなかったようです。
ご協力ありがとうございました。

▼[名前なし] さん:
>▼[名前なし] さん:
>>>  ''ワードページ設定部分
>>>  With ActiveDocument   
>>>    .Content.Orientation = wdTextOrientationVerticalFarEast
>>
>>          ↓
>>
>>  With objword.ActiveDocument   
>>    .Content.Orientation = wdTextOrientationVerticalFarEast
>>
>>じゃないのかな?全然自信が無いので回答じゃなく発言で・・・。
>
>これは関係なかった模様・・・申し訳ないです。

【22939】Re:実行時エラー462
お礼  焼肉  - 05/3/8(火) 9:58 -

引用なし
パスワード
   G-Luck さん
こんにちは、今朝早速試してみましたが、
ActiveDocumentを使わないようにしてみても同じ現象でした。
どうやら****.Quitを使い、再度本プログラムを走らせるとなる
みたいです。なので、オープンにしたまま、ワードを作って、手動で
閉じさせるようにしました。ご協力本当にありがとうございました。

>>  ''ワード起動部分
>>  Set objword = CreateObject("Word.Application")
>>  Set objword = GetObject(, "Word.Application")
>↑これってクリエイトは新たにワードを立ち上げると思うのですが、一回目の時のワードは閉じていますか?
>
>※私も無知なもので、どうしてGet〜で取得しなおしているのですか?
>これだと、先にワードが起動していると、そちらを取得してしまうと思うのですが?

の質問に対しての私の解釈ですが、私もエクセルからワードを操作するのは初挑戦ですので、今ひとつ理解にかけてますが、
  Set objword = CreateObject("Word.Application")
の部分で新しいワードプログラムの起動のみをしている。で。

  Set objword = GetObject(, "Word.Application")
の部分でその起動させたワードプログラムのあるカレントディレクトリを探して取得する。
(その起動のみされていたワードに新規文書追加や、文字を記述等が可能にする為。)
と解釈してますが、私も確かではありません。。。以上ですが、ご回答になってるでしょうか?追記:(GetObject(******, "Word.Application")、******の部分を空白にすると、
ワード文書があるディレクリが自動的に検索されると理解してます。)


▼G-Luck さん:
>▼焼肉さんへ
>処理の内容はわからないのですが、
>参考までに、気になる点を記してみます。
>
>> Dim objword As New Word.Application
>>
>>  ''リターンコード格納変数の初期化
>>  Rec = 0
>>  
>>  ''ワード起動部分
>>  Set objword = CreateObject("Word.Application")
>>  Set objword = GetObject(, "Word.Application")
>↑これってクリエイトは新たにワードを立ち上げると思うのですが、一回目の時のワードは閉じていますか?
>
>※私も無知なもので、どうしてGet〜で取得しなおしているのですか?
>これだと、先にワードが起動していると、そちらを取得してしまうと思うのですが?
>
>>  ''ワード書式設定、文章記述部分
>>
>>  With objword
>>    .Visible = True
>>    .documents.Add
>ここで、
>  Set myDoc = .documents.Add
>としておいて、ActiveDocumentを使わないようにしてみては。
>
>>    .Activate
>>    .Selection.Font.Name = AllFontName
>>    .Selection.Font.Bold = True
>>    .Selection.Font.Size = TitleFontSize
>>    .Selection.typetext Text:=TitleText
>>    .Selection.Font.Size = MainFontSize
>>    .Selection.typetext Text:=Space(10) & Info_Name & _
>>      Space(1) & "殿" & vbCrLf
>>    .Selection.typetextText:=vbCrLf                 
>>    .Selection.typetextText:=MainText
>>    .Selection.typetextText:=vbCrLf                 
>>    .Selection.Font.Size = DateFontSize
>>    .Selection.typetext Text:=Space(1) & Format(Year(Now) _
>>       & "/1/1", "ggg") & LJapanYear & RJapanYear & "年" _
>>      & Space(1) & "四月" & Space(1) & "一日" & vbCrLf      
>>        ''現在年日付
>>    .Selection.typetext Text:=vbCrLf      
>>    .Selection.Font.Size = CompanyNameFontSize
>>    .Selection.typetext Text:=CompanyNameText
>>  End With
>>********************************************************************** 
>>  ''ワードページ設定部分
>>  With ActiveDocument   
>>    .Content.Orientation = wdTextOrientationVerticalFarEast
>>**********************************************************************
>>↑の部分でエラーが出る。(wdTextOrientationVerticalFarEastが駄目なのか
>>な?)
>  Set buf = ActiveDocument
>  Set buf = buf.Content
>  Set buf = buf.Orientation
>  buf = wdTextOrientationVerticalFarEast
>
>みたいにして、どこでエラーが出るかを明確にすると、原因が思いつきませんか?
>
>>    With .PageSetup
>>      .LineNumbering.Active = False
>>      .Orientation = wdOrientLandscape
>>      .TopMargin = MillimetersToPoints(50)
>>      .BottomMargin = MillimetersToPoints(35)
>>      .LeftMargin = MillimetersToPoints(39)
>>      .RightMargin = MillimetersToPoints(35)
>>      .Gutter = MillimetersToPoints(0)
>>      .HeaderDistance = MillimetersToPoints(15)
>>      .FooterDistance = MillimetersToPoints(17.5)
>>      .PageWidth = MillimetersToPoints(297)
>>      .PageHeight = MillimetersToPoints(210)
>>      .FirstPageTray = wdPrinterAutomaticSheetFeed
>>      .OtherPagesTray = wdPrinterDefaultBin
>>      .SectionStart = wdSectionNewPage
>>      .OddAndEvenPagesHeaderFooter = False
>>      .DifferentFirstPageHeaderFooter = False
>>      .VerticalAlignment = wdAlignVerticalTop
>>      .SuppressEndnotes = False
>>      .MirrorMargins = False
>>      .TwoPagesOnOne = False
>>      .GutterPos = wdGutterPosLeft
>>      .LinesPage = 31
>>      .LayoutMode = wdLayoutModeLineGrid
>>    End With
>>  End With
>>  
>>  ''印刷部分
>>  ActiveDocument.PrintOut
>>       
>>  Rec = MsgBox("印刷完了を確認後ワードを終了します。", _
>>    vbQuestion + vbOKOnly)
>>    
>>  If Rec = 1 Then
>>    With ActiveDocument
>>       ''保存部分
>>      .SaveAs Filename:="*****省略*****"
>>      .Application.Quit
>>    End With
>>  End If
>
>   objword.Quit  
>にしてみては?
>同じなんかな?
>
>>  Set objword = Nothing

10247 / 13646 ツリー ←次へ | 前へ→
ページ:  ┃  記事番号:
2610219
(SS)C-BOARD v3.8 is Free