プロが教えるわが家の防犯対策術!

VBA初心者です。色々検索して下記を作成しました.
ワードでは統合できたのですが、順番がばらばらになり修正に時間を要すため、エクセルVBAで統合前のファイル名を取得し、統合順に先頭に連番をつけ該当セルのファイル名に変更して保存しました。
引き続きエクセルで統合できないかやってみると、11行目で「実行時エラー438 オブジェクトは、このプロパティまたはメソッドをサポートしていません」がでます。エクセルでは無理なのか、修正すれば可能なのかをなるべく易しく教えていただけるとありがたいです。
宜しくお願いいたします。参照設定済みです。

Dim fld As FileDialog,myFileName As String,myFilePath As String,mySecNum As Integer,WordApp As Word.Application
Set WordApp = New Word.Application
Set fld = Application.FileDialog(msoFileDialogFolderPicker)
If fld.Show = 0 Then Exit Sub
myFilePath = fld.SelectedItems(1)
myFileName = Dir(myFilePath & "\*.doc*")
WordApp.Documents.Add Template:="C:\~.dotx"
Do While myFileName <> ""
With Selection
mySecNum = ActiveDocument.Range(0, Selection.Sections(1).Range.End).Sections.Count
With ActiveDocument.Sections(mySecNum)
With .Headers(wdHeaderFooterPrimary)
.Range.Text = "XXXXX"
End With
End With
End With
myFileName = Dir()
Loop
End Sub

質問者からの補足コメント

  • うーん・・・

    回答いただきありがとうございます。
    統合について以下の箇所の転記がもれており申し訳ありませんでした。
    With ActiveDocument.Sections(mySecNum)
    .InsertFile FileName:=myFilePath & "\" & myFileName
    .InsertParagraphAfter
    .InsertBreak Type:=wdSectionBreakNextPage
    End With
    教えていただきました箇所について、下記の宣言を追加後
    Dim WordApp As Word.Application Dim Doc As Word.Documents
    Set Doc = WordApp.Documents.Add に修正したところ 実行時エラー91 オブジェクト変数またはWith ブロック変数が設定されていません。どこを修正すべきでしょうか。

    No.6の回答に寄せられた補足コメントです。 補足日時:2022/01/03 12:49

A 回答 (11件中11~11件)

11行目と記載するよりコードを抜き出した方が宜しいかと思いますよ。


特に Selection はExcelにもWordにも存在しますしね。

未経験ですが頭にWordオブジェクト変数:WordApp を付けて、
WordApp.Selection~
では無理かな?
ダメでしたらごめんなさい。

With Selection
Selection.Sections(1).Range.End ~

この2つが気になります。
特に下の方はExcelにはない(と思う) Sections が繋がってますし。
    • good
    • 0
この回答へのお礼

ご回答ありがとうございます。該当箇所にWordAppを足してみたところ進んだのですが、Loopでまた同じ
mySecNum = ActiveDocument.Range(0,WordAppSelection.Sections(1).Range.End).Sections.Count のところで
「実行時エラー4608 値が有効範囲を超えています」とでて止まりました。やはりExcelでは難しいのでしょうか。

お礼日時:2021/12/29 13:49

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人はこんなQ&Aも見ています