ここから本文です

マクロ初心者です。 excelで単語のリストを作り、リストを元にして、word文章で「...

ken********さん

2011/11/2515:13:10

マクロ初心者です。
excelで単語のリストを作り、リストを元にして、word文章で「どれだけの単語が何回でてくるか?」の調査をしようと思い、VBAでマクロを作成してみました。

---------------------------------------------------
Sub finder()


Dim wdObj As New Word.Application
Dim wdDoc As Word.Document
Dim filepath As String
Dim i As Long
Dim z As Long
Dim Ali As String



'ワードファイルのパスを指定
filepath = "C:\Documents and Settings\lesson 1.doc"

With wdObj
.Visible = True
.Documents.Open filepath

'開いてるウィンドウを対象にして、オブジェクト変数としてwdDocに代入
Set wdDoc = .ActiveDocument

MsgBox "処理中です"

i = 1
While Worksheets("Sheet1").Cells(i, 1).Value <> ""
'Aliにセルの文字を代入
Ali = Cells(i, 1)

With .Selection
'検索文字のオプション ワークシート1のセル指定・前から検索・大文字小文字くべつ・完全一致
.Find.Text = Worksheets("Sheet1").Cells(i, 1).Value
.Find.Forward = True
.Find.MatchCase = True
.Find.MatchWholeWord = True
'出現回数をカウント
z = 0
With ActiveDocument.Content.Find
Do While .Execute(Ali, Forward:=True) = True
z = z + 1
Loop
End With

Worksheets("Sheet2").Cells(i, 1) = z
Worksheets("Sheet2").Cells(i, 2) = Ali


End With
i = i + 1
Wend
End With

wdDoc.Close SaveChanges:=True

wdObj.Quit

Set wdObj = Nothing
Set wdDoc = Nothing
End Sub


--------------------------------------------------------------

結果、単語リストは9800行あるのですが、290行分までしか処理されませんでした。
環境を変えても同じ結果だったので、何かのミスかVBAの仕様ではないかと思い、こちらで質問してみることにしました。

何が悪くて、どうやったら改善できるのでしょうか?

よろしくお願いします。

また、初心者の見真似で作った物なので、「ここがおかしい」、「何か変だ」という箇所もあれば、一緒にご指摘いただけると幸いです。

閲覧数:
648
回答数:
1
お礼:
250枚

違反報告

ベストアンサーに選ばれた回答

lsg********さん

2011/11/2600:52:14

>While Worksheets("Sheet1").Cells(i, 1).Value <> ""
となっているので、単純にA列の291行目が空白になっているのでは?

質問した人からのコメント

2011/11/26 01:02:26

チェックしてみたら、たしかに291行目が空白になっていました。初めから自分のミスを疑ってかかっていたので、まさかリストで間違いがあるとは思いませんでした。
本当にありがとうございました。

この質問につけられたタグ

みんなで作る知恵袋 悩みや疑問、なんでも気軽にきいちゃおう!

Q&Aをキーワードで検索:

Yahoo! JAPANは、回答に記載された内容の信ぴょう性、正確性を保証しておりません。
お客様自身の責任と判断で、ご利用ください。
本文はここまでです このページの先頭へ

「追加する」ボタンを押してください。

閉じる

※知恵コレクションに追加された質問は選択されたID/ニックネームのMy知恵袋で確認できます。

不適切な投稿でないことを報告しました。

閉じる