エクセルのVBAであるフォルダ以下の全てのファイル名と更新時間をエクセルシート上に表示させたく、以下のプログラムを作成したのですが 、サブフォルダ内のファイルを表示させることができません。何か良い方法がありましたら教えていただけないでしょうか?宜しくお願いいたします。
Sub SAMPLE()
Dim serchPass As String
j = 1
Mypath = "C:\My Documents\"
MyName = Dir(Mypath, vbDirectory)
Do While MyName <> "" ' ループを開始します。
' 現在のフォルダと親フォルダは無視します。
If MyName <> "." And MyName <> ".." Then
' ビット単位の比較を行い、MyName がフォルダかどうかを調べます。
If (GetAttr(Mypath & MyName) And vbDirectory) = vbDirectory Then
Debug.Print MyName ' フォルダであれば、それを表示します。
Else: GoTo 10
End If

serchPass = Mypath & MyName
With Application.FileSearch
.NewSearch
.LookIn = serchPass
If .Execute() > 0 Then
For i = 1 To .FoundFiles.Count
Cells(i + j, 1).Value = .FoundFiles(i)
Cells(i + j, 3) = FileDateTime(.FoundFiles(i))
Next i
j = i + j
End If
End With
10
End If

   MyName = Dir ' 次のフォルダ名を返します。
Loop
End Sub

A 回答 (2件)

やりたい事は FileSearch で .SearchSubFolders = True にするのと違う事でしょうか?


Sub Test()
Dim i as Long
 With Application.FileSearch
  .NewSearch
  .LookIn = "C:\My Documents"
  .FileType = msoFileTypeAllFiles
  .SearchSubFolders = True
  If .Execute() > 0 Then
   For i = 1 To .FoundFiles.Count
    Cells(i + 1, 1) = .FoundFiles(i)
    Cells(i + 1, 3) = FileDateTime(.FoundFiles(i))
   Next i
  End If
 End With
End Sub
    • good
    • 0
この回答へのお礼

早速のご回答ありがとうございます。
これです。これ。
これをやりたくていろいろ調べて作ってみたのが、質問のところに載せたものです。全然短いプログラムで済んでしまうんですね。
ただ、インターネットのショートカットファイルで「プロシージャの呼び出し、または引数が不正です」となり、止まってしまいますが、これは直せないでしょうか?
宜しくお願いします。

お礼日時:2003/10/13 08:30

#1です。



ショートカットの場合 FileSearch の FoundFiles には、ショートカット先のパス(やURL)が返るようです。
ショートカットファイルそのものを取得する方法は知りません。

 For i = 1 To .FoundFiles.Count
  On Error Resume Next
  Cells(i + 1, 1) = .FoundFiles(i)
  Cells(i + 1, 3) = FileDateTime(.FoundFiles(i))
 Next i

のように逃げるとか。。

あと、私自信は使った事ないのですが、ファイルシステムオブジェクトを使うと FileSearch よりもっと高度な事が出来るようですよ。

http://www6.plala.or.jp/MilkHouse/practical/cont …

参考URL:http://www6.plala.or.jp/MilkHouse/practical/cont …
    • good
    • 0
この回答へのお礼

papayuka様、何度もすみません。
「On Error Resume Next」で逃げることにします。ファイルシステムオブジェクトについては今後勉強していこうと思います。
お世話になりました。ありがとうございました。

お礼日時:2003/10/13 16:52

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

このQ&Aを見た人はこんなQ&Aも見ています

このQ&Aを見た人が検索しているワード

このQ&Aと関連する良く見られている質問

Q画像が表示されない!フォルダが開けない!

IE6なんですけど画像が表示されません。赤い×印が出るとかじゃなくて完全に表示されないんです。
(残り○○項目)画像http://www.○○○.gifをダウンロードしてますとメッセージが左下に出たままいつまでも表示されないです。

同時に全てのフォルダ、マイコンピューター、マイドキュメントが完全に開けない状態になってしまいました。ポインタが砂時計のままウィンドウにはいつまでもなにも出てこない状態です。(フリーズはしないです。)

手の施しようもなくかなり困ってます。助けて~

Aベストアンサー

[ツール]→[インターネットオプション]にて
インターネット一時ファイルの[ファイルの削除]ボタンを押し、
[□すべてのオフラインコンテンツを削除する]をチェックし、[OK]を押します。
[インターネットオプション]ウィンドウも[OK]を押します。

これでどうでしょうか。ご確認ください。

