- ベストアンサー
EXCELマクロ文を、教えて下さい。
EXCELマクロ文を、教えて下さい。 \AAフォルダ内のファイル数が、 1個の場合は、XXX処理、 1個以上の場合は、継続確認メッセージ後、YYY処理。 初心者で、マクロ文等よくわかりません。 全文教えて下さる方、お願い致します。
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
FileSystemObjectを使った例を…… Sub sample() Dim oFSO As Object Dim nCount As Long Set oFSO = CreateObject("Scripting.FileSystemObject") nCount = oFSO.GetFolder("C:\AA").Files.Count Set oFSO = Nothing If nCount = 1 Then '*** ファイル1個の時の処理 MsgBox "ファイルが1つ" Else '*** それ以外の時の処理(0個の時も含む) rtn = MsgBox("ファイルが" & nCount & "個。処理継続する?", vbOKCancel) If rtn = vbOK Then MsgBox "処理継続" Else MsgBox "処理キャンセル" End If End If End Sub
その他の回答 (2)
- merlionXX
- ベストアンサー率48% (1930/4007)
はい、全文です。 ただし 1個の場合は、XXX処理、 1個以上の場合は、 これじゃ1個は両方にはいりますよ。 2個以上の場合は、でしょ? あと、ない場合も考えなきゃね。 Sub TEST01() Dim myObj As Object Dim myDir As String, myFle As String Dim n As Long Set myObj = CreateObject("Shell.Application").BrowseForFolder(0, "フォルダを選択してください", 0) If myObj Is Nothing Then Exit Sub If myObj = "デスクトップ" Then myDir = CreateObject("WScript.Shell").SpecialFolders("Desktop") Else myDir = myObj.Items.Item.Path End If myFle = Dir(myDir & "\*.xls?") 'フォルダ内のExcelブックを検索 Do Until myFle = Empty '全て検索 n = n + 1 'ブック数をカウント myFle = Dir 'フォルダ内の次のExcelブックを検索 Loop '繰り返す If n > 1 Then MsgBox "複数のエクセルファイルがあります。" ElseIf n = 1 Then MsgBox "一つのエクセルファイルがあります。" Else MsgBox "エクセルファイルがありません。" End If End Sub
お礼
回答、有り難う御座いました。 とても参考に成りました。
- imogasi
- ベストアンサー率27% (4737/17069)
ここ質問コーナーはコード作成を委託するところではない。ヒントぐらいをもらうところだ。 下記の語句でWEBでも照会して勉強のこと。 何十万という記事がある。 (1)Dir関数 http://www.accessclub.jp/samplefile/samplefile_209.htm http://officetanaka.net/excel/vba/tips/tips69.htm (2)「FSO フォルダ ファイル」 http://www.asahi-net.or.jp/~ef2o-inue/vba_o/sub05_110_080.html フォルダ内のファイル取得
お礼
回答、有り難う御座いました。 とても参考に成りました。
補足
お礼欄への追伸です。(記入ミス、すみません。) 長文でしか作成する事が、出来ませんでしたので とても助かります。 早々、利用させて頂きます。 Excel2007では、問題無かったのですが、 Excel2010環境で、マクロにて範囲指定連続キャプチャで、 如何しても、同一画像が頻繁に出力されて困っていました。 色々試してみましたが、Excel2010等が原因と思われます。 同一画像削除処理の為、質問させて頂きました。