Excel VBA質問箱 IV

当質問箱は、有志のボランティア精神のおかげで成り立っています。
問題が解決したら、必ずお礼をしましょうね。
本サイトの基本方針をまとめました。こちら をご一読ください。

投稿種別の選択が必要です。ご注意ください。
迷惑投稿防止のため、URLの入力を制限しています。ご了承ください。


4046 / 13644 ツリー ←次へ | 前へ→

【58677】シートの連続処理 わかめ 08/11/4(火) 15:34 質問[未読]
【58678】Re:シートの連続処理 マクロマン 08/11/4(火) 15:39 発言[未読]
【58679】Re:シートの連続処理 わかめ 08/11/4(火) 15:59 質問[未読]
【58680】Re:シートの連続処理 マクロマン 08/11/4(火) 16:36 発言[未読]
【58681】Re:シートの連続処理 マクロマン 08/11/4(火) 16:38 発言[未読]
【58682】Re:シートの連続処理 わかめ 08/11/4(火) 16:43 お礼[未読]
【58683】Re:シートの連続処理 マクロマン 08/11/4(火) 16:44 発言[未読]
【58687】Re:シートの連続処理 わかめ 08/11/4(火) 18:00 お礼[未読]

【58677】シートの連続処理
質問  わかめ  - 08/11/4(火) 15:34 -

引用なし
パスワード
   あるブックに複数シートがあって、全シートに同様の処理を行いたいです。
次のシートを参照しにいくにはどうすればよいですか?
また、最後のシートに来たときのループの終了条件はどうすればよいですか?
よろしくお願いします。

【58678】Re:シートの連続処理
発言  マクロマン  - 08/11/4(火) 15:39 -

引用なし
パスワード
   ワークシートに対する処理の場合です。

Dim ws As worksheet
 For Each ws In ThisWorkbook.Worksheets
  MsgBox ws.Name & VbCrLf & ws.Cells(1,1).Value
 next ws

【58679】Re:シートの連続処理
質問  わかめ  - 08/11/4(火) 15:59 -

引用なし
パスワード
   せっかくご回答下さったのにゴメンナサイ!!
説明不足でした。

入力ファイルが複数シートがあるブックです。
出力ファイルがシート一枚で、集計結果を出力します。
マクロは出力ファイルに記述してます。

その場合、先ほどのコードはそう変わるのでしょうか?
workbookオブジェクトとか使いそうな気がしますが、そういうのも
よくわかっていません。。。
よろしくお願いします。

【58680】Re:シートの連続処理
発言  マクロマン  - 08/11/4(火) 16:36 -

引用なし
パスワード
   他のブックをWorkbookオブジェクトとして設定する方法です。

Sub test()
Dim wba As Workbook
Dim wbb
Dim wbpath As String
Dim bl As Boolean
 wbpath = "D:\test\A.xls"
 bl = False
 For Each wba In Workbooks
  'もしA.xlsが開いていたら
  If wba.Name = "A.xls" Then
   Set wbb = wba
   bl = True
  End If
 Next wba
  'もしA.xlsが開いていなかったら
 If bl = False Then Set wbb = Workbooks.Open(wbpath)
 'Workbookオブジェクトに対する処理
 MsgBox wbb.Worksheets(1).Cells(1, 1).Value
 '変数の解放
 Set wbb = Nothing
 Set wba = Nothing
End Sub

【58681】Re:シートの連続処理
発言  マクロマン  - 08/11/4(火) 16:38 -

引用なし
パスワード
   >Dim wbb

Dim wbb As Workbook
でした。
また、自ブックに対する処理もある場合は、

Dim wbc As Workbook
Set wbc = ThisWorkbook

のようにしてください。

【58682】Re:シートの連続処理
お礼  わかめ  - 08/11/4(火) 16:43 -

引用なし
パスワード
   早速のご回答、ありがとうございました。

これを見てサクっとコーディングできる私ではないので、
じっくり研究させて下さい。
もしうまくできなかったら、またご教授よろしくお願い致します。

取り急ぎお礼まで。
ありがとうございました。

【58683】Re:シートの連続処理
発言  マクロマン  - 08/11/4(火) 16:44 -

引用なし
パスワード
   08/11/4(火) 16:36の私のレスに追加してください。

> If wba.Name = "A.xls" Then
>   Set wbb = wba
>   bl = True
    Exit For '←これを追加

【58687】Re:シートの連続処理
お礼  わかめ  - 08/11/4(火) 18:00 -

引用なし
パスワード
   了解です!
どうもありがとうございました。

4046 / 13644 ツリー ←次へ | 前へ→
ページ:  ┃  記事番号:
2610219
(SS)C-BOARD v3.8 is Free