Q#If Then ~ #Else ~ #End If(エクセルVBA)

#If Then ~ #Else ~ #End If
って何ですか?
また、VBAのヘルプで検索する方法ってどうすればいいのですか?
どなたか?宜しくお願い致します。

Aベストアンサー

単純にヘルプのコピペです。

> #If Then ~ #Else ~ #End If
式の値に基づいて、条件付きのコンパイルを行います。

ヘルプの使用方法であれば、
VBAのコードを打つ画面で、#Ifの#またはIの後ろで「F1(ファンクション1)」を入力ください。

そうすると、参照先の先が自動的に出てきます。

今更聞きにくいヘルプの使用法ですね・・・。

HLPファイルの時は簡単に検索できたんですけどね。

Qフォルダのカスタマイズで背景画像が表示されない

フォルダ -[表示]-[このフォルダのカスタマイズ]で
背景画像を設定しても
そのフォルダ内に"Folder Setting"フォルダと
"desktop.ini"ファイルが作成されて
画像が表示されません。

ご教授をお願いいたします。

Aベストアンサー

desktop.iniをメモ帳などで開いて、

http://oxygen.at.webry.info/200407/article_4.html
ここの2.desctop.ini ファイルを設定の
IconArea_Image=
に表示したい画像のアドレスになっていますか?
壁紙などで使用するbmpファイルなど選ぶといいかもしれません。
画像を置いてある場所によっては、表示できないときもあると思います。

Qエクセルで、=IF(A12="a",TRUE)は =A1="a"  ???

エクセルで、
=IF(A12="a",TRUE)

=A1="a"
と省略できるのですか?

やってみるとまったく同じようなのですが、いまいち不安です。

また、=IF(D4=TRUE,"OK!","No!")も、日頃=IF(D4,"OK!","No!")と略してますが、これも正しいんですよね?
気になったものですから確認させてください。

Aベストアンサー

こんにちは。maruru01です。

IF関数について、少し補足説明します。
IF関数は、No.1にもあるように、

=IF(条件式,真の場合,偽の場合)

という書式ですが、

=IF(条件式,真の場合)

と、偽の場合を省略することが出来ます。
ここで偽の場合は、FALSEという論理値を返します。
つまり、質問欄の1つ目の例に当たります。
なお、

=IF(条件式)

と、真の場合も省略することは出来ず、

=IF(条件式,,偽の場合)

と、空欄にすると、真の場合は数値の「0」を返すことになります。
ちなみに、偽の場合も、

=IF(条件式,真の場合,)

と、引数区切りのカンマだけ付けると、空欄と見なされて(省略とは異なる)数値の「0」を返します。

次に、条件式についてですが、
条件式は、

「左辺」+「比較演算子」+「右辺」

の書式になっているものを指します。
ここで、比較演算子とは、
「=、>、<、>=、<=、<>」
を指します。
条件式は、成立/不成立の結果、TRUE/FALSEという論理値を返します。
つまり、

=A1="a"

は、条件式の戻り値そのものを表示していることになります。
それに対して、IF関数の方は、条件式を判定した結果、真の場合と偽の場合をそれぞれ実行して表示しています。
その真の場合と偽の場合が、条件式の戻り値とちょうど一致しているということです。

さて、IF関数の第1引数は、通常は上記の条件式を指定しますが、実際はIF関数は第1引数を数値として判断しています。
その判定基準は、第1引数が、
0 → 偽の場合を実行
0以外 → 真の場合を実行
となります。
そして、第1引数が条件式の場合に限り、戻り値の論理値を、
TRUE → 1
FALSE → 0
と数値に変換して判定しているのです。
これが、質問欄の後半の2つの数式の挙動の違いの原因なのです。

=IF(D4=TRUE,"OK!","No!")

は、第1引数は「D4=TRUE」という条件式です。
この場合、戻り値は必ずTRUE/FALSE(=1/0)です。
(ただし、D4にエラーが入っている場合を除く)
一方、

=IF(D4,"OK!","No!")

の方は、第1引数は「D4」で、これはセルD4の値そのものです。
で、前述のように、IF関数は第1引数を数値として判定するので、このD4が数値(と論理値)以外の場合(文字列など)はエラーになります。
D4が数値(と論理値)の場合は、前述のように、「0」かそれ以外かで判定され、真/偽の場合のいづれかを実行して表示します。

このIF関数の第1引数が数値として判定されているということを利用した例が以下のようなものです。
例えば、A列に数値が1つでもあれば"OK"、1つもなければ(つまり0)"NG"を表示する場合、意味を考えれば、

