• ベストアンサー

Excelファイルがマクロを含むか調べるには?

Excell2003で作っていた多量のExcelファイルを、Excel2010で動かす事が必要になってきました。 で、指定フォルダにある複数のExcelファイルが、マクロを含んでいるかどうかを調べたいのです。 加えて、マクロを含んだExcelファイルのファイル名をリストアップしたいのですが、 どの様にしたら良いでしょうか? 適切なマクロなりともご教授いただきたく、よろしくお願いします。

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

  • ベストアンサー
  • x-1919
  • ベストアンサー率52% (91/173)
回答No.1

Excel 2007 または 2010 から実行するならば以下のような感じか。 調べたい対象ファイルの Workbook オブジェクトの HasVBProject プロパティが True なら VBA コードを含んでいるということになる。 Sub hoge()  ' VBA を含むファイルのファイル名出力行番号  Dim rowIdx As Long  rowIdx = 1  ' これから開くファイルの VBA を無効にする  Application.AutomationSecurity = msoAutomationSecurityForceDisable  Dim fso As Scripting.FileSystemObject  Set fso = New Scripting.FileSystemObject  Dim bk As Workbook  Dim f As Scripting.File  For Each f In fso.GetFolder("D:\test\").Files   ' xls ファイルを開いていく   If fso.GetExtensionName(f.Name) = "xls" Then    Set bk = Workbooks.Open(f.Path)    ' VBA を含んでいればファイル名を書き出す    If bk.HasVBProject Then     ThisWorkbook.Worksheets(1).Cells(rowIdx, 1).Value = bk.Name     rowIdx = rowIdx + 1    End If    bk.Close   End If  Next  ' VBA に対するセキュリティを元に戻す  Application.AutomationSecurity = msoAutomationSecurityLow End Sub

Silmaril
質問者

お礼

有り難うございます。これで試してみます。

関連するQ&A

  • Excel(2000)形式のファイルを一括でタブ区切りテキストに変換

    Excell形式の複数のファイル(あるフォルダの中にある全てのxlsファイル)を一括で、タブ区切りのテキストファイルに変換する必要があります。 このような操作をできるツールまたはマクロを教えていただけませんでしょうか。 ExcelはExcel2000を使っています。

  • エクセル マクロで特定ファイル名だけを開く

    エクセルのマクロで 特定のファイル名だけをフォルダの中から探して 開くというものを作りたいのですが うまくできません。 フォルダを指定して 「060927.xls」というエクセルファイルだけを 開きたいのですが この日付のところが毎日変わるので 「06XXXX.xls」というような 最初が06であと4つの文字が入ってるファイル名だけを 流動的に指定できるようにするには どのようなVBAマクロにすればよいのでしょうか? とても困っています。 是非教えてください!宜しくお願いします。

  • Excelマクロでpdfを自動作成したい

    複数のExcelシートからなるブックを、pdfとして出力しています。 現在はJustSystemのJustpdf2ドライバを使っているのですが、これだとマクロで完全自動化できないことが判明しました。 ・PDFのフアイル名と保存場所 ・上書きかどうか をいちいち聞いてきます。 Excelマクロで完全自動化するには、 ・ファイル名、保存場所をマクロで指定できる。もしくはExcelファイルと同じ場所に同じファイル名で作成する ・1シート目は上書き、2シート目からは現存のpdf (前シートのpdf)に続けて保存できるように、マクロで「上書き」か「続けて保存」かを指定できる ことが必要なのですが、JustSystemに問い合わせたところ、Justpdf2では無理とのことでした。 上記のように、複数シートからなるExcelブックを、マクロで完全自動でPDF化できるドライバ、方法がありましたら、お教えください。

  • excelのマクロについて教えてくださいm(_ _)m

    はじめまして excelでマクロをつかって、 ファイルを『上書き保存』をするときに複数の別のフォルダにも同時に保存したいのです。 誰かご存知でしたら教えてください^^; ちなみにOffice excel 2003を使ってます^^

  • エクセルのマクロで

    こんにちは、お願いします。 エクセルに画像の添付でマクロを使用したいのですが、 下記のようなマクロ作成・編集ができるのでしょうか? エクセルの特定のセルに画像のファイル名を入力しマクロを実行すると、他のフォルダにある.jpg画像が指定したセル位置に添付される。 また、添付位置を複数にもできますか? 説明がわかるでしょうか…?^_^; マクロに関して全く無知なのですが、できるものでしたら是非教えてください。 宜しくお願いします。

  • エクセルマクロでご教示ください

    エクセルで作られたデータファイルに対し、ある操作を施して上書き保存するというマクロを作りました。 そのマクロを走らせるとファイル名を聞いてきまして、そこでファイル名を入力してやれば、ある操作を施したあと 自動的に上書き保存までしてくれるのですが、対象ファイルが複数個あると、ひとつ実行したあとまたひとつ ファイル名を入れて、またそれが終ったら次のファイル名を・・・というように、ひとつひとつ実行しなければならない というのが現状です。 これを次のように改良したいのですが、どうすればいいのでしょうか? 1.マクロを立ち上げる。 2.処理する複数のファイルが入っている「フォルダ」を選ぶ。  (一覧表示のウィンドウが出てきて、その中で「フォルダ」を選ぶ) 3.そのフォルダの中に入っているエクセルファイル全てに対し、既に作成済みのマクロを順次実行する。 というものです。 よろしくお願いします。

  • エクセル マクロ 複数ファイルを1枚のファイルに

    お世話になります。 私の業務で、多数のエクセルシートを1つのファイルにまとめ、 その上で縦串を通して合算を出す、という作業が頻発しております。 様々な資料で同様の作業が行われますので、簡素化ができればと思い、 質問させていただきます。 [作りたいマクロ] 『元データ』のフォルダに入っているエクセルファイルの 『指定シート(仮にA2セルにシート名を指定できるものとします)』を、 当マクロの入ったエクセルファイルにシートを追加したい。 その際、全てのシート名が同一になってしまうので、 『指定したセル(仮に各シートのB2セル)』をシート名にする。 ●各シートは全て同じフォーマットですので、書式等そのままコピーでOKです ●元のファイル名はバラバラになっていることが多いです

  • 複数のエクセルファイルをマクロで開いて閉じたい

    フォルダにエクセルファイルが複数あります。A*** B*** マクロを使い、A・Bの後の日々変更される(数字)ファイル名に対応して、 ファイルを開きActivateにする方法と閉じる方法を教えてください。

  • Excel マクロ無効化

    Micorsoft Excelで、VBAで以下のように指定のExcelファイルのマクロを無効化したいのですが、やりかたを調べてもよくわかりません。できないのでしょうか?アドバイスいただけると幸いです。 具体的にやりたいこと (1)マクロ有効にしたExcelファイルのVBAから他のExcelファイルをマクロ無効で開く (2)マクロ有効にしたExcelファイルのVBAで、開いているExcelファイルのマクロを無効に設定する。(有効だったものを無効にする)

  • エクセルマクロにてフォルダ内ファイル名をプルダウン

    指定フォルダ内のファイル名をA1セルに入力し、この名前を基に次の操作に入るマクロを書いているのですが、フォルダを開いて確認するか記憶に頼って入力しなければなりません。 そこで、このフォルダ内のファイル名が、例えば入力規則の"リスト"機能の様にプルダウンで表示されて選択入力できるようにする事が可能ならばご教示下さい。よろしくお願いします。