
こんばんは。
ご教示をお願いします。
シート(左から)
「集計」「1月」「2月」「3月」があります。
「1月」「2月」「3月」のシートのA1セルの値(数値)の合計を集計表に表示させたいと思っています。
しかし、時として「4月」「5月」など、集計元のシート数が変更します。
このため、VBAでシート数をカウントし、シート数の増減に対応したいと思っていますができません。
以下のプロシージャの「ここの書き方がわかりません」の部分に、シートをインデックスで指定しましたがエラーとなってしまいます。(WorkSheets(2):WorkSheets(WorkSheets.count!RC)
解決策があれば、よろしくお願いします。(エクセル2016使用)
sheets(1).range("A1").Select
Selection.formulaR1C1="=SUM(「ここの書き方がわかりません」!RC)"
No.3ベストアンサー
- 回答日時:
こんなので良いんでしょうか?
.FormulaR1C1 = "=SUM(" & Worksheets(2).Name & ":" & Worksheets(Worksheets.Count).Name & "!RC)"
ただ、マクロ実行後にシート位置を移動しちゃうと、再計算されて値が変わっちゃいますよ?
トラブルの原因になりそうなので、数式→値に変換しといた方が良いような気がします。
No.2
- 回答日時:
こんばんは!
お望みの串刺し計算の方法ではありませんが、
一例です。
インプットボックスで集計したいシートを選択するようにしてみました。
標準モジュールです。
Sub Sample1()
Dim k As Long
Dim sN As String
Dim myAry
1: sN = sN & "_" & Application.InputBox("集計したいシート名を入力")
If MsgBox("他にも集計したいシートがありますか?", vbYesNo) = vbYes Then
GoTo 1
Else
sN = Mid(sN, 2, Len(sN))
myAry = Split(sN, "_")
With Worksheets("集計").Range("A1")
If UBound(myAry) > 0 Then
MsgBox sN & vbCrLf & "シートの集計をします"
.Value = 0
For k = 0 To UBound(myAry)
On Error Resume Next '//←念のため★//
.Value = .Value + Worksheets(myAry(k)).Range("A1")
Next k
End If
End With
End If
End Sub
こんな感じではどうでしょうか?
※ 細かいエラー処理(例えば存在しないシート名の入力などの回避)が必要かもしれませんが、
まずはこの程度で・・・m(_ _)m
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Excel(エクセル) vba シートの並び替え 1 2023/04/19 13:44
- Excel(エクセル) エクセルVBA VLOOKUPを使ってのカウント作業 2 2023/02/19 09:03
- Visual Basic(VBA) 以前シートを集めて1シートへ繋げる下記コードをご教授いただき作成しました。 今回すでに集めてある「ま 1 2022/08/29 20:38
- Visual Basic(VBA) excel vbaでvlooupの変数がわかりません。 7 2022/05/30 09:35
- Excel(エクセル) エクセルシートの合計の変動 5 2022/04/05 15:56
- Excel(エクセル) 前の(左隣の)シートを連続参照するように、あとから変更したい 1 2023/02/22 00:51
- Visual Basic(VBA) エクセル VBA 処理スピードを上げたいのですが。 6 2023/03/31 20:52
- Visual Basic(VBA) 別ブックからシートのコピー 3 2022/04/01 20:07
- Visual Basic(VBA) 3つのプロシージャをまとめたら実行時エラー発生で対応不能 6 2022/05/17 01:47
- Excel(エクセル) シート参照を含む数式を連続コピー 3 2022/12/10 11:42
このQ&Aを見た人はこんなQ&Aも見ています
-
エクセルでシート数が分からない場合の串刺し計算
Excel(エクセル)
-
◾️Excel VBA 統合について Consolidateメソッドを使用する際、Excelブックを
Visual Basic(VBA)
-
indirect 関数を使った複数シートの範囲指定方法
Excel(エクセル)
-
-
4
VBAでファイルを開くときにファイル名でワイルドカードを使用したいです
その他(プログラミング・Web制作)
-
5
VBAでExcelのBookの串刺し集計
その他(プログラミング・Web制作)
-
6
エクセル:マクロ「Application.CutCopyMode = False」って?
Excel(エクセル)
-
7
VBAでセル入力の数式に変数を用いたい
Excel(エクセル)
-
8
vba 2つの条件が一致したらコピーして別シートに値のみ貼り付け
Visual Basic(VBA)
-
9
【Excel VBA】 Excelの統合機能の、統合元範囲の記述に関して教えてください
Excel(エクセル)
-
10
エクセルVBAで、条件に一致するセルへ移動
Excel(エクセル)
-
11
別のシートから値を取得するとき
Visual Basic(VBA)
-
12
エクセルVBAでConsolidate
Excel(エクセル)
-
13
エクセル イベントマクロ Changeイベントを複数作りたい
Access(アクセス)
-
14
ExcelVBAを使って、値がある場合は作業を繰り返し実行するプログラムを作成したい。
Visual Basic(VBA)
-
15
串刺し計算ができない
Excel(エクセル)
-
16
エクセルでシート数が増加する場合の串刺し計算
Excel(エクセル)
-
17
VBA アクティブでないシートのセルを選択したり、クリアしたり
Excel(エクセル)
-
18
エクセルVBA 4行飛ばしで転記するループ処理
Excel(エクセル)
-
19
Excel VBAで複数シートから該当列のみを新規シートに貼り付け、集計をする方法
Visual Basic(VBA)
-
20
実行時エラー 438になった時の対処法を教えて下さい。
Visual Basic(VBA)
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
特定のセルだけ結果がおかしい...
-
エクセルの複数シートの保護を...
-
前の(左隣の)シートを連続参...
-
別シート参照のセルをシート毎...
-
Excelで金銭出納帳。繰越残高を...
-
エクセルで前シートを参照して...
-
エクセル 計算式も入っていない...
-
エクセルでファイルを開いたと...
-
EXCEL:同じセルへどんどん足し...
-
Excel シートに画像が貼ってあ...
-
シート番号からシート名を取得する
-
excelで会議室予約表の作成(マ...
-
EXCELで同一フォーマットのシー...
-
特定のシートの削除を禁止した...
-
ワードのマクロについて教えて...
-
EXCELで1ヶ月分の連続した日付...
-
VBAでシートコピー後、シート名...
-
エクセルで前のシートを連続参...
-
Excelワークシートのセル間移動
-
テキストボックスの移動(2)
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
特定のセルだけ結果がおかしい...
-
エクセルの複数シートの保護を...
-
前の(左隣の)シートを連続参...
-
別シート参照のセルをシート毎...
-
エクセルで前シートを参照して...
-
Excel、同じフォルダ内のExcel...
-
特定のシートの削除を禁止した...
-
EXCEL:同じセルへどんどん足し...
-
エクセル 計算式も入っていない...
-
Excelで金銭出納帳。繰越残高を...
-
複数シートの特定の位置に連番...
-
エクセルでファイルを開いたと...
-
シートの保護のあとセルの列、...
-
Accessのスプレッドシートエク...
-
VBAで条件によりフォントサイズ...
-
VBAでシートコピー後、シート名...
-
エクセルで前のシートを連続参...
-
エクセルVBAでパスの¥マークに...
-
EXCELで同一フォーマットのシー...
-
Excelで同じシートのコピーを一...
おすすめ情報