VBA樹林– category –
-
【Excel VBA】FSOでフォルダを中身ごと移動する方法 (.Move)
VBAマクロで、月次処理が終わったフォルダを「処理済み」フォルダに移動させたり、プロジェクトフォルダをバックアップ用の場所に移動させたりと、フォルダそのものを中身ごと移動させたい場合があります。 FileSystemObject (FSO)の**.Moveメソッド**を使... -
【Excel VBA】FSOでファイル名やフォルダ名を変更(リネーム)する方法
「フォルダ内にある複数のレポートファイル名に、一括で今日の日付を付け加えたい」といった、ファイル名の一括変更は、ファイル整理作業で頻繁に発生します。 FileSystemObject (FSO)を使えば、ファイルやフォルダの名前をVBAで簡単に変更できます。この... -
【Excel VBA】FSOでファイルをコピー(複製)する方法 (.Copy)
VBAマクロで、処理の実行前に元となるデータファイルのバックアップを作成したり、テンプレートファイルを複製して新しいレポートを作成したりと、ファイルをコピーしたい場面は頻繁にあります。 FileSystemObject (FSO)の**.Copyメソッド**を使えば、ファ... -
【Excel VBA】FSOでファイルを別のフォルダに移動する方法 (.Move)
VBAマクロで特定のファイルを処理した後、そのファイルを「処理済み」フォルダに移動させて整理したい、という場面は非常に多くあります。 FileSystemObject (FSO)の**.Moveメソッド**を使えば、ファイルの移動を簡単かつ確実に行うことができます。この記... -
【Excel VBA】FSOでフォルダが存在しない場合に新規作成する方法 (FolderExists)
VBAマクロでファイルを特定のフォルダに保存したり、フォルダ内のファイルを読み込んだりする際、もし対象のフォルダが存在しなかったら、エラーが発生してマクロは停止してしまいます。 このようなエラーを未然に防ぐには、処理の実行前に**「フォルダが... -
【Excel VBA】FSOでドライブが利用可能かを確認する方法 (.IsReady)
VBAマクロで、USBメモリやネットワークドライブ、CD-ROMドライブといった外部メディアに対してファイルの読み書きを行いたい場合があります。しかし、もしUSBメモリが抜かれていたり、ディスクがドライブに挿入されていなかったりすると、マクロは「デバイ... -
【Excel VBA】FSOでドライブの空き容量や合計サイズを取得する方法
VBAで大容量のファイルを出力したり、バックアップを作成したりするマクロを組む際には、処理の実行前に「保存先のドライブに十分な空き容量があるか?」を事前にチェックできると、より安全で親切なプログラムになります。 FileSystemObject (FSO)の**Dri... -
【Excel VBA】FSOでPCに接続されている全ドライブの一覧を取得する方法
VBAでファイル操作を行う際、ユーザーにバックアップ先のドライブを選択させたり、PCのストレージ構成を調査したりするために、現在利用可能なドライブの一覧を取得したい場合があります。 FileSystemObject (FSO)の**Drivesコレクション**を使えば、ロー... -
【Excel VBA】FSOでフォルダの合計サイズ(サブフォルダも含む)を取得する方法
特定のプロジェクトフォルダやバックアップフォルダが、ディスク上でどれくらいの容量を占めているかを確認したい、という場合があります。手作業でフォルダのプロパティを開けば確認できますが、VBAを使えばこの情報も自動で取得できます。 FileSystemObj... -
【Excel VBA】FSOで指定したフォルダ内にある全てのサブフォルダ一覧を取得する方法
特定のフォルダの中に、さらにどのようなフォルダ(サブフォルダ)が存在するのかを調べ、その一覧をExcelシートに書き出したい、という場面は、ファイルの整理や集計作業の前処理としてよく発生します。 FileSystemObject(FSO)のFolderオブジェクトが持つ... -
【Excel VBA】FSOでテキストファイルの内容を読み込む方法 (ReadAll / ReadLine)
CSVファイルや、システムが出力したログファイルなど、外部のテキストファイル(.txt)の内容をExcelに読み込んでデータとして活用したい、という場面は非常に多くあります。 FileSystemObject (FSO)を使えば、テキストファイルを開いて、その内容をVBAで... -
【Excel VBA】FSOで既存のテキストファイルにデータを追記する方法 (OpenTextFile)
マクロを実行するたびに、その実行記録や結果を一つのログファイルにどんどん書き足していきたい、という場合があります。ファイルを新規作成するのではなく、既存のファイルの内容は保持したまま、末尾に新しいデータを追記していく必要があります。 File... -
【Excel VBA】FSOでテキストファイル(.txt)を新規作成し、書き込む方法
VBAマクロで処理した結果を、Excel形式ではなく、他のシステムと連携しやすいシンプルなテキストファイル(.txt)として出力したい、という場面は頻繁にあります。 FileSystemObject (FSO)を使えば、テキストファイルの新規作成から、内容の書き込みまでを... -
【Excel VBA】FSOでファイル名、拡張子、更新日時などの詳細情報を取得する方法
VBAで特定のファイルやフォルダ内のファイル一覧を扱う際、ファイル名だけでなく、そのファイルの拡張子、サイズ、最終更新日といった詳細な情報(メタデータ)を取得したい場面は非常に多くあります。 FileSystemObject (FSO)を使えば、ファイルを開くこ... -
【Excel VBA】FSOでファイルやフォルダの情報を取得する方法 (GetFile, GetFolder)
FileSystemObject(FSO)を利用したファイル操作の基本は、操作したい対象のファイルやフォルダを、まず「オブジェクト」として取得することから始まります。 オブジェクトとして取得することで、そのファイルやフォルダが持つ様々な情報(名前、パス、サ... -
【Excel VBA】FileSystemObject(FSO)でファイル操作を始めるための準備
VBAでファイルの有無を確認したり、フォルダをコピーしたり、テキストファイルの内容を読み書きしたりと、高度なファイルシステム操作を行いたい場合、**FileSystemObject(FSO)**という機能を利用するのが一般的です。 FSOは、VBAにもともと備わっている... -
【Excel VBA】デスクトップやドキュメントフォルダのパスを確実に取得する方法
マクロで作成したファイルをユーザーのデスクトップに保存したい、あるいはドキュメントフォルダにあるファイルを読み込みたい、という場面はよくあります。 しかし、これらのフォルダのパスは「C:\Users\Taro\Desktop」のようにユーザー名によって異なり... -
【Excel VBA】ZIPファイルを指定したフォルダに解凍(展開)する方法
VBAマクロで、外部から受け取ったZIPファイルの中にあるデータファイル(CSVやテキストファイルなど)を読み込んで処理したい、という場合があります。その際、手作業でZIPファイルを解凍するのではなく、VBAで解凍まで自動化できると非常にスマートです。... -
【Excel VBA】複数のファイルをZIP形式に圧縮する方法 (Shell.Application)
マクロで生成した複数のレポートファイルなどを、一つのZIPファイルにまとめて圧縮し、メール添付やバックアップ用に保存したい、という場面はよくあります。 VBAには直接ZIPを操作する命令はありませんが、Windowsの基本機能である「シェル(Shell)」をV... -
【Excel VBA】中身が空のZIPファイル(空の圧縮フォルダ)を作成する方法
VBAで複数のファイルをバックアップとしてZIP形式に圧縮・保存したい場合、まずその入れ物となる「空のZIPファイル」を作成する必要があります。 VBAには「ZIPファイルを作成する」という直接的な命令はありませんが、ZIPファイルの構造を利用した少し特殊... -
【Excel VBA】ユーザーにフォルダを選択させるダイアログの表示方法(2種類)
マクロで作成したファイルを特定のフォルダに保存したり、特定のフォルダ内にある複数のファイルを一括で処理したりする際に、その対象フォルダをユーザー自身に選んでもらいたい、という場面は非常に多くあります。 VBAには、このような「フォルダ選択」... -
【Excel VBA】「名前を付けて保存」ダイアログを表示してパスを取得する方法 (GetSaveAsFilename)
マクロで作成したレポートなどを保存する際、ファイル名を固定するのではなく、マクロの実行者にファイル名や保存場所、ファイルの種類(xlsxやpdfなど)を自由に決めてもらいたい、という場合があります。 VBAの**Application.GetSaveAsFilenameメソッド*... -
【Excel VBA】「ファイルを開く」ダイアログでブックを直接開く方法 (FindFile)
マクロの実行中に、ユーザーに任意のブックを選択させ、そのブックを直接開きたい場合があります。VBAには、この「ダイアログの表示」と「ファイルを開く」という2つの動作を、一度に実行してくれるシンプルなメソッドがあります。 それがApplication.Find... -
【Excel VBA】「ファイルを開く」ダイアログを表示してパスを取得する方法 (GetOpenFilename)
マクロで外部のExcelファイルを読み込む際に、ファイルパスをコード内に直接書き込む(ハードコーディングする)のではなく、マクロ実行時にユーザー自身にファイルを選択させたい、という場面は非常に多くあります。 VBAの**Application.GetOpenFilename... -
【Excel VBA】カレントフォルダを変更する方法(ChDir, ChDrive)
VBAには、CurDirというExcelアプリケーションの現在の作業フォルダ(カレントフォルダ)を取得する関数があります。それと対になる形で、このカレントフォルダをプログラムで変更するための命令も用意されています。 それがChDir(Change Directory)とChD... -
【Excel VBA】カレントフォルダ(CurDir)の取得と、その注意点
VBAでファイルを扱う際、現在の作業フォルダ、すなわち**「カレントフォルダ」**を基準に操作したい場合があります。例えば、パスを指定せずにファイル名だけで保存した場合、そのファイルはカレントフォルダに保存されます。 VBAには、このカレントフォル... -
【Excel VBA】Windowsレジストリに設定を保存・読み込みする方法
マクロで利用する設定値(例えば、前回開いたファイルのパスや、ユーザーが入力した名前など)を、Excelファイルを閉じて再度開いた後も記憶しておきたい、という場合があります。 設定の保存は、非表示のシートに書き込む方法が一般的ですが、VBAにはWind... -
【Excel VBA】開いている全ブックのセル変更履歴を記録(ログ)する方法
「誰がいつ、どのファイルの、どのセルの値を変更したのか」という操作履歴を自動で記録できれば、共同作業の信頼性やデータの監査性が大きく向上します。 Worksheet_Changeイベントは単一のシートしか監視できませんが、VBAのアプリケーションレベルイベ... -
【Excel VBA】UNIQUE関数で重複しないデータ(ユニークなリスト)を抽出する方法
データリストから重複する値を除いた、ユニークな(一意の)リストを作成することは、データ集計や分析の基本です。従来VBAではCollectionやDictionaryオブジェクトを使うのが一般的でしたが、最新のExcelでは、この処理を一行で実現できる強力な関数が登... -
【Excel VBA】重複するデータ行をループ処理で削除する方法(並べ替え利用)
顧客リストや商品マスターなどで、同じデータが複数行にわたって重複して登録されている場合、これらを整理してユニークなリストを作成したいことがあります。 Excelの「重複の削除」機能は強力ですが、VBAを使えばこの処理をマクロに組み込めます。この記...