Excel VBAの使い方/マクロ・VBA

ファイル名一括変更のマクロ(フォルダ選択)(3ページ目)

複数のファイルの名前を一括で変更するマクロプログラム「リネームマクロ」の作成方法を連載形式で紹介しています。最終回のこの記事では、フォルダパスを簡単に指定できる機能を追加して、より使いやすいプログラムに仕上げます。

緑川 吉行

執筆者:緑川 吉行

エクセル(Excel)の使い方ガイド


フォルダパスを取得するしくみ

選択したフォルダ(Folder3オブジェクト)のフォルダパスは、「FolderItem」オブジェクトの「Path」プロパティを使用して取得します。FolderItemオブジェクトを参照するには、取得したFolder3オブジェクトの「Self」プロパティを使用して参照できます。したがって、Folder3オブジェクト→FolderItemオブジェクト(Selfプロパティで参照)→Pathプロパティとたどることで、フォルダパスを取得することになります。
ItemオブジェクトのPathプロパティでフォルダパスを取得

ItemオブジェクトのPathプロパティでフォルダパスを取得



取得したフォルダパスはセルB2に入力したいので、入力するプログラムは下図のようになります。
取得したフォルダパスをセルB2に入力

取得したフォルダパスをセルB2に入力



なお、ここでは、「フォルダの参照」ダイアログボックスの「キャンセル」ボタンがクリックされると、変数「objFolder」に「Nothing」が格納されます。この場合は、「Exit Sub」でプログラムの実行を強制終了しましょう。プログラムは、Ifステートメントを使用して、下図のように加工します。なお、オブジェクトが格納されている変数を比較するときは、「=」ではなく「Is」キーワードを使用してください。
「キャンセル」ボタンがクリックされた場合の処理

「キャンセル」ボタンがクリックされた場合の処理



オブジェクトを格納した変数は後処理が必要

これで、プログラムの処理が終了しますが、オブジェクトを格納した変数には、「Nothing」を格納してメモリを開放する後処理が必要です。ここでは、2つの変数「objShell」と「objFolder」について、下図のように後処理を入力します。
オブジェクトを格納した変数は後処理

オブジェクトを格納した変数は後処理



プログラムをボタンに登録して完成

これで、コピー元フォルダパスを取得するプログラムの入力が終了しました。実行しやすいようにボタンを作成して、プログラムを登録しておきましょう。
ボタンを作成してマクロを登録

ボタンを作成してマクロを登録



コピー先フォルダパスを取得するプログラムを作成

コピー先フォルダパスを取得するプログラムは、コピー元フォルダパスのプログラムをコピーして、マクロ名や「フォルダの参照」ダイアログボックスに表示する文字列を修正し、フォルダパスを入力するセルをセルB3に修正するだけで作成できます。
コピー先フォルダパスを取得するプログラム

コピー先フォルダパスを取得するプログラム



こちらも、ボタンを作成して、プログラムを登録しておきます。
ボタンを作成してマクロを登録

ボタンを作成してマクロを登録



リネームマクロの拡張ポイント

これにて、リネームマクロの完成とします。最後に、拡張できるポイントを紹介しておきましょう。

■Excelファイル以外のファイル名も一覧に抽出
今回作成した仕様では、旧ファイル名一覧にExcelファイルだけが抽出されます。これを、Excelファイル以外のファイル名も一覧に抽出できるようにするには、「ファイル一覧作成」プログラムのDir関数の引数の記述で、拡張子の部分もワイルドカード「*」を使用した「Range("B2").Value & "?*.*"」に修正してください。

■新ファイル名一覧の拡張子の入力を省略
新ファイル名一覧にリネーム後のファイル名を入力するとき、現状では、拡張子も入力する必要があって面倒です。これを、新ファイル名一覧はファイル名のみの入力とし、拡張子は、旧ファイル名一覧のファイル名から取り出して結合する、といった処理にするとよいでしょう。

■クリアボタンを作成
フォルダパスやファイル一覧をクリアするマクロを作成しておくと便利です。セルの内容は「ClearContents」メソッドでクリアできます。ファイル一覧のセル範囲を特定するところが大きなポイントになります。

【編集部おすすめの購入サイト】
楽天市場で Excel 関連の商品を見るAmazon で Excel 関連の商品を見る
  • 前のページへ
  • 1
  • 2
  • 3
※記事内容は執筆時点のものです。最新の内容をご確認ください。
※OSやアプリ、ソフトのバージョンによっては画面表示、操作方法が異なる可能性があります。

あわせて読みたい

あなたにオススメ

    表示について

    カテゴリー一覧

    All Aboutサービス・メディア

    All About公式SNS
    日々の生活や仕事を楽しむための情報を毎日お届けします。
    公式SNS一覧
    © All About, Inc. All rights reserved. 掲載の記事・写真・イラストなど、すべてのコンテンツの無断複写・転載・公衆送信等を禁じます