GEN MUTO'S HOMEPAGE  エクセル大事典  エクセルVBAを極める

エクセルExcel大事典 エクセル大事典TOPページへ
 ■ エクセルVBAを極める−VBAスーパーテクニック
  エクセルからファイルを操作してみよう!
 
■ エクセルからファイルを操作しよう2

前回に続き、FileSystemObjectファイルシステムオブジェクトについて解説します。

Drive オブジェクト
共有名や空き容量など、システムに接続されたドライブについての情報を収集するためのメソッドとプロパティが用意されています。ハードディスクだけでなく、CDドライブやUSBメモリも対象になります。またドライブはシステムに物理的に接続されている必要はなく、ネットワーク経由で接続されている場合も対象になります。

Drives コレクション。
システムに物理的または論理的に接続されたドライブの一覧を取得します。リムーバブルドライブは、ドライブにメディアがセットされていなくてもコレクションに追加されます。 

「Drive オブジェクトのプロパティの一覧 」
AvailableSpace 使用できるディスク容量を返します。
FreeSpace 使用できるディスク容量を返します。
TotalSize ドライブの総容量をバイト単位で返します。
(例)
  Debug.Print FSO.GetDrive("C").AvailableSpace
  Debug.Print FSO.GetDrive("C").FreeSpace
両者ともCドライブの使用可能なディスク容量を返します。OSがディスククォータ機能をサポートしている場合、両者の値が異なる可能性があります。
(例)
  Debug.Print FSO.GetDrive("C").TotalSize
この場合、Cドライブの総容量を返します。

DriveLetter ドライブ名を返します。
Path ドライブのパスを返します。 
RootFolder ドライブのルートフォルダを表すFolderオブジェクトを返します。
(例)
  Debug.Print FSO.GetDrive("C").DriveLetter
  Debug.Print FSO.GetDrive("C").Path
  Debug.Print FSO.GetDrive("C").RootFolder
上から、"C"、"C:"、"C:\"、を返します。
ただし、RootFolderプロパティで取得するのはFolderオブジェクトです。

DriveType ドライブの種類を示す値を返します。 
(例)
  Debug.Print FSO.GetDrive("C").DriveType
ドライブタイプとして次のいずれかの値が返ります。
0 不明、1 リムーバブルディスク、2 ハードディスク、3 ネットワークドライブ、
4 CD-ROMドライブ、5 RAMディスク 

FileSystem ドライブが使用しているファイルシステムの種類を返します。
(例)
  Debug.Print FSO.GetDrive("C").FileSystem
ドライブが使用しているファイルシステムの種類として、次のいずれかの文字列を返します。
"FAT"、"NTFS"、"CDFS"

SerialNumber ディスクボリュームのシリアル番号を返します。 
ShareName ドライブのネットワーク共有名を返します。
VolumeName ドライブのボリューム名を設定または返します。
(例)
  Debug.Print FSO.GetDrive("C").SerialNumber
  Debug.Print FSO.GetDrive("C").ShareName
  Debug.Print FSO.GetDrive("C").VolumeName
ドライブの各情報を取得します。VolumeNameは値の取得だけでなく、設定をすることも可能です。

IsReady ドライブの準備ができている場合は真を、できてない場合は偽を返します。
(例)
  Debug.Print FSO.GetDrive("C").IsReady
ドライブの準備ができていれば真を、まだなら偽を返します。リムーバブルディスクにメディアがセットされているかどうかの判定に使えます。

「Drive オブジェクトには、メソッドはありません 」

File オブジェクト
ファイルの作成、削除、または移動に使用するメソッドとプロパティが用意されています。ファイル名、パス、およびその他のプロパティをシステムから取得することができます。 

Files コレクション。
フォルダに格納されたすべてのファイルの一覧を取得します。 

「File オブジェクトのプロパティの一覧 」
Attributes ファイルの属性を設定します。
(例)
  If FSO.GetFile("C:\test\test.txt").Attributes And 1 Then
    Debug.Print "読み取り専用です"
  Else
    Debug.Print "読み取り専用ではありません"
  End If
C:\test\test.txtが読み取り専用の属性があるかを調べています。判定には属性値との論理和を用います。以下の属性値が使用できます。
0 標準、1 読み取り専用、2 隠しファイル、4 システムファイル、
8 ディスクドライブボリュームラベル、16 フォルダまたはディレクトリ、
32 アーカイブ(変更の有無)、64 リンクまたはショートカット、128 圧縮
なお、8、16、64、128は取得のみ可能で設定はできません。

