|
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
|
|