• BPnet
  • ビジネス
  • IT
  • テクノロジー
  • 医療
  • 建設・不動産
  • TRENDY
  • WOMAN
  • ショッピング
  • 転職
  • ナショジオ
  • 日経電子版
本当に役立つ!Excel 3行マクロ

【ファイル】フォルダ内のファイル名一覧を自動作成

田中 亨=Office TANAKA 2010/01/14 日経PC21
出典:日経PC21 2009年6月号
(記事は執筆時の情報に基づいており、現在では異なる場合があります)
目次一覧

 Excelのマクロは、単にワークシートの中の操作を自動化できるだけではない。ファイルを開いたり保存したりと、ファイルの操作も可能だ。その機能を応用すると、「指定したフォルダの中にあるファイル名の一覧を作成する」といったことまで、Excelだけで実現できる(図1)。早速、そのマクロを作ってみよう。

図1 フォルダ内のファイル名一覧を作るマクロを作成してみよう。フォルダのパスをB1セルに入力して(1)、マクロを実行すると(2)、A4セルから順にファイル名が表示される(3)
[画像のクリックで拡大表示]

ファイル名はDirで調査、繰り返し構文とともに活用

 実際のコードが図2。一見難しそうだが、1つひとつの処理を順に追っていくと、何をしているかがわかる。このマクロのポイントは、3つある。 

図2 指定したフォルダ内にあるファイル名一覧を作成するマクロのコード。一見複雑そうに見えるが、個々のコードの役割を順に追っていけば、理解しやすい
[画像のクリックで拡大表示]

 まずは、ファイル名を調べるコード「Dir」の使い方だ。これは、カッコの中の引数にファイルのパスを指定すると、ファイルが存在するときはファイル名が、存在しないときは空欄が計算結果になるものだ[注]。

 引数のパスには、すべての文字を表す「*」といった記号(ワイルドカード)が使える。フォルダのパスに「¥*.*」を結合すると、「フォルダ内にあるすべてのファイル」という意味になる。これを引数に指定したとき、Dirは図3のような振る舞いをする。Dirを繰り返し呼び出すことで、すべてのファイル名を調べられる。

 図2のコードではDirを、最初の1回はパスを指定して呼び出し、2回目以降は引数を省略し、「Do While~Loop」という構文を使って、何度も繰り返し呼び出している。

図3 「Dir」は、パスで指定したファイルの名前が結果になるコード。すべての文字を表す「*」を使い、フォルダのパスに「¥*.*」を結合した文字列を引数に指定すると、何度もDirを呼び出すことで、ファイル名を次々と取得できる。全部見つけた後は、Dirの結果は空欄("")になる
[画像のクリックで拡大表示]

[注]Dirの引数は、パスを指定しなければならないが、計算結果はファイル名と拡張子だけになる

次ページ以降はITpro会員(無料)の方のみお読みいただけます。

次ページ ここで利用する「DoWhile~Loop」が第2...
  • 1
  • 2
  • 3

あなたにお薦め

連載新着

連載目次を見る

ITpro SPECIALPR

What’s New!

アプリケーション/DB/ミドルウエア

クラウド

運用管理

設計/開発

サーバー/ストレージ

クライアント/OA機器

ネットワーク/通信サービス

セキュリティ

もっと見る