アプリ版:「スタンプのみでお礼する」機能のリリースについて

Excelで複数シート上の同じセルにある表を一つにまとめたいです。
表はBQ6:CS6で、A:BPにある表の集計が入ってます。
多数のシート上のBQ6:SC6の表を一つのシートに値で貼り付けていきたいのですが、
シート名が固定でないこと、シート数が20~30と複数あり、数も決まってないこと、
そんなブックがいくつもあり非常に困っております。
VBAの貼り付け、マクロの自動登録くらいのスキルしかありません。

どなたかお知恵を貸して下さい。お願い致します。

A 回答 (5件)

同一ブック内にシートを追加し、指定範囲をA1基点に下方向に連続コピー



Sub Macro1()
Dim sno As Integer
Dim I As Integer
sno = Worksheets().Count

Sheets(1).Select
Sheets.Add

For I = 2 To sno + 1
Sheets(I).Range("BQ6:SC6").Copy
Sheets(1).Range("A65535").End(xlUp).Offset(1, 0).Select
ActiveSheet.Paste
Next
End Sub

適当に手直しをしてください。
    • good
    • 1
この回答へのお礼

回答ありがとうございます。
実行してみましたがデバックがおきてしまいました><

実行時エラー'1004'
アプリケーション定義またはオブジェクト定義のエラーです。

と表示がでます。改善点のヒントがあれば頂きたいです。
何度も申し訳ございません。

お礼日時:2009/01/03 19:54

実行時エラー'1004'


アプリケーション定義またはオブジェクト定義のエラーです。

私もエラーになりますよ、エクセル2003ですからSC列までは列取れませんから。
2007なら可能でしょうけど。
    • good
    • 0
この回答へのお礼

回答ありがとうございます。
SCじゃなくてCSでした><
どんくさいミスしてすいませんでした(´・ω・`)
うまく起動できました。
本当に助かりました。ありがとう御座います。

お礼日時:2009/01/03 21:53

ChocoBambiさんがやりたいことって、ただ「値」に変換することですか。


拝見したコードは、個々のシートを「値」で貼り付けしているだけです。
個々のシートにある表を、一つのシートに纏めたい、のではなかったのですか?
実作業(やりたいこと)を、「マクロの記録」してくださいと、アドバイスを差し上げました。
コードを拝見すれば、例えば、For~Loop出来るような規則性があるのかどうか判断ができます。
残念ながら、提示していただいたコードでは何も分かりません。

> Sheets("Sheet1").Select
> Cells.Select
> Range("AC1").Activate
> Selection.Copy
> Selection.PasteSpecial Paste:=xlPasteValues, _
Operation:=xlNone, SkipBlanks:=False, Transpose:=False

Sheets("Sheet1").Cells.Copy
Sheets("Sheet1").Cells.PasteSpecial Paste:=xlPasteValues, _
  Operation:=xlNone, SkipBlanks:=False, Transpose:=False
あるいは
With Sheets("Sheet1")
  .Cells.Copy
  .Cells.PasteSpecial Paste:=xlPasteValues, _
    Operation:=xlNone, SkipBlanks:=False, Transpose:=False
End With
というように纏めることができます。
    • good
    • 0
この回答へのお礼

大変申し訳ありません。
VBAの内容を理解せず文を区切ってしまったために、
最初に値にして貼り付けるの値にするところだけ抜粋してしまいました><
以下のコードが貼り付けの内容です。
ちなみに1.全部のシートを値にする。
    2.BQ6から表のある範囲をCtrl+Shiftで表のある範囲を指定
      表は(BQ6:SC6)一番左のセルだけ項目まで
      コピーしてますがそれはなくても構いません。
    3.集計というシートに貼り付け
ご指定ありがとうございます。
値のコードも纏めてみます^^
Sheets("○").Select
Range("BQ5:CS6").Select
Application.CutCopyMode = False
Selection.Copy
Sheets("集計").Select
Range("A1").Select
ActiveSheet.Paste
Sheets("△").Select
Range("BQ6").Select
Range(Selection, Selection.End(xlToRight)).Select
Application.CutCopyMode = False
Selection.Copy
Sheets("集計").Select
Range("A3").Select
ActiveSheet.Paste
Sheets("□").Select
Range("BQ6").Select
Range(Selection, Selection.End(xlToRight)).Select
Application.CutCopyMode = False
Selection.Copy
Sheets("集計").Select
Range("A4").Select
ActiveSheet.Paste

お礼日時:2009/01/03 20:11

マクロ作成時



>シート名が固定でない
Worksheets(シート番号)で指定すればシート名に左右されない。

>シート数が20~30と複数あり、数も決まってないこと
Worksheets.Countでシート数は確認できます。

For~Next文でセル範囲コピーを繰り返すことで集計できると思います。
    • good
    • 0
この回答へのお礼

早速のご回答ありがとうございます。
自分でVBAを解析する能力はなくて、For~Next文もどこに追加してよいのか分かりません。
WorkSheet(シート番号)でやるとセルの指定ができなくなってしまいます。
Worksheet,Countをどこにつけていいのかわかりません。
自業自得ですが、VBAのヘルプ機能はCDを無くしてしまって使えなくなってしまいました。
せっかくヒントを下さったのに申し訳ありませんが、自分で書き換えるのはやはりうまくいきませんでした(´・ω・`)

お礼日時:2009/01/03 17:48

> VBAの貼り付け、マクロの自動登録くらいのスキルしかありません。


これを機会に、理解を深めていってください。

コードを拝見した方がアドバイスし易くなります。
表を2~3個、一つのシートにコピペする作業を「マクロの記録」して、得られたコードを提示してください。

表を纏めるシートをシート1と仮定します。シート1から記録を始めてください。
表のあるシートに移動、表の範囲を選択、コピー、シート1で「形式を選択して貼り付け」の「値」で貼り付け。
表の罫線とかも貼り付けるなら、そのままの状態で「形式を選択して貼り付け」の「書式」で貼り付け
次の表のあるシートに移動、以下同じ作業の繰り返し
といった手順になると思います。

全ブックの表を、ひとつのシートに集めるのですか?
それともブック単位で行えばよいのですか?
    • good
    • 0
この回答へのお礼

アドバイスありがとうございます。
こちらの情報が少なくて、申し訳ありませんでした。
ブック単位で集計です。
コードをとってみました・・・がとても自信がありません><
シート名は各店舗の名前が入っているので数字に変えてみました。
Sheets("1").Select
Cells.Select
Range("AC1").Activate
Selection.Copy
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
Sheets("2").Select
Cells.Select
Range("AI1").Activate
Application.CutCopyMode = False
Selection.Copy
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
Sheets("3").Select
Cells.Select
Range("U1").Activate
Application.CutCopyMode = False
Selection.Copy
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False

お礼日時:2009/01/03 18:04

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人はこんなQ&Aも見ています