=IF(COUNT(A:A)>0,"OK","NG")

ですが、これを、

=IF(COUNT(A:A),"OK","NG")

と、A列の数値の個数(COUNT関数の戻り値)そのもので判定することが出来るわけです。

以上、長くなりましたが、補足説明でした。

こんにちは。maruru01です。

IF関数について、少し補足説明します。
IF関数は、No.1にもあるように、

=IF(条件式,真の場合,偽の場合)

という書式ですが、

=IF(条件式,真の場合)

と、偽の場合を省略することが出来ます。
ここで偽の場合は、FALSEという論理値を返します。
つまり、質問欄の1つ目の例に当たります。
なお、

=IF(条件式)

と、真の場合も省略することは出来ず、

=IF(条件式,,偽の場合)

と、空欄にすると、真の場合は数値の「0」を返すことになります。
ちなみに、偽...続きを読む

QMicrosoft Office Pictureに画像が表示されない

よろしくお願いします。
Windows10の画像管理ソフトの既定にMicrosoft Office Picture(Microsoft Office 2010)を使用しています。過去から自作のアイコンを多数作成し、Pictureに保存しています。(100くらい)
ところがMicrosoft Office Pictureでファイルを開くと下記に添付したように画像が急に表示されなくなりました。ここに記述してある「画像のみ表示」のチェックを外してもOffice Pictureのアイコンが表示されるだけです。どこかの設定が知らぬ間に変わってしまったのでしょうか。色々調べましたが分かりません。ただ画像は表示されなくてもアイコンはファイルを指定すると変更もできます。
デジカメ写真や他の画像もフォルダー別に保存していますが、これらは正常に表示されます。

Aベストアンサー

>過去から自作のアイコンを多数作成し、Pictureに保存しています。(100くらい) 
 ファイル形式は「.ico」でしょうか

>下記に添付したように画像が急に表示されなくなりました。
 以前は Picture Manager で「.ico」が表示できていたと言うことでしょうか?
 
Picture Manager で表示できる対応ファイルは、初期設定では
「JPEG」「GIF」「BMP」「PNG」の4種類です。
追加で「TFF」「WMF」「EMF」が可能。
それ以外のファイルですと表示することができません。
http://blog.goo.ne.jp/emihime_001/e/6eeb3763a7e4a3798b4c688aa874ab36

質問者様が書いている「自作のアイコン」という物が「.png」の場合は設定が変わっているかと思われます。

以下を参考に設定してみてください。
設定方法。
スタート⇒「すべてのアプリ」⇒「Microsoft Office」⇒「Microsoft Office Picture Manager」を右クリック。
「その他」⇒「管理者として実行」 
Picture Manager が起動したら「ツール」⇒「ファイルの種類」で全てに☑を入れ「OK」

ファイル形式が「.ico」の場合は、Picture Manager では開けませんので、既定のアプリを
「フォト」「Photo Gallery」「Windows フォト ビューアー」等に変更する必要があります。

「Windows フォト ビューアー」が選択できない場合は以下を参考に。
https://i-bitzedge.com/tips/how-to-use-windows-photo-viewer-in-windows-10

>過去から自作のアイコンを多数作成し、Pictureに保存しています。(100くらい) 
 ファイル形式は「.ico」でしょうか

>下記に添付したように画像が急に表示されなくなりました。
 以前は Picture Manager で「.ico」が表示できていたと言うことでしょうか?
 
Picture Manager で表示できる対応ファイルは、初期設定では
「JPEG」「GIF」「BMP」「PNG」の4種類です。
追加で「TFF」「WMF」「EMF」が可能。
それ以外のファイルですと表示することができません。
http://blog.goo.ne.jp/emihime_001/e/6eeb...続きを読む

QExcelの列'A' 'B' 'C'...や、行'1' '2' '3'...の文字の大きさや種類

Excel2002を使っていますが、Excelの上にある列'A' 'B' 'C'...や、左にある行'1' '2' '3'...の文字の大きさや種類は変えることはできるのでしょうか?もし、変えれるのでしたらどうやって変えるのですか?

Aベストアンサー

「書式」「スタイル」「標準」の状態で「変更」を押して「フォント」の内容を変更してください。
列と行の文字フォントとサイズが変更されます。

Q忍者簡単ホームページの画像が表示されない

