ファイル一覧作成

最終更新日

【環境】Windows 10 Pro 64bit、Excel for Office 365

広告

ExcelマクロのVBAを使用して、ファイル一覧を作成しています

さていよいよですが、最後に、一覧作成ボタンと一覧消去ボタンの処理を作成していきます

ファイル一覧
ファイル一覧

■出力項目

その3で実施した通り、ファイル一覧を作成するために、Fileオブジェクトを保存するようにしました

このFileオブジェクトが持つ情報を基にして、以下の内容を一覧に出力していきます

  • サブフォルダ名
  • ファイル名
  • タイプ
  • サイズ
  • 作成日時
  • 更新日時

■やること

一覧作成ボタンを押下した際に行うことは、ざっくりと以下になります

  • シート情報の取得
  • 出力先ワークシートの取得
  • 一覧消去
  • ファイル情報取得
  • リスト作成

細かいことを言えば、以下のこともやらなきゃですが、今回はw

  • 出力シートの有無確認
  • 出力シートの作成/削除/複製
  • 出力及び、出力済み一覧消去等の確認メッセージ表示
  • 出力中の進捗状況表示

・シート情報の取得

これは表紙に記載された以下の内容を取得するということですが、その2で行ったように、ボタンへのマクロ登録時に、引数として渡す方法で、実装していきます

  • カレントフォルダ
  • ファイルパターン
  • 出力シート名

やり方を忘れた方は、こちらを確認してください

ファイル一覧作成 5

 

MakeListButtonにマクロの登録

引数でセル指定の文字列を受け取りって、セルの値を取得します

あまり、わしは、「Me.Application.ActiveSheet」なんてのを沢山書くのは好きではないです

更に、この「ActiveSheet」はプロパティなんですけど、見ての通り、型が「Object」型なので、WorkSheet型の変数にSetして使うようにしています

ファイル一覧作成 6

 

ActiveSheetの型

大したことではないのですが、Activeってのは、現在の最前面のウィンドウのこと(正確には違いますけどw)

Excelを複数開いていたりすると、Excelのウィンドウを切り替えた場合に、Activeが意図しないものに変わってしまいエラーの原因になります

そのため、Activeはボタンに登録するマクロで1回だけ、最初に使うだけにしましょー!

できれば、「表紙」も引数でもらえばいいですね!

・出力先ワークシートの取得

沢山ソースを書くのが、面倒になってきたので、抜粋していきますw

引数でもらった出力先シート名のセルの値を「name」に格納しているので、これを使って、シートのオブジェクトを取得します

WorkBook型やWorkSheet型は変数宣言をして、Setでオブジェクトを取得し、使い終わったら、「Set (変数名) = Nothing」で開放しましょー

・一覧消去

これは「一覧消去」ボタン押下時にも呼び出せるように、サブ関数化しておきましょ!こんな感じにw

わかりやすく書いているつもりですが、本来は列数や行数は別の方法で取得していますし、ClearContentsの処理も別関数に切り出しています

定数やサブ関数の中身は、ご想像にお任せしますw いつか公開するかもですが、想像つきますよねー?

広告

・ファイル情報取得

これは「その3」で説明したので、割愛しますw

・リスト作成

あとはファイル情報取得で取得したdataを以下のように関数に渡して、For…Eachステートメントで回しながら、Fileオブジェクトに取得して、各プロパティを出力項目に割り当てていくだけです!

Valueにセットするのもサブ関数にしてしまう悪い癖があるので、判り易くベタに記載しておきますねw

列番号もEnumで定義することをお勧めします!

実際の一覧表を作成するときには、セルの罫線や書式の設定も必要になってきますので、その辺りはお好みで実装してください

■まとめると

一覧作成ボタンのマクロをを以下に掲載しますが、エラーチェック等は割愛していますので、程々に実装してくださいねーw

■一覧消去ボタン

上のまとめたソースから必要なものだけを残せば、一覧消去ボタン押下時の関数はできてしまいますよね

説明はいらないかな?w

■完成

というわけで、無事に一覧表が完成しました!

完成したファイル一覧
完成したファイル一覧

■最後に

今回はありきたりな画像ファイルを一覧するだけに留めていますが、何かとファイル一覧が必要になることは多いと思います

これをベースにCSVやExcelファイルを一覧して、更に、そのファイルを開いて自動処理をしていくなんてことも考えられますよね!?

もちろん、画像ファイルの一覧だって、これをベースにショッピングモールに出品する商品リストを作成するなんてことも・・

というわけで、今後は、以下のようなことを書いていこうかと思います

  • セル制御、行挿入、列挿入、書式設定、条件付き書式、入力規則設定
  • Excelシート一覧、シートを開く、シートの成型
  • CSVファイル一覧、特定データの抽出、グラフ化、作表、集計
  • HTML解析…等

やりたいことを挙げたらキリがないw

時間との兼ね合いで、簡単なところから、手を付けていきたいと思います!

ではでは

シェア
広告

やもす ʕ•͡-•ʔ

のんびり!のほほん!がモットーです!w 蕎麦食いたい ライブ行きたい 暑いの嫌い