• ベストアンサー

VBAで全シートの処理

EXCEL2003を使用しています。 処理内容はあるEXCELファイルをオープンして、シートに存在する値を使って処理するというものです。 質問はそのオープンしたファイルに存在する個々のシート全てを処理させる方法を教えていただけますでしょうか? 1つのシートの処理が終わったら次のシートへと移るロジックがわかりません。しかも存在するシート分です。 よろしくお願いいたします。

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

  • ベストアンサー
回答No.2

こんなのでもいけます。 Dim Mysheet As Sheets Set Mysheet = ActiveWorkbook.Sheets For i = 1 to MySheet.count Sheets(i).Activate 処理 Next i

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

その他の回答 (2)

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

Sub test01() Dim sh As Worksheet Workbooks.Open "c:\My Documents\aa2.xls " For Each sh In ActiveWorkbook.Sheets MsgBox sh.Cells(1, "A") Next End Sub を参考に。

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

こんな感じ Dim WS As Worksheet For Each WS In Application.ActiveWorkbook.Worksheets MsgBox (WS.Name) Next

fm0606
質問者

補足

早々のレスありがとうございます。 すみません、これってファイルをオープンした後のロジックですよね?

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

関連するQ&A

  • Excelシートごとに処理

    あるExcelブックがあり、その中には「DUT40」「DUT63」「Sheet1」「Sheet2」「sheet3」というシートが存在します。 処理内容は、まず、「DUT40」について処理をさせ、結果をテキストファイルに保存した後に、テキストファイルの内容を別のExcelブックへ書き込みます。 次にに「DUT63」について処理を行います。 このようにして「DUT*」というシートのみを読み込み処理をさせたいのですが、 私の考えとしましては、シートをループさせたらどうかなと思うのですが、 他に何かよい方法はありますでしょうか?

  • VBの処理結果をEXCELシートへ出力したい

    VB6で処理した結果を、EXCELシートへ編集しプリンターへ出力する方法を教えて下さい。 (1)VBからEXCELをどのようにして、起動させるのか。 (2)EXCELファイルのオープンはどのようにするのか。 (3)BVとEXCEL間の制御が分らない。

  • Access VBAからExcelシートの削除

    お世話になります。 Access VBA から指定したExcelシートの削除を行うプログラムを下記の通りに記載しています。 Set oApp = CreateObject("Excel.Application") oApp.Workbooks.Open FileName:="エクセル.xls" oApp.DisplayAlerts = False oApp.Sheets("シート名1").Delete oApp.DisplayAlerts = True この場合において、"シート名1"が存在していれば問題なく処理されますが、 このシートが存在していなければエラーが起きます。 指定したExcelブックにこのシートが存在するかどうかのチェックを事前に行い、 存在する場合のみ削除処理を行うにはどうすればよいでしょうか? よろしくお願いします。 環境は、Access2007です。

  • EXCEL VBA 複数ブックを自動オープン

    お世話になります。田中と申します。 Excel VBAを使って下記(1)、(2)の処理を実現したいと思っております。 どなたかVBAロジックをご教授いただけませんでしょうか。 (1)集計.xlsxというブックがあります。このブックに[ファイル]というシートがありまして A1のパス、B1にファイル名が記入されています。 この組み合わせのファイル数は可変ですが下記のように大体10個程度あります。 A2(パス)+B2(ファイル名) A3(パス)+B3(ファイル名) A4(パス)+B4(ファイル名) A5(パス)+B5(ファイル名) ・・・ (2)このシートに[開く]というボタンを配置して、クリックされたらA1(パス)+B1(ファイル名)でファイルを開いて何もしないですぐに閉じて、次のファイルを開いて閉じて、また次のファイルを開いて閉じて。。という動きをファイル数分繰り返したいのです。 変な処理ですが、本Excelのリンクの値がリンク先のファイルを開かないと値が飛んでこないので、リンク先のファイルを開く処理を自動化したかったのです。 どなたかご教授いただけますでしょうか。 よろしくお願い致します。 環境 Excel2013

  • Access VBA 新しいシート作成

    Access VBAにてExcelファイルを編集するプログラムを作成しています。 Dim AppObj As Object 'Excel.Applicationオブジェクトの宣言 Dim WBObj As Object 'Excel.Workbookオブジェクトの宣言 Dim WsObj As Object 'Excel.WorkSheetオブジェクトの宣言 '実行時バインディング Set AppObj = CreateObject("Excel.Application") '編集を実施するワークブックを開く 'PathにはExcelファイルのフルパス、ExfにExcelファイル名が格納されています。 Set WBObj = AppObj.WorkBooks.Open(Path & Exf) 'Excelアプリケーションを表示する AppObj.Visible = True ※各Excelファイルはシートが1つだけ存在します。 この処理の直後に『数値』という名称の新しいシートを左から2番目に作成したいのですが、どのように記述すればよろしいでしょうか?

  • 【VBAでシート名の存在チェックを行いたい】

    目的は、特定したExcelファイルを開き、そこに存在するシート名が、あるシート名リストと一致するかどうかの判断を行うことです。 シート名を参照しようとすると、存在しない場合エラーになります。 例: Excelブック     シート名リスト 「顧客」シート   「住所」 「住所」シート   「趣味」 「会社」シート シート名リストの「趣味」がブックに存在しないので、エラーになります。 他の方法をご存知の方、教えて頂けますでしょうか? 宜しくお願いいたします。 Excel2000を使用しています。

  • エクセル VBA 指定色セルを値化(全シート対象)

    エクセル2010を使用しています。 VBA(マクロ)で以下の作業を実行したいと考えていますが、 初心者につき、ご教示いただけますでしょうか。 Book内の全Sheetを対象として、 特定の色(RPG:180,198,231)のセルを全て値化したいです。 他色のセルにも式が入っているのですが、それ等は崩したくないので 個々に値化してゆくしかないのですが、 指定色(RPG:180,198,231)のセル位置がまちまちな上に多数あり、 その上シートもかなりな数あるため、自動化できたらと考えています。 ※値化するセルに入っている式は、簡単なリンク式です。 尚、必要の無い(表外)セルは無色で設定してあります。 また、その表のフチ(?)を「#」で囲っているため、 これをKyeに「次の行へ移動」や「次のSheetへ移動」等が設定できるでしょうか? 1つづつのコードは、検索すれば(参考にできるものが)出てくるものもありますが、 それらを どう組み合わせればうまく作動するのか または、処理条件を どう設定すれば良いのかが、よくわかっていません。 知識不足で申し訳ありません! ご指導いただけますと幸いです。 よろしくお願いします!!

  • ★「フォルダ内の全エクセルシートを一括処理」★

    ★「フォルダ内の全エクセルシートを一括処理」★ エクセルのマクロのコードを教えていただけますでしょうか。 ★VBAの初心者です★ どなかた詳しい方、下記の内容を実行するためのコードを教えていただけませんでしょうか。 あるフォルダ内に入っている全エクセルシートの「sheet1」セルA1、B1、C1にある値を、デスクトップ上に保存されている別のエクセルシート”X” のF2、G2、H2、にそれぞれ貼り付けたい。 フォルダ内のエクセルシートは複数あるので、エクセルシートXのセルF2、G2、H2の次はF3、G3、H3、F4、G4、H4とそれぞれ1番ず つ下に貼り付けていきたい。 フォルダを検索するところから、全てのコピーが終了するところまで教えていただけると幸いです。 お忙しいところ恐れ入りますが、よろしくお願いいたします。

  • Excel VBAでのシート全選択

    Excel2003を使用しています。 シートの数:毎回違う シート名前:毎回違う このような状況で、ExcelのVBAを使用して シートを全て選択する方法はありますでしょうか? ご存知の方、ご教授願います。

  • ワークシートに対して処理をするVBAについて

    初めまして、ワークシートに対して処理をするVBAの記述に関して質問させてください。 複数のシートがあり、そのうち3シート目以降から最後のシートまで特定の処理をしたいと考えています。(最後のシートまでの数はそのときによって変動します。) しかし、 For Each sh In Array("A", "B", "C") のようにシート名を指定すると選択したシートに同時に処理をしてしまいます。選択したシートに同時に処理をするのではなく、1シート目を処理したら次のシート…という方法にしたいのですが、この場合どのように記述すればよいのでしょうか…?(T_T) ちなみに、 For Each sh In Worksheets という記述だと、全てのシートが処理の対象になってしまうのでだめなんです…。3つ目以降のシートに処理をしたいのです…!どなたかご教示いただけると嬉しいです!よろしくお願い致します!m(_ _)m

専門家に質問してみよう