• ベストアンサー

シート見出しが青色で、そのシートのセルを集計に

こんばんは エクセル2010VBAで、シート見出しが青色で、そのシートのセル(L15、L21、L27・・・L45)と(P15、P21、P27・・・P45)の値を集計用紙にB2とC2の列に貼り付けるにはどうしたらよいのでしょうか? 色々な名前でシート見出しが作られており、唯一、目的シートが青色で分別されています。 見出し色指定のコードの作り方が、わかりません。 宜しくお願い致します。

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

  • ベストアンサー
  • tom04
  • ベストアンサー率49% (2537/5117)
回答No.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

ecolife007v
質問者

お礼

ありがとうございます。出来ました。感激です。 なかなかイメージが伝わらなく、自分の文書力の無さに恥ずかしく思います。お手数をお掛けし申し訳ありませんでした。色々勉強になりました。 心から、感謝いたします!!

その他の回答 (2)

  • tom04
  • ベストアンサー率49% (2537/5117)
回答No.2

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

ecolife007v
質問者

補足

何度も申し訳ありません。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)
回答No.1

こんばんは! >唯一、目的シートが青色で分別されています とありますが、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

ecolife007v
質問者

補足

説明不足で申し訳ありません。対象シート(青色)のすべての値がB2とC2のセルに入力されてしまいます。希望は、B2を先頭にB列に・C2を先頭にC列に1つの値を入力したいのです。

関連するQ&A

  • シート見出しの色を自動で変えるには

    エクセル2003を使用してます。 B2のセルに下記のような特定の文字が入力された場合、自動的にシート見出しの色を変えるようにしたいです。 (例) "(1)" が入力された場合、赤 "(2)" が入力された場合、青 "(3)" が入力された場合、黄 最大で(10)までです。 といった具合です。 VBAを使うことになるのでしょうか? VBAだとしたら、色のコードみたいなものは、下記ページの1、53、52、といった数字がそれに当たるのでしょうか? http://www.relief.jp/itnote/xls_colorindex.php 恐れ入りますが、宜しくお願い致します。

  • シート見出しの色

    全シートを対象として A1セルに整数が入力されたらそのシートのシート見出しが赤になり。A1セルに文字が入力されたらそのシートのシート見出しが黄色になるマクロの記述を教えてください。よろしくお願いします。

  • 条件により、シート見出しの色を変更したい

    エクセル2007を使用してします。 ある報告書の全シートを対象として A1セルにkさんの名前が入力されたらそのシートのシート見出しが緑になり、A2セルにmさんの名前が入力されたらそのシートのシート見出しが青になり、なおかつ、kさんとmさん2人の名前が入力されたらそのシート見出しの色が黄色に自動でなるマクロの記述を教えてください。よろしくお願いします。

  • excelのセルの色を変える

    excel2000でsheet1にある列のうち たとえば sheet1のセルA1の値が「Z-1」だったら sheet2のセルB1を赤に塗りつぶす ってことはマクロでできますか? できなければVBAでどのようなコードになるのか教えていただけませんでしょうか?

  • セルの値によって、シート見出しの色を変更したい

    エクセル2007を使用してします。以前に、 「ある報告書の全シートを対象として A1セルにkさんの名前が入力されたらそのシートのシート見出しが緑になり、A2セルにmさんの名前が入力されたらそのシートのシート見出しが青になり、なおかつ、kさんとmさん2人の名前が入力されたらそのシート見出しの色が黄色に自動でなるマクロの記述を教えてください」と質問し、 Private Sub Worksheet_Change(ByVal Target As Range) a1 = Range("a1").Value a2 = Range("a2").Value f = 0 If a1 = "k" Then f = f or 1 If a2 = "m" Then f = f or 2 c = Switch(f = 1, 4, f = 2, 5, f = 3, 6, True, xlNone) ActiveSheet.Tab.ColorIndex = c End Sub 上記のように御回答を頂きましたが、今後、入力する名前が変更する事を考えて、A1・A2セル共に、 何か文字が入力されたら(もしくは空白でなければ)と条件を変えたいと思い、色々試してみたのですが、 上手くいきませんでした。 何方か、条件に合うコードの記述を教えてください。宜しくお願いします。

  • マクロ セルの色を含むシート間のコピー貼り付け

    このようなことが、できるでしようか。お教え下さいませんか。 シート1のB2~P列の最終行を取得してコピー、シート2のA2のO列の間に貼り付けたい。 但し、シート1は関数処理していて、シート2には値だけを貼り付けたい時のマクロはどのようなコードにすればよいでしょうか。 また、罫線はそののままコピーして貼り付けたい。 更に、シート1のB2からB列の最終行までは、黄色のセルになっているので、それもシート2のA2~A列の最終行まで貼り付けることってできますか。 お教え頂けますでしょうか。よろしくお願いします。

  • 同じシート見出し色のシートのみから数値を取得

    シートが100くらいある経理で使っているエクセルのワークブックで、今月アップデートしたシートを経理部従業員がそれぞれの色でシート見出しに色を付けます。アップデートしなかったシートの見出しは黒に塗ることしています。黒以外の各シートにある仕訳を集計しシステムに入力する前に確認したいのです。

  • エクセル 複数シートの同一セルを別シートへ集計

    エクセルで複数sheetの同一セルを集計sheetへコピーしてきて一覧にし、集計するという作業を行なっています。 1~20のsheet(sheet数sheet名は変動します)を作り、一番右側に集計sheetがあります。 集計sheetのA5へsheet1のF10、A6へsheet2のF10・・・(内容は文字列) 集計sheetのB5へsheet1のG10、B6へsheet2のG10・・・(内容は数値) とコピーしていき、B30にはB5~B29の合計がSUM関数で入っています。 VBAで、集計sheetから左側のsheetの指定セルを一気に集計sheetへコピーしてくる方法はないでしょうか。 ただし集計sheetから左側のsheet21とsheet22は集計に入れたくないという式も教えて頂きたいです。 お時間のある方、ご教授下さい。 または別の質問で参考になるようなものがあればアドレスを教えて下さい。 説明が下手で申し訳ないですが、どうぞよろしくお願いします。

  • 特定のシート見出しの色のシートを作業グループにする方法を教えてください

    特定のシート見出しの色のシートを作業グループにする方法を教えてください。 VBA初心者です。 シート見出しの色でシートを分類しています。 特定のシート見出しの色のシートを作業グループにして、削除や印刷をしたいのですが、 できるのでしょうか。 シートのタイトルはそれぞればらばらなので、シート名ではできません。 よろしくご教示ください。

  • クロス集計クエリ 必ず、列見出しを作らないとだめ?

    アクセスでクロス集計クエリを作る際は 必ず、列見出しを作らないとだめですか? 行見出しと値だけあればいいので、 列見出しを消したらエラーになります。 結局 --------------------------- フィールド:test: "ダミー" 集計:グループ化 行列の入れ替え:列見出し --------------------------- というダミーを作ったのですが 列見出しがいらない場合は この方法をやるしかないのでしょうか?

専門家に質問してみよう