次の方法で共有

エクセルマクロでワードファイルのページカウントがうまくいきません

Anonymous
2010-04-13T00:28:31+00:00

以前に「マクロを使ってワードのファイルが開けません__「指定されたファイルが開けません」のエラーメッセージが出ます」という質問スレッドを立てましたがその後のエラーについて新しいスレッドを立てた方がよいというアドバイスのもと、質問致します。

<前回の質問>

エクセル2003でワードファイルを開き、そのページ数をカウントしてファイル名が入ったセルの隣にページ数を入れるマクロを作成したのですが、順番に3つ位は動くのですが上記のエラーメッセージが出てしまい、止まってしまいます。ファイル名の作成方法は同じでなのでなぜファイルが開けなくなるのかわかりません。

この件は解決しましたが、下記のマクロを動かすと部件でまたエラーが出ました。

N列にディレクトリ1:C:\Documents and Settings\Administrator\デスクトップ\フォルダ1(\は¥マークです。以下同じ)

O列にディレクトリ2:\フォルダ2

P列にディレクトリ3:\フォルダ3

Q列にディレクトリ4:\フォルダ4

R列にファイル名:\aaa.doc

S列にファイル名(式):=O列&P列&Q列&R列&S列

<マクロ>

Dim MyWD As Object

Dim i As Integer

    '19列目(S列)の最後まで行数をカウント

    For i = 1 To Cells(Rows.Count, 19).End(xlUp).Row

    Cells(5 + i, 19).Select

    Selection.Copy

    Cells(5 + i, 21).Select

    Selection.PasteSpecial Paste:=xlPasteValues

    Set MyWD = CreateObject("Word.Application")

  Application.ScreenUpdating = False

        If (Trim(Cells(5 + i, 21).Value) <> "") Then

            MyWD.Documents.Open Filename:=Cells(5 + i, 21).Value, ReadOnly:=True

            Cells(5 + i, 22) = MyWD.activedocument.BuiltinDocumentProperties("Number of Pages")

            MyWD.activedocument.Close SaveChanges:=0

        End If

    Next i

  Application.ScreenUpdating = True

End Sub

このマクロの結果、「メモリ不足です」のエラーが出たため、

End IfとNext iの間に

MyWD.Quit

   Set MyWD = Nothing

の2行を追加し、動かしたところ、

WORDのNormal.dotの保存を聞いてきてやはり5回目くらいで止まってしまいます。

 マクロのデバッグも出ず、上記のことが連続してしまい強制的に再起動しない限り止まりません。

ファイル名が100を超えているため、何とかマクロ化したいと思いますのでご教示願えませんでしょうか。

開発者テクノロジ | Visual Basic for Applications

ロックされた質問。 この質問は、Microsoft サポート コミュニティから移行されました。 役に立つかどうかに投票することはできますが、コメントの追加、質問への返信やフォローはできません。

0 件のコメント コメントはありません

質問作成者が受け入れた回答

Anonymous
2010-04-13T01:32:45+00:00

何度もWord本体を開いたり、閉じたりを繰り返すから、エラーとなっているのかもしれませんね。

Wordを開くのは1度だけでいいと思われます。

Set MyWD = CreateObject("Word.Application")

↓ 以下のように変更

If MyWD Is Nothing Then

   Set MyWD = CreateObject("Word.Application")

End If

MyWD.Quit

Set MyWD = Nothing

は「Next i」の次にされた方がよさそうです。

この回答は役に立ちましたか?

0 件のコメント コメントはありません

3 件の追加の回答

並べ替え方法: 最も役に立つ
  1. Anonymous
    2010-04-14T04:20:21+00:00

    たびたび申し訳ありません。

    MyWD.Quit を削除したらワードのメッセージが解消されました。

    理由は理解できないのですが、対症療法で解決ということです。

    色々とありがとうございました。

    この回答は役に立ちましたか?

    0 件のコメント コメントはありません
  2. Anonymous
    2010-04-14T02:46:18+00:00

    みなが様

    先ほどご返信したとおり、きれいに動いたのですが、最後に「このファイルは他のアプリケーションまたはユーザーが使用しています」というメッセージが出て「OK」をクリックするとワードのNormal.dotの保存先を聞いてきます。

    キャンセルをクリックするとワードが起ち上がった状態です(文書はなし)。

    これを解除するにはどのようにすればよいのでしょうか。

    この回答は役に立ちましたか?

    0 件のコメント コメントはありません
  3. Anonymous
    2010-04-14T01:30:52+00:00

    みなが様

    お返事が遅れて申し訳ありませんでした。

    ご教示のように修正したところ、ウソのようにさくさく動きました。

    本当にありがとうございました。

    この回答は役に立ちましたか?

    0 件のコメント コメントはありません