(license)みなさん、こんにちは!タカハシ(@ntakahashi0505)です。VBAで複数ファイルを一括処理するマクロの作り方についてお伝えしています。前回の記事はこちらです。VBAで複数のドキュメントを一括処理するマクロの作り方をお伝えしています。VBAでドキュメントファイルをSaveメソッドとCloseメソッドを使って上書き保存する方法です。tonari-it.com2017.07.30ドキュメントを上書き保存する方法についてお伝えしましたね。元のファイルを残したまま一括処理をしたい場合は、上書き保存だと困ってしまいます。そんなときは、そう、名前を付けて保存ですね。VBAで複数ファイルを処理して名前を付けて保存する方法をお伝えします。VBAでフォルダ内のドキュメントを一括操作する前回のおさらいまずは前回のおさらいからです。作成したプロシージャはこちらでした。Sub現在のマクロを記述するファイルと同階層にある「原稿」というフォルダ内の全てのファイルについて、フォントの種類を変更して上書き保存をするというものです。14行目のCloseメソッドの引数にwdSaveChangesを設定していますので、閉じるときに上書き保存をします。今回は、その箇所を名前を付けて保存に変更をしていきたいと思います。SaveAs2メソッドで名前を付けて保存するドキュメントを名前を付けて保存する場合はSaveAs2メソッドを使います。ファイル名ファイル名はパスを入れないと、既定のフォルダに保存されます。フルパスで指定するときが多いと思います。以下プロシージャを実行してみましょう。Subフォルダを除くと「原稿(1章)修正.docx」というファイル名で保存されていますね。ドキュメントを開くと、同様にフォント変更がされているはずです。SaveAs2メソッドの「2」の謎ん?なんで「2」...?と思うかも知れませんが、Word2010以降はSaveAs2メソッドになったそうです。2007以前はSaveAsメソッドです。SaveAs2メソッドで追加された機能としては、保存するドキュメントの互換モードを指定する引数CompatibilityModeが指定できるようになった点で、ほかについては同様の機能です。MSさんのセンス...。複数ドキュメントの一括処理をして名前を付けて保存するGetBaseNameメソッドでベースネームを取り出すSaveAs2メソッドを使って、名前を付けて保存するとなると、別名を用意する必要がありますね。「原稿(1章).docx」を「原稿(1章)修正.docx」と変更するとして、2章の原稿も、3章の原稿も、同様に別名を生成をしていきたい場合に、どのようにすればよいでしょうか。こんな時に便利なのが、FileSystemオブジェクトのGetBaseNameメソッドです。GetBaseNameメソッドは指定したファイルやフォルダのベースネームつまり拡張子を除いたファイル名を取り出します。「原稿(1章).docx」であれば「原稿(1章)」がベースネームとなります。FileSystemオブジェクト.GetBaseName(フルパス)ただ、ベースネームを取り出すファイルのフルパスが必要になりますが、どう取得すればよいでしょうか。Each文内のobjという変数にFileオブジェクトとしてセットされます。Fileオブジェクトのフルパスを取得できればOKです。FileオブジェクトにもPathプロパティがあります。Fileオブジェクト.PathDocumentオブジェクトのPathプロパティは、ドキュメントが格納されているフォルダのフルパスでしたが、FileオブジェクトのPathプロパティはファイル名まで含めたフルパスを取得する点に注意下さい。これで、各ファイルのベースネームが取得できるわけです。複数ドキュメントを処理して名前を付けて保存するプロシージャこれを元に、冒頭のプロシージャに修正を加えたのがこちらです。Sub今回の修正のメインは14行目ですね。フォルダパスであるstrPathと各ファイルのベースネームに「修正.docx」を連結して、新しいファイル名を生成しています。15行目のCloseメソッドはただ保存をすれば良いので、引数を削除しました。いう別名で保存されます。VBAで複数ファイルを処理して名前を付けて保存する方法をお伝えしました。名前を付けてドキュメントを保存するSaveAs2メソッドの使い方と、GetBaseNameメソッドによる別名の生成がポイントですね。次回ですが、各ファイルの処理についてもう少し凝った処理を加えていきたいと思います。VBAで複数のドキュメントを一括処理するマクロの作り方をお伝えしています。VBAで全角スペースを検索する方法をお伝えします。Word検索の方法を復習します。VBAでフォルダ内のドキュメントを一括操作するWordで複数ドキュメントファイルに一括で同じ操作をしたいときがあります。そんな時は、VBAを使えば便利!マクロさえ仕込んでおけば、フォルダの中のドキュメントについてPCが自動で勝手に処理をしてくれます。そんなWord文書の一括操作のテクニックについてお伝えしていきます。プランノーツ代表、コミュニティ「ノンプロ研」主宰。ITで日本の『働く』の価値を上げる!」をテーマに、VBA&GASの開発、講師、執筆などをしております。→詳しいプロフィールはコチラ★ご依頼・ご相談はお気軽にどうぞ!→お問い合わせはコチラ★フォロー頂ければ嬉しいです。「コミュニティ+講座」形式で継続性&教え合える環境も提供。!ノンプログラマーがプログラミングスキルを身に着ける支援ををするコミュニティ。セミナー・もくもく会・Facebookグループのサポートで「自らで学び続ける力をつける」支援、「教え合うことで学びの価値を上げる」場の提供をしています。VBAで段落の冒頭の全角スペースをインデントに変更するマクロを作っています。今回は検索した全角スペースが含まれる段落を取得する、またその段落範囲の開始位置を取得する方法をお伝えします。VBAで便利なカーソル移動のショートカットキーを作る方法をお伝えしています。VBAでMoveUntilメソッドを使って句読点単位でカーソル移動をする方法です。VBAで段落の冒頭の全角スペースをインデントに一括変更するマクロの作り方をお伝えしています。VBAで全角スペースをインデントに変更していく処理を追加するマクロを完成させます。VBAで便利なカーソル移動のショートカットキーを作る方法です。今回は、If~Then文やMoveUntilメソッドを駆使しつつ、句読点単位のカーソル移動をショートカットキー化していきます。VBAで様々な文字入力をするマクロの作り方をお伝えしています。VBAのinsertBeforeメソッド、insertAfterメソッドで選択範囲の前後に文字列を挿入する方法です。VBAでドキュメントを開くOpenメソッドの使い方、閉じるCloseメソッドの使い方についてお伝えします。「コミュニティ+講座」形式で継続性&教え合える環境も提供。詳細・お申込はこちら隣ITを応援する当ブログを「応援したい!」「役に立ったよ!」というお気持ちを、コチラからお支払いただくことができます。日々更新の活力倍増いたします。※PayPalアカウントが必要です。※金額は変更可能です。Platform23HTML・CSS32iPhone・アプリ29Monaca・スマホアプリ開発7PC全般・Windows86PowerPoint・VBA28Python87RPA1VBScript15Vue.js・JavaScript13WEBサービス・クラウド68WordPress・ブログ88Word・VBA42コミュニティ・イベント109セミナーのお知らせ11チャットワーク72データ分析・アクセス解析40仕事・生産性・働き方73動画配信8商業出版21起業・フリーランス72電子書籍・Kindle3運営会社プランノーツは"IT×働き方改革"をお手伝いする会社です。「コミュニティ+講座」形式で継続性&教え合える環境も提供。詳細・お申込はこちら隣ITを応援する当ブログを「応援したい!」「役に立ったよ!」というお気持ちを、コチラからお支払いただくことができます。日々更新の活力倍増いたします。※PayPalアカウントが必要です。※金額は変更可能です。Platform23HTML・CSS32iPhone・アプリ29Monaca・スマホアプリ開発7PC全般・Windows86PowerPoint・VBA28Python87RPA1VBScript15Vue.js・JavaScript13WEBサービス・クラウド68WordPress・ブログ88Word・VBA42コミュニティ・イベント109セミナーのお知らせ11チャットワーク72データ分析・アクセス解析40仕事・生産性・働き方73動画配信8商業出版21起業・フリーランス72電子書籍・Kindle3運営会社プランノーツは"IT×働き方改革"をお手伝いする会社です。Scriptが「V8ランタイム」をサポート!モダンなECMAScript構文が使えるようになった2020.02.072020.02.08GASでコピーしたGoogleスライドのプレゼンテーションを取得する方法2020.02.052020.02.05Facebookページいつも隣にitのお仕事タイトルとURLをコピーしました。