« テンプレートを開く(2) | トップページ | 【解説】フォルダ中のすべてのワードファイルの内容をコピペする »

2009年5月23日 (土)

フォルダ中のすべてのワードファイルの内容をコピペする

練習として作ったマクロです。用途は考えていませんが、使えるアイディアがあったら教えてください。

「copy_paste.dot」をダウンロード

●使い方

1.マクロを登録します。登録方法は、こちらをご参照ください。

2.[コピペ]ボタンがツールバーに表示されますので、クリックします。

3.インプットボックスが表示されるので、ファイルを探す対象のフォルダのパスを入力します。

例: C:\Documents and Settings\●●●\My Documents

4.OKをクリックすると、開かれているファイルの文末に、指定したフォルダ内のワードファイルの内容をすべてコピペします。

●作用
・ファイル名を入力、改行を入力、ファイル内容を入力しています。

・ファイル同士の区切りに、「改ページ」を入れています。

●つくった経緯
最近知った以下のコードを使いたくなりました。

With Documents.Open(FileName:=varTMP(i), Visible:=False)
      .Content.Copy
      .Close
End With

テンプレートに記載されたマクロの230行から260行に書かれているのですが、「ファイルを開いて内容をコピーするときに、開いたファイルを見せないようにする」指示がされています。

このコードを見つけた理由ですが、ファイルを開かずにファイルの内容をコピーする方法がないか探しました。

エクセルの場合には、ファイルを開かずにファイルの内容をコピーすることができると思います(うろ覚えですが)。

ここで紹介した「Excel VBA できる大辞典」をぱらぱらとみていたときに出ていたように思います(手元にないので、確認できません)。

ワードでも、同様の機能がないか、例のニュースグループで検索しました。

検索キーワードは、"without opening" と paste です。

結果、このページにたどり着きました。

結論からいうと、「内容をコピーするためにはファイルを開かなければいけないが、ファイルを開く動作を見えないようにすることはできる。」でした。

そして入手したのが、上に書いてあるコードです。

●工夫
フォルダ内のファイルパスを取得するコードは、こちらで使ったものを流用しました。

ファイル名も以下のコードで取得します(160行)。
ファイル名 = Mid(ファイルパス, InStrRev(ファイルパス, "\") + 1)

必要な変数の数を、Redimをつかって再定義しています。
120           ReDim varTMP(1 To FC) As Variant
130           ReDim varNam(1 To FC) As String

|

« テンプレートを開く(2) | トップページ | 【解説】フォルダ中のすべてのワードファイルの内容をコピペする »

▼ファイル統合」カテゴリの記事

コメント

コメントを書く



(ウェブ上には掲載しません)




トラックバック

この記事のトラックバックURL:
http://app.cocolog-nifty.com/t/trackback/519619/45105870

この記事へのトラックバック一覧です: フォルダ中のすべてのワードファイルの内容をコピペする:

« テンプレートを開く(2) | トップページ | 【解説】フォルダ中のすべてのワードファイルの内容をコピペする »