こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

解決済みの質問

多数のWord 2000ファイル名を自動的に各文書の同一セルに挿入する

 500個程度のWordファイルのタイトルをある程度自動的に、各ファイルの定位置セルに挿入することはできるのでしょうか。使用しているWordのバージョンは、2000です。
 毎年発生する仕事ですから、自動的に書き込んでくれるプログラムを組みたいと思っていますが、VBAの本を読んでも理解できず進みません。ヒントでもかまいませんのでどうかお助けくださいますようお願いいたします。

投稿日時 - 2006-11-09 09:29:30

QNo.2527343

暇なときに回答ください

質問者が選んだベストアンサー

こんにちは。Wendy02です。

簡単な内容ですので、ご覧になって分かるかと思います。

定位置セル は、最初の表の 先頭の (1,1) の場所にしました。違うようでしたら、替えてみてください。位置は(行,列)です。何か書いてある場合は、そのセルの内容を消してから入れるようになっていますので注意してください。

万が一、セルがない場合などを考えて、エラーを出して、そのファイル名を出すようにしました。エラーを出したファイルは、記録はしていませんので、メモしてください。OKを押すと、そのまま継続してしまいます。(記録することも考えましたが、そのためにコードが別に必要になってしまいます)

また、フォルダを専用フォルダにして、そこの中で処理させるように考えました。
これは、開発は、Word2003 ですが、Word2000のバージョンチェックを行いました。

なお、以下のコードは FileSearch オブジェクトを使っていますが、このプログラム自体は、Outlook 共用プログラムで、バージョンによって脆弱だという報告も聞きます。現在は、ワイルドカード(*)が単純なので、トラブルはありませんが、あまり複雑なSearch オプションを行う場合は、上手くいかないことがあります。

上手くいかない場合は、Dir 関数に換えたほうが良いようですが、複雑なものは、一旦、配列変数でファイル名を処理しなければなりません。

なお、こちらでは、以下のものは、テスト用のDocument ですので、問題は発生しておりませんが、実際の非常に大きな Document などは、そのDocument を最後まで読み込む前に、そのまま、実行してしまう、という事があるかもしれません。セルの位置が非常に深い場所にあったりすると、エラーが発生する恐れがあります。その場合は、タイムラグを設ける必要があります。(以下参照してください)

ThisDocument オブジェクトか標準モジュールが良いかと思います。
'-----------------------------------------------

Sub SetNameInCell()
Dim i As Integer
 On Error GoTo ErrMsg
 With Application.FileSearch
  .FileName = "*.doc"
  .LookIn = "C:\MyFolder\" 'Wordの専用フォルダ
  .Execute
  For i = 1 To .FoundFiles.Count
  Documents.Open .FoundFiles(i)
  'タイムラグの場所
  With ActiveDocument.Tables(1)
   .Cell(1, 1).Range.Delete
   .Cell(1, 1).Range.InsertAfter ActiveDocument.Name
  End With
  ActiveDocument.Save
NextPrc:
  ActiveDocument.Close
  Next i
 End With
Exit Sub
ErrMsg:
 MsgBox ActiveDocument.Name & " でエラーが発生しました。" & vbCrLf & _
  "記録してください。Okを押すと継続実行します。"
 Resume NextPrc
End Sub

'-----------------------------------------------
'・タイムラグの付け方(時間は許される範囲で変えてください)
'Option Explicit の下
Private Declare Sub Sleep Lib "KERNEL32.dll" (ByVal dwMilliseconds As Long)
'一番上に置く


  'タイムラグの場所のところに、
  Sleep 2000 '2000 ms = 2秒

投稿日時 - 2006-11-12 13:07:30

お礼

Wendy02さん こんばんは。

早速のご回答ありがとうございます。
今から教えていただいたマクロにとりかかります。

投稿日時 - 2006-11-12 21:04:56

ANo.3

このQ&Aは役に立ちましたか?

0人が「このQ&Aが役に立った」と投票しています

回答(3)

ANo.2

こんにちは。Wendy02です。

お話は分かりました。しばらく、時間をください。出来る限り考えてみます。

たぶん、khontan さんご自身のDead Line は、おありになるかとは思いますが、出来る・出来ないに関わらず、締めない限りは、できるだけ早く、ここに必ず戻ってきます。

投稿日時 - 2006-11-11 11:37:39

お礼

Wendy02さん、ありがとうございます。

今年は、間に合わなくても来年の今頃また同じ仕事が来る
予定です。

Wordのマクロのヒントでもいただくと幸いです。
お忙しいところ本当に恐れ入ります。

投稿日時 - 2006-11-12 07:57:11

ANo.1

こんばんは。

出来るとも出来ないともいえないのは、

まず、

>各ファイルの定位置セルに挿入することはできるのでしょうか。

というところですね。必ず、セルがあればよいのですが、セルがない場合はどうするのでしょうか?Wordに表があればよいのですが、そうでない場合もありますね。Excelとは違いますからね。

Document の最初とか最後なら、比較的問題は少ないのですが。

次に、
>Wordファイルのタイトル

というのは、プロパティのことを指すのですか?必ずしも、タイトルとファイル名は同じではありませんね。

ある程度、マクロなりで取得する部分と書き込む部分が決まっていればよいのですが、今のご質問だけだと、かなり分かりにくいです。

最後に、私は、Wordマクロは、しばらく遠ざかっていますから、できるかどうかはわかりません。

投稿日時 - 2006-11-09 18:32:53

補足

こんばんは。ご回答ありがとうございます。

質問が不明瞭で申し訳ありません。補足をします。

(1.私の質問)
各ファイルの定位置セルに挿入することはできるのでしょうか。
(1.ご回答)
というところですね。必ず、セルがあればよいのですが、セルがない場合
はどうするのでしょうか?Wordに表があればよいのですが、そうでない場
合もありますね。
(1.補足)
セルは必ず存在します。すべてのファイルは定型表です。500ページの大学
講義内容説明冊子を作成するのです。印刷会社にデータを渡し、校正する
のが私の仕事です。ひとつの講義に対して、1ページを割いて説明する冊子
です。すべて決まった位置にデータを入れ込みたいのです。


(2.私の質問)
Wordファイルのタイトル
(2.ご回答)
というのは、プロパティのことを指すのですか?必ずしも、タイトルと
ファイル名は同じではありませんね。
(2.補足)
各ファイルのアイコンにくっついて表示されている”ファイル名”です。
この場合、講義の識別番号をファイル名に使っています。

初めて質問する者でお手間かけますが、できる範囲でマクロを教えていた
だけませんか。お願いします。

投稿日時 - 2006-11-11 01:19:09

あなたにオススメの質問