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

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

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

緑川 吉行

執筆者:緑川 吉行

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


Subステートメントを記述する

コピー元フォルダパスを取得するプログラムを作成します。これまでプログラムを記述してきた標準モジュールにSubステートメントを記述しておきましょう。マクロ名は「コピー元フォルダパス取得」とします。
Subステートメントを記述

Subステートメントを記述



変数を2つ宣言する

続いて、変数を2つ宣言します。1つめは、「Shell」オブジェクトを格納する変数の宣言です。Shellオブジェクトは、「フォルダの参照」ダイアログボックスを表示するメソッドを持つオブジェクトです。変数名は「objShell」とし、ここでは、「As」のあとに「New」キーワードを記述して、変数を宣言した時点でオブジェクトを使用できるようにしています。
※Newキーワードは、変数宣言時にオブジェクトのインスタンス(コピー)を生成します。これを事前バインディングといいます。

※Newキーワードは、変数宣言時にオブジェクトのインスタンス(コピー)を生成します。これを事前バインディングといいます。


2つめは、「Folder3」オブジェクトを格納する変数の宣言です。Folder3オブジェクトは、「フォルダの参照」ダイアログボックスで選択されたフォルダを表すオブジェクトです。変数名は「objFolder」とします。
Folder3オブジェクトを格納する変数を宣言

Folder3オブジェクトを格納する変数を宣言



「フォルダの参照」ダイアログボックスを表示する

「フォルダの参照」ダイアログボックスを表示するには、Shellオブジェクトの「BrowseForFolder」メソッドを使用します。2つめの引数に指定した文字列は、メッセージとして「フォルダの参照」ダイアログボックスに表示されます。1つめと3つめの引数には「0」を指定してください。
BrowseForFolderメソッド

BrowseForFolderメソッド



BrowseForFolderメソッドは、「フォルダの参照」ダイアログボックスで選択されたフォルダを返すので、これを変数「objFolder」に格納します。ブジェクトを格納するときは、「Set」ステートメントを使用してください。
BrowseForFolderメソッドの戻り値を変数「objFolder」に格納

BrowseForFolderメソッドの戻り値を変数「objFolder」に格納



BrowseForFolderメソッドの実行イメージ

ここで、BrowseForFolderメソッドの実行イメージを整理しておきましょう。「コピー元フォルダパス取得」マクロプログラムが実行されて、BrowseForFolderメソッドが実行されると、プログラムが一時停止して、「フォルダの参照」ダイアログボックスが表示されます。
「フォルダの参照」ダイアログボックスが表示される

「フォルダの参照」ダイアログボックスが表示される



「フォルダの参照」ダイアログボックスでフォルダを選択して「OK」ボタンをクリックすると、プログラムが再開し、選択したフォルダがFolder3オブジェクトとして返されて、変数「objFolder」に格納されます。
選択したフォルダを取得する

選択したフォルダを取得する



>続いて、選択したフォルダのフォルダパスを取得します。次ページへどうぞ!

  • 前のページへ
  • 1
  • 2
  • 3
  • 次のページへ

あわせて読みたい

あなたにオススメ

    表示について

    カテゴリー一覧

    All Aboutサービス・メディア

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