• ベストアンサー

エクセルのマクロの特定のシート名を検索したい

1つのフォルダにエクセルのファイルが複数あります。 ブックを開かずに、それぞれのブックに「sheet1」が あるかどうかを確認する事ができますか?

質問者が選んだベストアンサー

  • ベストアンサー
  • mitarashi
  • ベストアンサー率59% (574/965)
回答No.2

こういう方法もあるというだけで、実用的かどうか分かりませんが、エクセルでは開かずに調べられると思います。 Sub test() If sheetCheck("C:\Documents and Settings\?????\My Documents\Book1.xls", "Sheet1") = True Then MsgBox "Sheet1あり" Else MsgBox "Sheet1なし" End If End Sub Private Function sheetCheck(bookFullPath As String, sheetName As String) As Boolean Dim getValue As Variant Dim pathParts As Variant Dim i As Long Dim bookPath As String pathParts = Split(bookFullPath, "\") bookPath = pathParts(0) For i = 1 To UBound(pathParts) - 1 bookPath = bookPath & "\" & pathParts(i) Next i On Error Resume Next getValue = ExecuteExcel4Macro("'" & bookPath & "\[" & pathParts(UBound(pathParts)) & "]" & sheetName & "'!R1C1") If Err.Number = 0 Then sheetCheck = True On Error GoTo 0 End Function

matchy4649
質問者

お礼

望んでいたとおりのものです。ありがとうございました!

全文を見る
すると、全ての回答が全文表示されます。

その他の回答 (2)

  • imogasi
  • ベストアンサー率27% (4737/17068)
回答No.3

Sub test02() Set FS = CreateObject("Scripting.FileSystemObject") Set Fol = FS.GetFolder("C:\Documents and Settings\OTO\My Documents\") Set Fil = Fol.Files For Each Fx In Fil 'ファイル名 sfile = Fx.Name If Right(sfile, 4) = ".xls" Then MsgBox sfile End If Next End Sub でファイル名は個々のブックを開かなくても捕まえられます。しかし ブック名を手がかりに、ブックを開かずに!、エクセルのシートのコレクションを捕まえるのは普通に簡単には出来ません。VBAのVBの部分以外が使えないからです。 Googleで「ブック 開かず シート名取得」で照会してみてください。 相当数過去の同じ質問が出ます。 そこに、田中先生の http://officetanaka.net/excel/vba/tips/tips28.htm があり ExecuteExcel4Macro("'C:\[Book1.xls]Sheet1'!R1C1") ガ載ってますが、4.0マクロを使ってでもやりますか。 あとデータベース接続でやる方法など出てます。 VBScriptなどで、特別にエクセルシートのコレクションの取得が出来るようにしてほしいと思いますが、シートはファイルの中の構造なのでね、立ち入ら無いでしょうね。

matchy4649
質問者

お礼

いろいろ教えていただきありがとうございました!

全文を見る
すると、全ての回答が全文表示されます。
  • xls88
  • ベストアンサー率56% (669/1189)
回答No.1

過去ログですが参考になるかも知れません。 エクセルのマクロでファイルのシート名一覧を取得したい http://oshiete1.goo.ne.jp/qa4418255.html ”開かずに”というのは難しいようです。 ANo.1のコードを実行すると、メモリ上には展開されるようです。 VBEを開くとプロジェクトエクスプローラウインドウに、ブック名が表示されます。

matchy4649
質問者

お礼

ありがとうございます!勉強になりましたl

全文を見る
すると、全ての回答が全文表示されます。

関連するQ&A

  • エクセル 複数のブックのなかから 特定のシート名を

    宜しくお願い致します Excel for Microsoft 365を使っています 複数のブックのなかから 特定のシートを探したいのですが ひとつずつブックを開いて 目的のシートを探す方法は すぐ見つかりましたが、フォルダに100余りのエクセルファイルがあり、そのなかから特定の名称のタブ すなわちシートを探したいのですが そのための方法もしくは アプリを 御存じの方 御教示くださいませ windows10使用しています

  • エクセルVBAをつかってフォルダ内のファイルの特定シートのデータを1つのシートにまとめる

    はじめまして。 過去ログ検索しましたが、載っていないようなので投稿させていただきます。 ブックAがあるフォルダ内にある「○年*.xls」のさらに「○月(○月以外のシートもあり)」のシート内の特定のセル(範囲は固定されてます)の文字列を、全てブックAの1つのシートにまとめたいのですが、VBAにてこれは可能ですか? フォルダ内のファイルが複数だったり、またそのファイル内の該当シートが1つだったり複数だったりで、かなり行き詰ってます。 どなたかご存知の方いらっしゃいましたらご教授願います。 エクセル2000を使用しております。

  • エクセルシートをファイル名+シート名で保存したい

    エクセルのブック内にある複数のシートを分割して保存するとき ブック名+シート名.xlsx とファイル名を付けて保存する方法があれば教えていただけないでしょうか。 よろしくお願いします。

  • PNGをアクティブシートに挿入するマクロについて

    Excelマクロブックと同じフォルダ内にある複数のPNGファイル(画像)を、 このマクロブックのアクティブシートに一括で挿入する(場所はどこでも大丈夫です)マクロの書き方を教えて欲しいです。 質問が分かりづらかったら申し訳ありません。 どなたかご教授いただければ幸いです。

  • エクセルのマクロでファイルのシート名一覧を取得したい

    特定フォルダ内にエクセルのファイルが複数あります。 エクセルのファイル名の取得は「Filesearch」を使い取得出来ました。 更にそのファイルの中にあるシート名を取得し、シート名の一覧を ワークシートに貼り付けたいと考えています。 よろしくご教授ください。

  • EXCELのシートのマクロ操作について

    EXCELについて質問がありまして、よろしくお願いします。 複数のシートがあるブックがあり、それを、それぞれシートごとに別のブックにしたいと思っています。 マクロやVBAなどを使って簡単に出来るものでしょうか? マクロ集などのサイトを探してみましたが、上手く見つけることができませんでした。 シート名をブック名として引き継いで保存できればベターだと思っております。それが出来なくてもブックとして起こせれば大丈夫です。 何かわかられましたらお教えいただけますと幸いです。 どうぞよろしくお願いします。

  • エクセルでシート名検索

    会社でエクセル2002を使用しています。 (1)シート名の検索ってできるんでしょうか?? (2)あと複数のファイルで一度にシート名の検索はできないですか?

  • Excelのシート→ブック

    Excelのシート→ブック Excelに複数のシートがある状態です。 そのシートを個別のファイル名=シート名で一発で個別のブックにする方法はありますか?

  • エクセルのシート移動

    実験データ(数値)をエクセルデータに変換してまとめる時 シート一枚分のエクセルブック(ファイル)が 30~50個できるのです。 そして、そのシート一枚、一枚を ひとつのエクセルブックにまとめる作業があって いちいちファイル開いて、シートタブをクリックして 新しいファイルにコピーするんですが… これが非常~にめんどくさい!!(^^; 例えばエクセル上に複数開いてるファイルのシートを 一気に新規ブック(ファイル)にまとめるような 技は無いのでしょうか?

  • 複数のエクセルブックから特定シートの特定セル抽出

    同一フォルダ内にある複数のExcelブックから特定シートの特定セル値を抽出して一覧表にまとめるExcel マクロ(VBA)を教えてください。 よく似ている質問、回答を読んだのですが、私のレベルではとても応用できず質問させていただきます。 【前提】 ・実行する端末のOSはWindows XP(SP3)、Excelは2003 ・対象フォルダはネットワーク接続フォルダ「\データ解析\データ」  この中に、複数のExcelブックがあります。 ・抽出したい対象は、各ブック内のシート(シート名はファイル名と同じ)の「BO6からBW16までの□の範囲」で統一されています。 【抽出一覧作成イメージ】 ・「集計.xls」ブックの「Sheet1」の2行目から抽出した結果を一覧表示する。 ・表示はA列に抽出元ブック名(=ファイル名)、B列に抽出元BO6セルの値。以降,C列・D列と 順に値を入れていきたい。 ・BO6~BW16までのセル値を「集計.xls」ブックの「Sheet1」に貼り付ける際には「値で貼り付ける」が望ましい。 というようなイメージです。 とても勝手なお願いではありますが、宜しくお願いいたします。

専門家に質問してみよう