GetAttr関数

GetAttr関数は、VBA関数の中でファイル・フォルダに関する関数に分類される関数です。

目次

スポンサー リンク

GetAttr関数とは

GetAttr関数は、ファイルまたはフォルダの属性を表す整数型 (Integer) の整数を返します。

構文GetAttr(pathname)
引数省略説明
pathname ×引数 pathname には、ファイル名を示す文字列式を指定します。フォルダ名およびドライブ名を含めて指定できます。

戻り値

定数説明
vbNormal 0 標準ファイル
vbReadOnly 1 読み取り専用ファイル
vbHidden 2 隠しファイル
vbSystem 4 システム ファイル。Macintosh では使用できません。
vbDirectory 16 フォルダ
vbArchive 32 アーカイブ (属性最後にバックアップした後で、変更されたファイル)。Macintosh では使用できません。
vbAlias 64 エイリアス ファイル。Macintosh でのみ使用できます。

これらの定数は、Visual Basic で定義されています。実際の数値の代わりにコードで使用することができます。
ファイル属性を調べるには、And 演算子を使って、GetAttr 関数の返す値と調べたいファイル属性の値をビット単位で比較します。演算結果が 0 以外の値 (真 (True)) の場合、指定したファイルにはその属性が設定されています。たとえば、アーカイブ属性が設定されていないとき、次の And 式は 0 を返します。
Result = GetAttr(FName) And vbArchive
アーカイブ属性が設定されている場合は、0 以外の値を返します。

GetAttr関数のサンプルコード

次の例は、GetAttr 関数を使って、ファイルおよび、フォルダの属性を求めます。Macintosh の場合、vbNormal、vbReadOnly、vbHidden および vbAlias の定数値のみが使用できます。


Sub Sample

Dim MyAttr
' TESTFILE は、隠しファイル属性であると仮定します。
MyAttr = GetAttr("TESTFILE")        ' 2 を返します。

' TESTFILE が隠しファイル属性の場合は、0 以外の値を返します。
Debug.Print MyAttr And vbHidden    

' TESTFILE は、隠しファイル属性で読み取り専用であると仮定します。
MyAttr = GetAttr("TESTFILE")        ' 3 を返します。

' TESTFILE が隠しファイル属性の場合は、0 以外の値を返します。
Debug.Print MyAttr And (vbHidden + vbReadOnly)

' MYDIR は、フォルダであると仮定します。
MyAttr = GetAttr("MYDIR")            ' 16 を返します。

End Sub

※ドラッグ(スワイプ)すると全体を確認できます。

実行結果

解説

ファイル・フォルダに関する関数一覧

関数名内容
CurDir指定したドライブの現在のパスを返します。
Dir指定したパターンやファイル属性と一致するファイルまたはフォルダの名前を返します。
EOFファイルの現在位置が末尾かどうかを調べて結果を返します。
FileAttrファイルから指定した種類の情報を返します。
FileDateTimeファイルの作成日時または最後に修正した日を返します。
FileLenファイルのサイズを返します。
FreeFile指定したファイル番号の範囲から、次に使用可能なファイル番号を返します。
GetAttrファイルまたはフォルダの属性を返します。
Loc開いているファイルの読込位置または書き込み位置を返します。
LOF開いているファイルの長さを返します。
Seek開いているファイルの読込位置または書き込み位置を返します。
Tab文字の出力位置を移動します。
VarType変数の内容を示す値を返します。
ExcelのVBAについてのQ&A掲示板

↑ExcelのVBA全般について分からない事があればこちらの掲示板よりご質問ください。

VBAのIE操作入門

↑ExcelのVBAをマスターできたら、エクセルVBAのIE操作にも挑戦してみてください。

目次

VBAのステートメント

こちらでは、エクセルVBAの事例で利用したステートメントをまとめたものです。ExcelのVBAには様々な機能が用意されていますので一度ご確認ください。

VBAのオブジェクト

こちらでは、エクセルVBAの事例で利用したオブジェクトをまとめたものです。ExcelのVBAには様々な機能が用意されていますので一度ご確認ください。

VBAのプロパティ

こちらでは、エクセルVBAの事例で利用したオブジェクトのプロパティをまとめたものです。ExcelのVBAには様々な機能が用意されていますので一度ご確認ください。

VBAのメソッド

こちらでは、エクセルVBAの事例で利用したオブジェクトのメソッドをまとめたものです。ExcelのVBAには様々な機能が用意されていますので一度ご確認ください。

VBAのイベント

こちらでは、エクセルVBAの事例で利用したオブジェクトのイベントをまとめたものです。ExcelのVBAには様々な機能が用意されていますので一度ご確認ください。