DateCreated ファイルの作成された日付と時刻を返します。
DateLastAccessed ファイルが最後にアクセスされたときの日付と時刻を返します。
DateLastModified ファイルが最後に更新されたときの日付と時刻を返します。
(例)
  Debug.Print FSO.GetFile("C:\test\test.txt").DateCreated
  Debug.Print FSO.GetFile("C:\test\test.txt").DateLastAccessed
  Debug.Print FSO.GetFile("C:\test\test.txt").DateLastModified
いずれも返り値はすべて文字列です。文字列は"yyyy/mm/dd h:nn:ss"の形式になります。 

Drive ファイルが格納されているドライブの名前を返します。
Name ファイルの名前を設定または返します。
ParentFolder ファイルが格納されている親フォルダのFolderオブジェクトを返します。
Path ファイル、フォルダ、またはドライブのパスを返します。
(例)
  Debug.Print FSO.GetFile("C:\test\test.txt").Drive
  Debug.Print FSO.GetFile("C:\test\test.txt").Name
  Debug.Print FSO.GetFile("C:\test\test.txt").ParentFolder
  Debug.Print FSO.GetFile("C:\test\test.txt").Path
上から"C:"、"test"、"C:\"、"C:\test"、を返します。
ただし、ParentFolderプロパティで取得するのはFolderオブジェクトです

ShortName 8.3 形式の短いファイル名を返します。 
ShortPath 8.3 形式の短いパス名を返します。 
(例)
  Debug.Print FSO.GetFile("C:\test\test.txt").ShortName
  Debug.Print FSO.GetFile("C:\test\test.txt").ShortPath
8.3形式のフォルダ名、パスを返します。8.3形式では空白が使用できず、ベース名の最大は半角8文字、拡張子の最大は半角3文字です。

Size ファイルの場合はバイト単位のサイズを返します。
Type ファイルの種類を返します。拡張子がbmpのファイルならば「ビットマップイメージ」の文字列を返します。 
(例)
  Debug.Print FSO.GetFile("C:\test\test.txt").Size
  Debug.Print FSO.GetFile("C:\test\test.txt").Type
上の例では、C:\test\test.txtのサイズを、下の例では"テキスト ドキュメント"の文字列を返します。

「File オブジェクトのメソッドの一覧 」
Copy ファイルをコピーします。 
(例)
  FSO.GetFile("C:\test\test.txt").Copy "C:\test2\"
FileSystemObjectオブジェクトのCopyFileメソッドと同じ働きをします。
この例では、C:\test内にある\test.txtをC:\test2にコピーします。

Delete ファイルを削除します。
(例)
  FSO.GetFile("C:\test\test.txt").Delete
FileSystemObjectオブジェクトのDeleteFileメソッドと同じ働きをします。
この例では、C:\test内にあるtest.txtを削除します。