宜しくお願いします。
忍者ホームページの簡単ホームページでホームページを作りましたが画像が表示されず
コメントだけの表示に成ります。
FFFFTPとかホストとか効きますが一度も利用したことが有りません
HTMLはメモ帳で作成し画像は同じパソコンのデスクトップにフォルダーとして保存しております。
忍者ホームページにアップロードした画像ファイル名は一致しております
幾度試しましたが同じ状態です
下記はいま利用中のURLです宜しくお願いします。は間違って居りますでしょうか困って居ります
http://qqai54.dousetsu.com/simpleVC_20110710164243.html

ここはテーフルタグです。
<table align="right">
<tr><td><img src="img142.jpg"width="250" height="250"></td>
<td><img src="img004.jpg"width="250" height="250"></td></tr>
<tr align="center"><td bgcolor="#ffcccc">ハイブリットフリウス</td>
<td bgcolor="#66cc66">フーガハイブリット</td></tr>
<tr><td><img src="img013.jpg"width="250" height="250"></td>
<td><img src="img889.jpg"width="250" height="250"></td></tr>
<tr align="center"><td bgcolor="#cc9900">ポルシェカレラ</td>
<td bgcolor="#9999cc">フェラリーモンディアル</td></tr>
</table>

宜しくお願いします。
忍者ホームページの簡単ホームページでホームページを作りましたが画像が表示されず
コメントだけの表示に成ります。
FFFFTPとかホストとか効きますが一度も利用したことが有りません
HTMLはメモ帳で作成し画像は同じパソコンのデスクトップにフォルダーとして保存しております。
忍者ホームページにアップロードした画像ファイル名は一致しております
幾度試しましたが同じ状態です
下記はいま利用中のURLです宜しくお願いします。は間違って居りますでしょうか困って居ります
http://qqai5...続きを読む

Aベストアンサー

http://oshiete.goo.ne.jp/qa/6866707.html
こちらで答えてますが、わからなかったでしょうか。
同じ質問内容ならば、上記のやりとりで疑問点を補足してもらえればそれに対して答えます。
新しく質問をするのなら、上記を締め切った上で質問なさってください。

どちらのやりとりも中途半端になりますので、同じ回答を入れておきます。
不明なところがありましたら、どちらかのやりとりで補足して、もう片方は締め切ってください。

---------------------------------

【回答】
画像の場所の記述が間違っています。
画像は、htmlファイルが保存されている下のディレクトリであるsimpleVC_imgに保存されています。
質問にあるタグでは、htmlと画像が同じディレクトリに保存されている状態でないと画像が表示されません。

例えば、img src="img142.jpg" だったら、img142.jpgは、以下のように訂正してください。
http://あなたの忍者ホームページのアドレス/simpleVC_img/img142.jpg

但し、簡単ホームページにソースを貼りつけてもタグが適度に書き換えられますので、タグを手打ちしているのならFTPでのアップロード方法を覚えたほうがいいと思います。

http://oshiete.goo.ne.jp/qa/6866707.html
こちらで答えてますが、わからなかったでしょうか。
同じ質問内容ならば、上記のやりとりで疑問点を補足してもらえればそれに対して答えます。
新しく質問をするのなら、上記を締め切った上で質問なさってください。

どちらのやりとりも中途半端になりますので、同じ回答を入れておきます。
不明なところがありましたら、どちらかのやりとりで補足して、もう片方は締め切ってください。

---------------------------------

【回答】
画像の場所の記述が間違っていま...続きを読む

QエクセルのIF文で「NOT=」はどう書くのですか?また、>=や<=の場合の書き方を教えてください

タイトルのとおりです

IF文で下記の3つの書き方がわかりません。

NOT=は、<>?
0以外の場合は、A1<>0?

A1が0と同じか、大きい場合は
A1>=0?

なんだか、うまくいきません^^;

よろしくお願いいたします

Aベストアンサー

A1が・・・・・
A1 <> 0  0以外
A1 >= 0  0以上(0を含む)
A1 > 0   0より大きい(0は含まない)
A1 <= 0  0以下(0を含む)
A1 < 0  0未満
A1 = 0  0

=<,=> などの書き方は使えません。

Qアップロード後にHPの画像が表示されない

HP作成初心者です。

windows7、メモ帳でHTMLを作成し
エクスプローラで確認した時点では画像はすべて見られます。

サーバーにアップロード後
HPの画像のほとんどが表示されない状態です。
全12ページ、画像は30枚程度ですが
全部が見られないわけではなく、数枚は見られます。

サーバーはロリポップで、フォルダごとアップロードはできないため
alphaEditでフォルダごとアップロードしました。

