目次
概要
ファイル操作に関するVBAのTIPS。になればよいけどリンク集。
ここでは、Excelブックの操作は掲載せず、それ以外のファイル全般に関する内容を記載する。
ファイル読込・書込
VBAでファイルの読込・書込を行う方法は大きく以下の4つの方法がある。
- VBA標準のステートメントを使用する
- FileSystemObjectを使用する
- ADODB Streamを使用する
- WindowsAPIを使用する
上記のうち、最初のVBA標準のステートメントを使用する方法は、Shift-JISのテキストファイルしか扱えない。
FileSystemObjectについても、扱えるのはShift-JISとUnicodeの2つで、UTF-8は対応していない。また、バイナリファイルの読書きも対応していない。
一方、ADODB Streamでは、様々な文字コードを指定することができ、UTF-8での読書きにも対応している。
WindowsAPIを使用した方法は、より低いレベルの操作も可能と思われるが、要求される知識も高度になり、敷居が高い感がある。
基本的には、ADODB Streamを使用する方法を覚えておけば支障はなさそうに思われる。
番外としては、DOSコマンドやPowershellといった外部プログラムを呼び出して処理する方法もある。
テキストファイルの読込
テキストファイルの書込
バイナリファイルの読込
バイナリファイルの書込
ファイルの操作
存在チェック
移動・名称変更
コピー
削除
ファイルサイズの取得
ファイル情報の取得
属性変更
タイムスタンプの取得
タイムスタンプ変更
フォルダの操作
ファイル・フォルダ一覧の取得
ダイアログの表示
ファイルダイアログ
フォルダダイアログ
CSVファイル
XMLファイル
JSONファイル
YAMLファイル
PDFファイル
INIファイル
Zipファイル
TIPS
別ページの一覧を入れる。
'IT系/VBA/ファイル操作/' には、下位層のページがありません。
リンク集
重複を恐れないリンク集。
ファイル操作
- ファイルの操作[ファイルの存在を調べる]
- Office TANAKA - Excel VBA Tips[特殊フォルダを取得する]
- Office TANAKA - Excel VBA Tips[[ファイルを開く]ダイアログのフィルタリング]
- PowerShellとExcelで指定フォルダ以下のPDFファイル一覧をリンク付きで出力 - Qiita
- リストアップしたファイルをフォルダ移動するVBA - Qiita
- フォルダ内のファイルをリストアップするVBA - Qiita
- VBA ファイル名一覧化 - Qiita
- いざゆけVBA! レッツファイル&ディレクトリ操作 - Qiita
- excel & VBAでファイル名を一括リネーム - Qiita
- VBAで指定したフォルダ配下のファイルのパス一覧を取得する関数を書いた - Qiita
- VBA フォルダ、ファイル移動に関する関数 - Qiita
- VBAマクロでファイル一覧を再帰的に取得するFunctionプロシージャを作成してみた。 - Qiita
- ファイル操作Ⅰ(Dir)|VBA入門
- ファイル操作Ⅰ(その他)|VBA入門
- ファイル操作Ⅱ(OpenとClose)|VBA入門
- ファイル操作Ⅱ(Line Input #)|VBA入門
- ファイル操作Ⅱ(Print #)|VBA入門
- ファイル一覧を取得する(Do~LoopとDir関数)|VBA再入門
- フォルダ(サブフォルダも全て)削除する、Optionでファイルのみ削除|VBAサンプル集
- Dir関数で全サブフォルダの全ファイルを取得|VBAサンプル集
- フルパスをディレクトリ、ファイル名、拡張子に分ける|VBA技術解説
- Dir関数の制限について|VBA技術解説
- フォルダー・ファイル(ブック)・シートの文字制限|VBA技術解説
- 特殊フォルダの取得(WScript.Shell,SpecialFolders)|VBA技術解説
- エクセルでファイル一覧を作成|エクセルの神髄
- Office TANAKA - その他のテクニック[ネットワークドライブにChDriveする]
- VBA スクリプト出力(FileSystemObject) - Qiita
- 【VBA】FileSystemObjectのGet~Nameメソッドを関数で自作してみる - Qiita
- FileSystemObject多用時はキャッシュすると良い - Qiita
- VBA FileSystemObject ファイル操作の基礎
- Excel Access VBA 用Filesystemobjectユーザー定義関数 - Qiita
- VBA WSHとScriptingに存在するFileSystemObjectは同一のバイナリーであることが判明 - t-hom’s diary
- FileSystemObjectの使い方まとめ - 今日覚えたこと
- スクリプトちょっとメモ
- ファイルシステムオブジェクト(FileSystemObject)|VBA入門
- Excel VBAでUTF-8のテキストファイルを扱う(ADODB.Stream) - 百年の未読
- vba、UTF-8・BOMなしでファイル出力 - Qiita
- エクセルのマクロ(VBA)でUTF-8を書き出す方法 - Qiita
- [VBA]UTF-8ファイルを出力する - Qiita
- [VBA]UTF-8(BOM制御)ファイルを出力する - Qiita
- Office 2016 for MacのVBAでUTF-8テキストファイルを出力する - Qiita
- VBAでUTF-8 BOMなしのファイルを出力する関数。 - Qiita
- VBAでUTF-8のテキストを読み込む - Qiita
- Shift_JISのテキストファイルをUTF-8に一括変換|VBAサンプル集
- ADODB.Streamオブジェクトを利用したUTF-8ファイルの読み書き - 小さい頃はエラ呼吸
- VBAでBOM無しのUTF-8ファイルを作成する - Qiita
- OpenTextFileメソッドやOpenステートメントでのファイル操作や文字置き換えなど - Qiita
- 変数の中身をファイルに保存する - Qiita
- [VBA]ファイル操作 - Qiita
- VBAで文字コードを指定して文字列をテキストファイルに保存 (Windows専用)
- VBAでADODBの1行読み込みが遅い時の対処法 – ムッシューのIT備忘録
- ADODB.Streamでテキストファイルに追記する | SugiBlog
- VBScrptでファイルの文字コードを自動的に判定して読み込む方法 - 小さい頃はエラ呼吸
- B.WH |VBA : ADODB.Stream
- Stream オブジェクト
- piyolian: Excel: Read write-locked file UTF-8 encoded
- (旧)作業を効率化させるExcel VBA Tips集:ファイルから特定の文字列を検索し、検索件数を返す。 - livedoor Blog(ブログ)
- VBAでファイルを分割する - Qiita
- [Excel VBA]カレントディレクトリの変更 - Qiita
- 振込データをExcelで全銀フォーマットに変換するには - Qiita
- Dir関数のファイルを取り出す順番について - Qiita
- VBA応用(テキストデータの読み込み)
- VBA応用(CSV形式テキストデータの読み込み)
- VBA応用(CSV形式テキストデータの読み込み:カンマ数不定版)
- VBA応用(固定長形式テキストデータの読み込み)
- VBA応用(テキストデータの書き出し)
- VBA応用(CSV形式テキストデータの書き出し)
- VBA応用(固定長形式テキストデータの書き出し)
- VBA応用(テキストデータの追記書き出し)
- VBA応用(バイナリモードでの読み書き)
- VBA応用(フォルダ内のファイル一覧の取得)
- VBA応用(ファイルのコピー)
- VBA応用(ファイルの移動、ファイル名の変更、ファイルの削除)
- VBA応用(ファイルのタイムスタンプや属性情報の取得)
- VBA応用(フォルダ内のワークブックを順次処理する。)
- VBA応用(ファイルの検索)
- VBA応用(絶対パス指定と相対パス指定)
フォルダダイアログ
- フォルダを選択するダイアログ
- Office TANAKA - Excel VBA Tips[フォルダを選択するダイアログ]
- エクセルVBA、フォルダ選択時のパスを指定するには?
- ダウンロード(フォルダの参照)
ファイルダイアログ
- ファイルダイアログ(FileDialog)|VBA入門
- FileDialogの設定方法 - Hanamaru blog
- 「ファイルを開く」ダイアログボックスを表示する(GetOpenFilenameメソッド)
- もうひとつの[ファイルを開く]ダイアログボックス(FileDialogオブジェクト)
- GetOpenFilenameのデフォルトフォルダを変更する - Qiita
- ファイルを開くダイアログ(GetOpenFilename)|VBA入門
- 名前を付けて保存ダイアログ(GetSaveAsFilename)|VBA入門
CSVファイル操作
- カレントフォルダにあるCSVをExcelシートに読み込む - Qiita
- CSVを取り込むときに"を除去するサンプル - Qiita
- CSVを取得する - Qiita
- Excel ファイルパス、フォルダパスを選択しセルに格納する参照ボタン - Qiita
- CSVの解説と各プログラミング言語での実装例 - Qiita
- ExcelファイルをCSVファイルに変換する - Qiita
- Excel で UTF-8 の CSV ファイルを出力する VBA プログラム - 知に至る病
- 【VBA】CSV分割&整形ツール - Qiita
- CSVの読み込み方法(改の改)|VBAサンプル集
- VBAでCSVファイルをExcelワークシートに開く - Qiita
- Excelファイルをまとめてcsvに変換したい! - Qiita
- Excel VBAでCSVオープンするときのパフォーマンス比較 - Qiita
- VBAでのCSVの扱い方まとめ|VBAサンプル集
- CSVの読み込み方法(ジャグ配列)|VBAサンプル集
- CSVの出力(書き出し)方法|VBAサンプル集
- UTF-8でCSVの読み書き(ADODB.Stream)|VBAサンプル集
- ADOでCSVの読み込み(SQL)|VBAサンプル集
- ダウンロード(カンマ数不定のCSVファイル読み込み)
- ダウンロード(自由設定のCSVファイル出力)
- CSVの読み込み方法|VBAサンプル集
- CSVの読み込み方法(改)|VBAサンプル集
- ADODB.Streamオブジェクトを使ってBOMなしUTF-8のファイルを作成する方法 - 小さい頃はエラ呼吸
- 【超簡単】エクセルVBAでCSVファイルを読み込むマクロ
XMLファイル操作
- 【ExcelVBA】Excel VBAでのXMLの扱い方 - Qiita
- VBAでXMLファイルの全タグ名と値を出力する方法 | システムエンジニアライフ
- MSXMLを使ったExcel VBAがWindows 8.1で動かない時の対処方法 - Qiita
- VBAでxml - Qiita
JSONファイル操作
- GitHub - VBA-tools/VBA-JSON: JSON conversion and parsing for VBA
- VBAでJSONを読み込んでみる - Qiita
- ExcelでJSONを扱う場合のつまずきポイント - Qiita
- 宇宙一わかりやすい?VBA-JSONを使ったJSONパースのしかた - Qiita
- VBA で JSON 変換する cJobject ライブラリ - Qiita
- Tumbling Dice — [VBA]VBAでjsonをパースする
- 謙虚な気持ちでJSONの仕様と各言語での実装例を調べなおす - Qiita
- ExcelのVBAでJSON形式のデータを解析する - Symfoware
YAMLファイル操作
PDFファイル操作
- VBAとPDFCreatorによるPDF出力について - Qiita
- Excel VBAで.xlsxファイルをPDFに一括変換する - Qiita
- Excel を PDF 出力する際に謎の四角が表示されてしまうのを解消する - Qiita
- VBAマクロでPDFを印刷する方法およびプリンタ情報を取得する - Qiita
- エクスポート(PDF/XPS)|VBA入門
Zip操作
- ファイル/フォルダをzipファイルに圧縮 - Qiita
- VBAでZIP圧縮する。
- zipファイルの解凍 - Qiita
- VBA で Zip ファイルを作成する - Qiita
- ダウンロード(ファイル圧縮:UNLHA32利用)
- ダウンロード(ファイル圧縮:7-ZIP32、7-ZIP64利用)
- VBAでZIPの圧縮・解凍をやらせてみる 🌴 officeの杜
INIファイル関連
- [ VBA ] INI 形式のコンフィグファイルから設定値を読み込む ( GetPrivateProfileString ) – 行け!偏差値40プログラマー
- Excel VBA を学ぶなら moug モーグ | 即効テクニック | INIファイルから文字列を取得する(API)
- Excel VBA iniファイルの読み込み | zoro0nine
- Excel Tips INIファイルへの書き込み/読込み WritePrivateProfileString、GetPrivateProfileString
- INI ファイル操作関数