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件)
- 最新から表示
- 回答順に表示
No.2
- 回答日時:
Macの経験はないが、また質問の路線(Dir)ではないが、どうしても長引くようなら
http://oshiete.goo.ne.jp/qa/6370638.html
の方法でやってみてはどうでしょうか。
Macの記事だし、DirよりVBscriptの方がやりや水かもしれない。
ウインドウズの質問では両方答えているが。
質問者は相当やり手でのようなので、既に知っていて、賛同は得られないかもしてないが。
ご回答有難う御座います。
サンプルコードを見ていただければわかりますが、既にMacScript関数は織り込み済みです。
また、FSOはもともとWinのActiveXなので、無理だろうなと思いつつ試してみました。案の定、ダメでした。
それと、私はMacOS X歴21日、Excel for mac歴2日のずぶの素人です。プログラミング歴は25年を超えてるので、カンで適当に組んでみましたが、Macのファイルシステムは、勝手が分かりませんね><
誰か、Mac歴の長い方、解決の程宜しくお願い致します。
No.1
- 回答日時:
当方 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 関数の値と見なされます。
ご回答ありがとう御座います。
MacIDの作戦は既に実行済みですが、全く変化ありません。
そもそもDir関数が、指定したフォルダにファイルがあるにもかかわらず、何もファイルを見つけられないという状況です。
また、処理しようとしているファイルはWinで得たデータファイルのため、クリエータ情報が欠落致しております。(入れれば良いだけですがめんどくさい)
試しにクリエータ情報を入れたファイルを置いてみましたが、やはり反応がありません。
本質的に、MacID作戦では解決出来ないと感じております。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Excel(エクセル) Excelにて、フォルダ内のTextファイルをマクロで統合すると文字化けしてしまう時の解消コード 4 2023/01/01 07:32
- Excel(エクセル) フォルダ内のワードファイルをPDFに一括変換するVBA 3 2023/06/09 16:51
- Visual Basic(VBA) あるフォルダーのファイルを違う親フォルダーのサブフォルダーに移したい 11 2023/02/15 19:00
- Excel(エクセル) Excel VBAどこが間違ってますか? 4 2023/07/17 10:04
- Visual Basic(VBA) エクセルのマクロについて教えてください。 4 2023/07/03 09:11
- Visual Basic(VBA) VBAのユーザーフォームのテキストボックスに入力制限をしたい 6 2022/11/15 08:28
- Visual Basic(VBA) エクセルのマクロについて教えてください。 2 2023/07/10 09:06
- Visual Basic(VBA) VBAが止まります。 2 2022/09/02 14:02
- Visual Basic(VBA) 入力ボックスが繰り返しポップアップして止まらない。 下記コードでファイル名の変更をしたいのですが、変 1 2022/09/08 11:27
- Visual Basic(VBA) 集めたシートのシート名を変更したい。 下記のコードでサブフォルダにあるファイルのSheet3を集めて 6 2022/08/23 10:38
関連するカテゴリからQ&Aを探す
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
FileDialog オブジェクトでファ...
-
VB.Netソリューションでフォー...
-
VBAでフォルダ内のhtmlファイル...
-
サブフォルダ含むフォルダ内の...
-
vbaサブフォルダーをワイルドカ...
-
VBA、ファイル名検索から開く、...
-
Accessのウインドウサイズの固定
-
ffftpでファイル取得が0バイト...
-
excel マクロ PDF化の際のエラ...
-
Excel VBAでのファイル名取得方法
-
AccessからOLEオブジェクト型の...
-
ディレクトリ配下のファイル名...
-
VBAでCSVファイルを読み込もう...
-
更新日が指定日以降のファイル取得
-
Wordのプロパティ・総ページ数...
-
【ACCESS VBA】アクセスからデ...
-
コモンダイアログのファイルを...
-
WinInet.dll の使い方
-
「エクセルファイルが開いてい...
-
VBAによるファイル名リスト作成
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
vbaサブフォルダーをワイルドカ...
-
動かなくなってしまった古いVBA...
-
ffftpでファイル取得が0バイト...
-
FileDialog オブジェクトでファ...
-
サブフォルダ含むフォルダ内の...
-
「エクセルファイルが開いてい...
-
Accessのウインドウサイズの固定
-
excel マクロ PDF化の際のエラ...
-
ExcelVBA 文字コード変換
-
AccessからOLEオブジェクト型の...
-
VBAでフォルダ内のhtmlファイル...
-
【VBAマクロ初心者】Excel VBA...
-
VBからExcelファイルを開くとき...
-
「AccessViolationException」...
-
【ACCESS VBA】アクセスからデ...
-
VB6でUTF-8ファイルの読取りを
-
ファイルを開く時間測定のスク...
-
複数のワークブックのVBAを変更...
-
VB.net XMLの作成方法 Iniの代替
-
エクセルのVBAで開いている...
おすすめ情報