dポイントプレゼントキャンペーン実施中!

Excel for mac 2011でDir関数を使用したファイルサーチが出来ません。なぜなのでしょうか?

使用環境は、Excel for mac 2011 ver. 14.1.0, MacOS X 10.6.7, MacBook Airです。

働いている研究室がMac onlyのため、Mac版のExcelにvbaを移植しようと考えているのですが、以下のプログラムが上手く動きません。

------------------vbaプログラム
Private Sub CommandButton1_Click()

Dim strPATHNAME As String ' 指定フォルダ名
Dim strFILENAME As String ' 検出したファイル名
Dim ExistFILE As Boolean ' "*.TXT"ファイルの判定

' 「フォルダの参照」よりフォルダ名の取得
strPATHNAME = MacScript("choose folder")
strPATHNAME = Mid(strPATHNAME, 7) 'aliasを削る

If strPATHNAME = "" Then Exit Sub

' 指定フォルダ内のTEXTのファイル名を参照する
strFILENAME = Dir(strPATHNAME, vbNormal) '<------ここでファイルを検出しない。
ExistFILE = strFILENAME Like "*.TXT"

If strFILENAME = "" Then

MsgBox "このフォルダにはTXTファイルは存在しません。"

Exit Sub

End If

End Sub
------------------

上記プログラムは、コマンドボタンを押すとフォルダを指定して、その中の”.TXT”という拡張子のついたファイルを見つけるプログラムです。(実際には何もしないダミープログラムですが)

しかしこれを実行すると、Dir関数の所で何も検出してくれません。
ローカル変数を追って、フォルダまでのパスにカタカナが入ったらダメだとか、”alias”が邪魔だとかは解決したのですが、肝心のDir関数が上手く動いていないことに気づきました。

どなたか詳しい方にお願い致します。
どうすれば、指定したフォルダ中の拡張子”.TXT”がついたファイルを見つけることが出来るのか?教えて頂ければ幸いです。

A 回答 (2件)

Macの経験はないが、また質問の路線(Dir)ではないが、どうしても長引くようなら


http://oshiete.goo.ne.jp/qa/6370638.html
の方法でやってみてはどうでしょうか。
Macの記事だし、DirよりVBscriptの方がやりや水かもしれない。
ウインドウズの質問では両方答えているが。
質問者は相当やり手でのようなので、既に知っていて、賛同は得られないかもしてないが。
    • good
    • 0
この回答へのお礼

ご回答有難う御座います。

サンプルコードを見ていただければわかりますが、既にMacScript関数は織り込み済みです。
また、FSOはもともとWinのActiveXなので、無理だろうなと思いつつ試してみました。案の定、ダメでした。

それと、私はMacOS X歴21日、Excel for mac歴2日のずぶの素人です。プログラミング歴は25年を超えてるので、カンで適当に組んでみましたが、Macのファイルシステムは、勝手が分かりませんね><

誰か、Mac歴の長い方、解決の程宜しくお願い致します。

お礼日時:2011/04/21 23:37

当方 WinXP Acc2002 環境ですが、ヘルプにこう載っています。


以下抜粋
vbDirectory 16 フォルダ
vbAlias 64 エイリアス ファイル。Macintosh でのみ使用できます。



メモ これらの定数は、Visual Basic で定義されています。したがって、実際の数値の代わりにコードで使用することができます。

解説

Windows の場合、複数のファイルを指定するための "*" (アスタリスク) および "?" (疑問符) のワイルドカード文字を使用できます。Macintosh の場合、これらの文字は有効なファイル名の文字として扱われるため、このワイルドカード文字を使用して複数ファイルを指定することはできません。

また、Macintosh でワイルドカード文字がサポートされていないため、ファイルの種類によって複数のファイルを識別することができません。特定の種類のファイルを指定するには、ファイル名を使用せずに MacID 関数を使用します。例えば、次の例では、最初に見つかった、タイプが TEXT のファイルを返します。

Dir("SomePath", MacID("TEXT"))

フォルダ内のすべてのファイルに対して繰り返して処理を実行する場合は、引数を指定せずにDir を実行してください。

Dir("")

Windows で MacID 関数と Dir 関数を組み合わせて使用した場合はエラーが発生します。

引数 attribute に 256 より大きな値を指定した場合は MacID 関数の値と見なされます。
    • good
    • 0
この回答へのお礼

ご回答ありがとう御座います。

MacIDの作戦は既に実行済みですが、全く変化ありません。
そもそもDir関数が、指定したフォルダにファイルがあるにもかかわらず、何もファイルを見つけられないという状況です。

また、処理しようとしているファイルはWinで得たデータファイルのため、クリエータ情報が欠落致しております。(入れれば良いだけですがめんどくさい)
試しにクリエータ情報を入れたファイルを置いてみましたが、やはり反応がありません。
本質的に、MacID作戦では解決出来ないと感じております。

お礼日時:2011/04/21 16:57

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!