- ベストアンサー
シート見出しが青色で、そのシートのセルを集計に
こんばんは エクセル2010VBAで、シート見出しが青色で、そのシートのセル(L15、L21、L27・・・L45)と(P15、P21、P27・・・P45)の値を集計用紙にB2とC2の列に貼り付けるにはどうしたらよいのでしょうか? 色々な名前でシート見出しが作られており、唯一、目的シートが青色で分別されています。 見出し色指定のコードの作り方が、わかりません。 宜しくお願い致します。
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
何度もごめんなさい。 「集計用紙」の「集計」という言葉で思い込みをしていました。 集計するのではなく、単に集計用紙のB・C列の2行目以降に 「青」のSheet見出しデータを羅列すれば良い訳ですよね? 今までのコードは無視して、標準モジュールに↓のコードをコピー&ペーストしてマクロを実行してみてください。 Sub Sample3() Dim i As Long, k As Long, cnt As Long cnt = 1 For k = 1 To Worksheets.Count With Worksheets(k) If .Tab.Color = RGB(0, 112, 192) Then For i = 15 To 45 Step 6 cnt = cnt + 1 Worksheets("集計用紙").Cells(cnt, "B") = .Cells(i, "L") Worksheets("集計用紙").Cells(cnt, "C") = .Cells(i, "P") Next i End If End With Next k End Sub 今度はどうでしょうか?m(_ _)m
その他の回答 (2)
- tom04
- ベストアンサー率49% (2537/5117)
No.1です! 補足を読みました。 Sheet見出し色が「青」のSheetが複数あるわけですね? ↓のコードに変更してマクロを実行してみてください。 Sub Sample2() Dim i As Long, k As Long, cnt As Long, vL1, vL2 cnt = 1 For k = 1 To Worksheets.Count If Worksheets(k).Tab.Color = RGB(0, 112, 192) Then cnt = cnt + 1 For i = 15 To 45 Step 6 vL1 = vL1 + Worksheets(k).Cells(i, "L") vL2 = vL2 + Worksheets(k).Cells(i, "P") Next i With Worksheets("集計用紙").Cells(cnt, "B") .Value = vL1 .Offset(, 1) = vL2 End With vL1 = 0 vL2 = 0 End If Next k End Sub 今度はうまくいけば良いのですが・・・m(_ _)m
補足
何度も申し訳ありません。Sheetは複数あります。例えば、Sheet2が青色、そのシートのセル(L15、L21、L27・・・L45)と(P15、P21、P27・・・P45)の値を集計用紙のB2を先頭にL15の値、B3にL21の値・・・B7にL45の値。C2を先頭にP15の値、C3にP21の値・・・C7にP45の値と抽出したいのです。Lに値があればPにも値はあります。)これを踏まえSheet15が青色ならば、集計用紙B列、先ほどSheet2の値が入力されている最終列より入力を開始します。
- tom04
- ベストアンサー率49% (2537/5117)
こんばんは! >唯一、目的シートが青色で分別されています とありますが、Excel2010の場合「青」といっても色々な「青」が選択できると思います。 「標準色」の「青」(右から3番目)を選んだ場合の一例です。 標準モジュールにコピー&ペーストしてマクロを実行してみてください。 Sub Sample1() Dim i As Long, k As Long, vL1, vL2 For k = 1 To Worksheets.Count If Worksheets(k).Tab.Color = RGB(0, 112, 192) Then For i = 15 To 45 Step 6 vL1 = vL1 + Worksheets(k).Cells(i, "L") vL2 = vL2 + Worksheets(k).Cells(i, "P") Next i End If Next k With Worksheets("集計用紙").Range("B2") .Value = vL1 .Offset(, 1) = vL2 End With End Sub ※ Sheet見出しの色を判別する場合は、 青色Sheet見出し上で右クリック → シート見出しの色 → 「その他の色」 → 「ユーザー設定」タブ これでRGB値が表示されていますので、そのままの数値をコード内のRGB値部分に入れます。 こんなんではどうでしょうか?m(_ _)m
補足
説明不足で申し訳ありません。対象シート(青色)のすべての値がB2とC2のセルに入力されてしまいます。希望は、B2を先頭にB列に・C2を先頭にC列に1つの値を入力したいのです。
お礼
ありがとうございます。出来ました。感激です。 なかなかイメージが伝わらなく、自分の文書力の無さに恥ずかしく思います。お手数をお掛けし申し訳ありませんでした。色々勉強になりました。 心から、感謝いたします!!