鍵締めたっけ?ガス大丈夫かな?と不安に。WORDファイルで保管されている文書の文字列、例えば・組織変更によりマニュアルなどに記載されている部署名を一括で修正したい・おのおの作成・修正された文書の'作成日'や'更新日'を揃えたいということありませんか。プログラムで指定したフォルダ内のWORDファイルの文字列を修正する処理を作成してみました。今回のサンプルプログラムは、フォルダ内にある全Wordファイルの指定文字列を一括置換するです。文字列を置き換えるだけであればテキストファイル同様にWordファイルも、フリーソフト”サクラエディタ”の「Grep置換」でできますし、ニーズとしては多くないでしょう。Excel-VBAでも「こんなこともできるんだぁ!」ということを知って頂ければと思います。プログラムの概要は以下の通りです。・所定のファルダ(IN)にある拡張子が".doc"となっているファイルを順次読み込み、"2020/05/01"~"2020/05/30"となっている文字列を"2020/05/31"に置き換える・置き換えた後に別の所定フォルダ(out)に書き込む尚、私の使っているWordは古いので拡張子が".doc"ですが、最新版をお使いの場合には".docx"と読み替えます。ファイルを上書きせずに別フォルダに書き込むのは、万が一間違えて置き換えてしまった場合、元に戻すのがたいへんだからです。手で対応する場合には、修正前にバックアップしておいて上書きするとして1.エクスプローラでフォルダを開き、対象ファイルを開く(ダブルクリック、もしくは、[Enter]で)2.編集(E)-置換(E)で置換画面を開く3.検索する文字列(N)に"2020/05/01"、置換後の文字列(I)に"2020/05/31"を入力4.すべて置換(A)をクリック5.「3に戻り、検索する文字列(N)を"2020/05/02"へ変更、4(すべて置換(A)をクリック}」を"2020/05/30"までを繰り返す6.ファイル(F)-上書き保存(S)そして、1から6を全てのファイルに行うことでしょう。そんな時に対応するプログラムです。Exce-VBAでWordを使用する場合の準備Exce-VBAでWordを使用する場合は、一度だけの準備作業が必要です。以下の記事の「Wordを操作する準備」を行います。Wordを操作する主なプロパティとメソッド実行までの手順1.データ準備1).[01.IN]フォルダと[02.OUT]フォルダを作成この例ではGドライブに作成しています。2).[01.IN]フォルダ内に以下の3ファイルを作成2.Excelを起動し、[01.IN]フォルダと[02.OUT]フォルダ設定1).シート1に以下のデータを貼り付けるドラッグ&コピー後にExcelに貼り付けるとき、[形式を選択して貼り付ける]-[テキスト]で貼り付けます。OUTG:\02.OUTプログラムを実行する場合のフォルダ名は、実際の環境に合わせて修正します。3.Excel-VBAを起動Altを押した状態でF8キーを押します。4.[マクロ名(M):]に'test'と入力(''は不要、''内のtestを入力)5.[作成(C)]をクリック私はマクロ名を入力したら、そのままEnterを押します。Sub7.F5キーで実行プログラムが起動し、ファイルを一つひとつ読み込み、文字列を置き換え、出力フォルダに書き込む動作が自動で行われます。出力フォルダには、入力フォルダ内のファイル名と同じ名前のファイルが生成されています。ファイルの内容を確認すると、すべて日付が"2020/05/31"に置き換わっています。最初に、入力フォルダ内の拡張子が"doc"となっている全テキストファイル名をプログラム内のテーブル[tblFilename1]にプールします。Wordを起動し、tblFilename1を開くファイルに指定して開きます。入力フォルダ内のテキストファイル名を取得する処理は、以下の記事を参照下さい。「Excelシートのある列項目が重複しているデータを探したい!」ということありませんか。関数」を使えばできますが、処理データを現場にありそうなフォルダ情報から作成し、重複チェック...jibun-kaizen.com2021.12.19For文については、以下の記事を参照下さい。パソコンをお使いの方の多くは、表計算ソフトExcelを利用されていると思います。・Excel-VB...jibun-kaizen.com2021.01.07上記記事にない部分を追記します。特段言葉を覚えようとしてなく「Excel-VBAでWordを扱う場合は、こういう定義が必要なんだ」程度の理解です。Word.Application「Wordアプリケーションオブジェクト」と言います。この定義でWordが起動し(Wordのインスタンスを生成)、以降Wordを扱うときはwordObjを使います。Word.Document「Wordドキュメントオブジェクト」と言います。開いたWordファイルそのものです。以下で対象Wordファイルを開きます。以降で開いたWordファイルを扱うときはwordObjを使います。以下は、読み取りモード開いたファイルを編集モードに変更します。Object「オブジェクト変数」と言います。以下は、開いたWordファイルを全選択します。以下はWordの文字列変換を実行する処理です。Replace:=wdReplaceAll想像できると思いますので、説明は致しません。今回の例では、"2020/05/01"や"2020/05/15"といった「月/日」が「mm/dd」の文字列の場合に対応したプログラムでした。"2020/05/01"が"2020/05/1"となっている場合には対応できません。別の処理を記述して試行したのですが、"2020/05/15"の場合は、"2020/10/3115"に置き換わってしまいました。最後に今回は敢えて「日付の置き換え」に挑戦しましたが、例えば文書に記載されている部署名や管理者名が変更になる場合には使えます。いった文書の場合には、部署名や管理者名が変更になることの履歴を足したり再印刷が必要になることが多いので、結局は1つひとつ開いた対応が必要な場合が多いと思います。使えるシーンは多くないと思いますが、それでも必要性が生じたときに思い出して頂ればと思います。「Wordファイルの文字列を一括で置換するプログラム」でした。テキストファイルの文字列を一括置換するプログラムは以下です。自動化したいということありませんか。プログラ...jibun-kaizen.com2021.12.19Excelファイルの文字列を一括置換するプログラムは以下です。Excelファイルで保管されている文書の文字列を一括で修正したいということありませんか。プログラムで指定したフォルダ内のExcelファイルの文字列を修正する処理を作成してみました。この記事は、Exce...jibun-kaizen.com-0001.11.30この記事は、Excel-VBAを起動して貼り付ければ動作することを目指しています。理解されていない方は、以下の記事を参照しながら一度やってみてから対応されることをお勧めします。パソコンをお使いの方の多くは、表計算ソフトExcelを利用されていると思います。・Excel-VB...jibun-kaizen.com2021.01.07実行中に発生したエラーの対処法は、上記記事の2.エラーが発生したときの対処法に記載しています。コメントをキャンセルメールアドレスが公開されることはありません。※コメントは日本語で入力してください。コメントデータの処理方法の詳細はこちらをご覧ください。VBAスポンサーリンクプロフィールはじめまして、健史(たけふみ)と申します。このブログにお越し頂き、ありがとうございます。私は若いころから不摂生な生活を送ってきたために、いろいろな病気や慢性痛になりました。(3)人気記事マクロ''を実行できません。自分で改善.メニューホーム記事一覧プロフィールお問い合わせホーム検索トップサイドバ。