Excelマクロを使って、特定の名前を含むデータを検索し抽出する処理を行う際、検索対象のファイル形式を変更したいことがあります。今回は、指定されたマクロコードで「.xlsx」から「.xlsm」形式のファイルに対応させる方法について説明します。これにより、xlsmファイルでも同様の処理を行えるようになります。
1. マクロコードの理解
質問者のマクロコードは、指定されたフォルダ内の全ての「.xlsx」ファイルを検索し、指定した名前を含むデータを別のシートにコピーする処理を行っています。コードは以下のように「*.xlsx」というファイル形式を指定しています。
fname = Dir(fpath & "*.xlsx", vbNormal)
これを「.xlsm」ファイルにも対応させるには、検索する拡張子を変更すればよいです。
2. .xlsxから.xlsmに変更する方法
「.xlsx」ファイルを「.xlsm」ファイルに変更するには、上記コードの拡張子指定部分を変更します。
fname = Dir(fpath & "*.xlsm", vbNormal)
これにより、指定したフォルダ内の「.xlsm」ファイルを対象に検索し、同じ処理を行うことができます。
3. 動作確認
マクロを修正した後、実行することで「.xlsm」形式のファイルに対しても同じ動作が行われることを確認できます。また、もし新しいファイル形式でも問題が発生した場合は、ファイルが開けない、または読み込めない原因として、ファイルの破損や権限の問題なども考えられます。
4. 他の改善方法
マクロを使用する際に、ファイル形式に関わらず柔軟に対応するためには、以下の方法も試してみてください。
- 「*.xlsm;*.xlsx」のように、複数の拡張子を指定して検索を行う。
- エラーハンドリングを追加して、ファイルが開けない場合や他のエラーが発生した場合に適切な処理を行う。
- 必要に応じて、シート名やセル範囲も柔軟に設定できるようにする。
5. まとめ
Excelのマクロを使ってファイル形式を変更するのは非常に簡単です。拡張子を変更するだけで、異なるファイル形式に対しても同じ処理が行えるようになります。コードの柔軟性を高めるために、他の改善方法も取り入れ、より汎用的なマクロを作成することをお勧めします。


コメント