GetAbsolutePathName 指定されたパスの完全なパス名を返します。 
(例)
  Debug.Print FSO.GetAbsolutePathName("test.txt")
  Debug.Print FSO.GetAbsolutePathName("\")
カレントフォルダが"C:\test"だった場合、上の例では"C:\test\test.txt"を、下の例では"C:\"を返します。

Move ファイルを移動します。 
(例)
  FSO.GetFile("C:\test\test.txt").Move "C:\test2\"
FileSystemObjectオブジェクトのMoveFileメソッドと同じ働きをします。
この例では、C:\test内にあるtest.txtをC:\test2に移動します。

CreateTextFile テキストファイルを作成し読み取りまたは書き込みに使用するTextStream オブジェクトを返します。
(例)
FileSystemObjectオブジェクトのCreateTextFileメソッドと同じ働きをします。



Folder オブジェクト
フォルダの作成、削除、または移動に使用するためのメソッドとプロパティが用意されています。フォルダ名、パス、およびその他のプロパティをシステムから取得することができます。 

Folders コレクション。
Folder オブジェクトに格納されたすべてのフォルダ一覧を取得します。 

「Folder オブジェクトのプロパティの一覧 」
Attributes フォルダの属性を取得、設定します。
(例)
  If FSO.GetFolder("C:\test").Attributes And 2 Then
    Debug.Print "隠しフォルダです"
  Else
    Debug.Print "隠しフォルダではありません"
  End If
C:\testに隠しフォルダの属性があるかを調べています。判定には属性値との論理和を用います。以下の属性値が使用できます。
0 標準、1 読み取り専用、2 隠しフォルダ、4 システムフォルダ、
8 ディスクドライブボリュームラベル、16 フォルダまたはディレクトリ、
32 アーカイブ(変更の有無)、64 リンクまたはショートカット、128 圧縮
なお、8、16、64、128は取得のみ可能で設定はできません。

DateCreated フォルダの作成された日付と時刻を返します。
DateLastAccessed フォルダが最後にアクセスされたときの日付と時刻を返します。
DateLastModified フォルダが最後に更新されたときの日付と時刻を返します
(例)
  Debug.Print FSO.GetFolder("C:\test").DateCreated
  Debug.Print FSO.GetFolder("C:\test").DateLastAccessed
  Debug.Print FSO.GetFolder("C:\test").DateLastModified
いずれも返り値はすべて文字列です。文字列は"yyyy/mm/dd h:nn:ss"の形式になります。

Drive フォルダが格納されているドライブの名前を返します。
Name フォルダの名前を設定または取得します。
ParentFolder フォルダが格納されている親フォルダのFolderオブジェクトを返します。
Path ファイル、フォルダ、ドライブのパスを返します。
(例)
  Debug.Print FSO.GetFolder("C:\test").Drive
  Debug.Print FSO.GetFolder("C:\test").Name
  Debug.Print FSO.GetFolder("C:\test").ParentFolder
  Debug.Print FSO.GetFolder("C:\test").Path
上から"C:"、"test"、"C:\"、"C:\test"、を返します。
ただし、ParentFolderプロパティで取得するのはFolderオブジェクトです。

ShortName 8.3 形式の短いファイル名を返します。
ShortPath 8.3 形式の短いパス名を返します。
(例)
  Debug.Print FSO.GetFolder("C:\test").ShortName
  Debug.Print FSO.GetFolder("C:\test").ShortPath
8.3形式のフォルダ名、パスを返します。8.3形式では空白が使用できず、ベース名の最大は半角8文字、拡張子の最大は半角3文字です。

Files フォルダ内にあるすべてのFilesコレクションを返します。隠しファイルやシステムファイルも含まれます。 
SubFolders フォルダ内にあるすべてのサブフォルダのFoldersコレクションを返します。隠しファイルやシステムファイル属性のフォルダも含まれます。 
(例)
  Debug.Print FSO.GetFolder("C:\test").Files.Count
  Debug.Print FSO.GetFolder("C:\test").SubFolders.Count
両者ともコレクションを返します。この例では取得したコレクションのCountプロパティでファイル数、サブフォルダ数を取得しています。

IsRootFolder フォルダがルートフォルダの場合は真を、ルートフォルダでない場合は偽を返します。
(例)
  Debug.Print FSO.GetFolder("C:\test").IsRootFolder
C:\testはルートフォルダではないので、この場合Falseが返ります。

Size フォルダの場合はフォルダ内すべての合計サイズを返します。
Type フォルダの種類を返します。
(例)
  Debug.Print FSO.GetFolder("C:\test").Size
  Debug.Print FSO.GetFolder("C:\test").Type
上の例では、C:\testの合計容量を、下の例では"ファイル フォルダ"の文字列を返します。

「Folder オブジェクトのメソッドの一覧 」
Copy フォルダをコピーします。 
(例)
  FSO.GetFolder("C:\test").Copy "C:\test2"
FileSystemObjectオブジェクトのCopyFolderメソッドと同じ働きをします。
この例では、C:\test内にあるすべてのサブフォルダ、ファイルをC:\test2にコピーします。

Delete フォルダを削除します。 
(例)
  FSO.GetFolder("C:\test").Delete
FileSystemObjectオブジェクトのDeleteFolderメソッドと同じ働きをします。
この例では、C:\testとフォルダ内にのすべてのサブフォルダ、ファイルを削除します。

Move フォルダを移動します。 
(例)
  FSO.GetFolder("C:\test").Move "C:\test2\"
FileSystemObjectオブジェクトのMoveFolderメソッドと同じ働きをします。
この例では、C:\testをC:\test2のサブフォルダとして移動します。

CreateTextFile テキストファイルを作成し読み取りまたは書き込みに使用するTextStream オブジェクトを返します。
(例)
FileSystemObjectオブジェクトのCreateTextFileメソッドと同じ働きをします。

次回はいよいよ、TextStreamオブジェクトとGetOpenFilenameメソッドについて解説します。

>> 次の話にすすむ


サイト内検索ができます

Microsoft Most Valuable Professional

Microsoft MVP Excel
武藤 玄 プロフィール
 

■■■ 執筆した書籍 ■■■
 

EXCEL VBA 業務自動化
 

Excel VBA を5日でマスターする本
 

仕事を速くする Excel VBA 入門
 

Excel VBAと業務改善のポイントがわかる本
 

Access VBA ベーシック スタンダード
 

Excel VBA アクションゲーム作成入門
 

■■■ 連載中の記事 ■■■
 

Excel VBAで業務改善!
 

実務で使うExcel VBA
 


TOPページ


■ エクセルVBA超入門

 ・9ステップで"Hello World!"
  からオブジェクト指向まで!
  1."Hello World!"を表示しよう
  2.基本はデータの入出力
  3.繰り返し処理
  4.シートで簡易データベース
  5.名前をつけよう
  6.構造化プログラムに挑戦
  7.構造体を使ってみよう
  8.フォームを使ってみよう
  9.オブジェクト指向に挑戦

■ エクセルVBA中級編

 ・VBAでいろんなテクニック
  変数・関数のスコープ
  引数の参照方法を明示
  配列の中身を一気に複写
  識別子がよいコードを作る
  データ定義型をもっと知ろう
  定数と列挙型を活用しよう
  エラー処理の重要性1
  エラー処理の重要性2
  いろいろな条件分岐
  いろいろな繰り返し処理
  演算子について知ろう
  文字列操作 連結 変換 置換
  文字列操作 検索 比較 書式
  日付操作関数を知ろう
  数値操作・評価・その他関数
  並び替えソートをマスター
  いろいろな検索をマスター
  VBEditorを使いこなそう
  マクロの記録を活用しよう1
  マクロの記録を活用しよう2
  VBAからVBEを操作しよう1
  VBAからVBEを操作しよう2
  VBAからVBEを操作しよう3
 ・ワークシートを使いこなす
  セルの参照をマスターしよう
  セルの選択をマスターしよう
  セルの操作をマスターしよう
  セルの書式設定をマスターしよう
  行・列の操作をマスターしよう
  シートの参照をマスターしよう
  シートの操作をマスターしよう
  ブックの操作をマスターしよう
  ウィンドウの操作をマスターしよう
  イベントプロシージャを活用しよう
  ワークシートを印刷しよう1
  ワークシートを印刷しよう2
  音声(読み上げ)機能を操作しよう
  グラフを操作しよう
 ・ユーザーフォームを使いこなす
  ユーザーフォームを使おう
  UserFormsオブジェクト
  Labelコントロール
  TextBoxコントロール
  ComboBoxコントロール
  ListBoxコントロール
  CheckBoxコントロール
  OptionButtonコントロール
  ToggleButtonコントロール
  CommandButtonコントロール
  ScrollBarコントロール
  SpinButtonコントロール
 ・VBA関数の一覧
  Aから始まる関数の一覧
  Cから始まる関数の一覧
  Dから始まる関数の一覧
  Eから始まる関数の一覧
  Fから始まる関数の一覧
  Gから始まる関数の一覧
 
■ エクセルVBAを極める
 VBAスーパーテクニック
 
 ・データベースへ接続してみよう!
  CSVファイルへの接続
  ワークシートへの接続
  mdbファイルへの接続
  SQL Serverへの接続
  ADOレコードセットの操作1
  ADOレコードセットの操作2
 ・ファイルを操作してみよう!
  FileSystemObjectの操作
  Drive File Folderの操作
  TextStream ダイアログ
  ステートメントでファイル操作1
  ステートメントでファイル操作2
 ・他アプリと連携してみよう!
  ActiveXオートメーションの操作
 ・ゲーム技でマクロを超える
  エクセルで音を鳴らす1
  エクセルで音を鳴らす2  
  スクリーン座標を取得
  様々なイベント取得
  リボンUIを制御しよう1
  リボンUIを制御しよう2
  シート上でアニメを動かそう
 
■ 一歩上行くエクセル
 基本操作の完全マスター!

 
 ・あなたはいったい
  エクセルで何をしたいのか?
  エクセルで業務効率化
  エクセル関数を使いこなす
  エクセルの便利技
  エクセルは最高の帳票ツール
 ・エクセル基本操作上級編!
  セル選択、コメント、シリアル値
  オート機能を使いこなそう!
  参照、条件付書式、入力規則
  関数をもっと理解しよう!
  配列数式を有効利用しよう!
  データの正規化をしよう!
  ショートカットキーを利用しよう1
  ショートカットキーを利用しよう2
  Office用アプリを作成しよう!
  PowerPivotとExcelで簡単BI!
 ・世間の誤ったエクセルの
  べからず集
  エクセルで文章を書くべからず
  エクセルで図形を描くべからず
  エクセルでシステムをつくるな
 
■ エクセル関連その他

 ・エクセルコミニュティにあなたも
  参加しませんか?
  Excel関連リンク・コミニュティ
 ・VBの理解がVBAをマスターする
  最短距離!
  VB関連の老舗・大家サイト
 ・エクセルExcel大事典掲示板
 ・プライバシーポリシー

2000アイテムを超えるラベルを販売
送料無料、即納対応の優良ショップ
今買っているラベルより確実に安い!
OAラベルの販売専科グラフトラベル




エクセルExcel大事典ははリンクフリーです エクセル大事典Excel大事典
お問い合わせはこちら gengengen@yahoo.co.jp

Copyright© Gen Muto 武藤 玄 All Rights Reserved,