・アップロード後にhtmlは文字化けしていない
・サーバー上で画像はすべて正常に確認できる
・大文字、小文字を含めたファイル名と記述名に間違いはない
・画像はすべて同一ファイルにある
・同じJPG、同じような名前の画像でも表示されるものと、されないものがある
・PNGの画像は一枚も表示されない
・画像ファイルのみ、htmlファイルをそれぞれ再アップロードしても同じ

というところまで確認できたのですが
あとはhtmlの記述ミスを探すしかないのでしょうか。

数枚ではありますが、表示されている画像もあるので
フォルダの指定間違いではないとは思います。

htmlは自分ですべて記述したものではなく
フリーの素材を使い、画像を挿入したり内容を記入したりしたため
これ以上記述のミスを探すのも難しい状態です。

他になにか解決の糸口はありますでしょうか。
お知恵を貸してください!

HP作成初心者です。

windows7、メモ帳でHTMLを作成し
エクスプローラで確認した時点では画像はすべて見られます。

サーバーにアップロード後
HPの画像のほとんどが表示されない状態です。
全12ページ、画像は30枚程度ですが
全部が見られないわけではなく、数枚は見られます。

サーバーはロリポップで、フォルダごとアップロードはできないため
alphaEditでフォルダごとアップロードしました。

・アップロード後にhtmlは文字化けしていない
・サーバー上で画像はすべて正常に確認できる
・大文字、小文字を...続きを読む

Aベストアンサー

No,3です。

最初の2項目で解決しないということは。画像ファイルが,期待通りの場所に存在していない可能性が大きいですね。

>・URLを直接入力する方法が分からなかったので、こちらはまだ試していません。
そうですか。では次の点を確認してみましょう。
IEだと,図が表示されるべき位置に×印のようなものが表示されていることと思います。
その上で右ボタンをクリックして,プロパティを表示させてみて下さい。
これで表示される「アドレス(URL)」が,想定通りのアドレスになっているでしょうか。
a)最初が http:// ではじまっているか。(例えば file:// ではない)
b)画像の名前が,パスを含めて想定通りに表示されているか。
 (大文字/小文字,全角/半角など要注意)

QエクセルVBAで If~ Then

If Range("A1") = "" Then Exit Sub と

If Range("A1") = "" Then
Exit Sub

では違うのですか?
通常改行すると思っていたのですが、改行したらエラーになってしまいました。

Aベストアンサー

ANo.#2の補足です。

Excel VBAのヘルプで『キーワードを入力してください』の所に"IF"と入れると、その下の『キーワードを選択してください』の下に"If...Then...Else"と選択肢がでますから、それをダブルクリック、その下の選択欄に『If...Then...Elseステートメントの使い方』というのが出ますので、読んでみてください。

・『1つのステートメントだけを実行するときは、If ... Then ... Elseステートメントの1行の構文を使います。』
・『複数行のコードを実行するには、複数行の構文を使用する必要があります。この構文には、次の例のようにEnd Ifステートメントが含まれます。』
(以上、VBAのヘルプから引用)

"Then"と"Else"の後に続く処理がそれぞれ1つずつであれば、1行に記述することが出来、"End If"は必要ありません。(厄介なことに、"End If"をつけるとエラーになります。)

If ... Then x = 1 Else x = 0

処理が2つ以上になると、複数行の記述になるので、最後に"End If"が必要になります。(ご質問のように"Then"の後ろで改行した場合も、VBAでは複数行の記述と解釈されてしまいます。)

If ... Then
  x = 1
Else
  x = 0
End If

>通常改行すると思っていたのですが、・・・

"If"だけでなく、改行した方がプログラム作成者以外の者にも処理がわかりやすいという観点から、VBA以外のプログラミング言語でも、改行した書き方が推奨されているので、その影響でしょうね。(VBAではないですが、私も改行するように教えられました。)

ANo.#2の補足です。

Excel VBAのヘルプで『キーワードを入力してください』の所に"IF"と入れると、その下の『キーワードを選択してください』の下に"If...Then...Else"と選択肢がでますから、それをダブルクリック、その下の選択欄に『If...Then...Elseステートメントの使い方』というのが出ますので、読んでみてください。

・『1つのステートメントだけを実行するときは、If ... Then ... Elseステートメントの1行の構文を使います。』
・『複数行のコードを実行するには、複数行の構文を使用する必要があ...続きを読む


このQ&Aを見た人がよく見るQ&A

人気Q&Aランキング