こんばんは。
ご教示をお願いします。
シート(左から)
「集計」「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も見ています
-
新NISA制度は今までと何が変わる?非課税枠の拡大や投資対象の変更などを解説!
少額から投資を行う人のための非課税制度であるNISAが、2024年に改正される。おすすめの銘柄や投資額の目安について教えてもらった。
-
エクセルでシート数が分からない場合の串刺し計算
Excel(エクセル)
-
ExcelVBAで複数シートの足し算
Visual Basic(VBA)
-
VBAでExcelのBookの串刺し集計
その他(プログラミング・Web制作)
-
-
4
エクセル 複数シートの同一セルを別シートへ集計
Visual Basic(VBA)
-
5
別のシートを参照して計算する方法
Visual Basic(VBA)
-
6
串刺し計算のシート選択を曖昧な条件で指定できませんでしょうか?
Visual Basic(VBA)
-
7
◾️Excel VBA 統合について Consolidateメソッドを使用する際、Excelブックを
Visual Basic(VBA)
-
8
Excel VBA 串刺し計算について
Visual Basic(VBA)
-
9
別のシートから値を取得するとき
Visual Basic(VBA)
-
10
エクセルのエラーメッセージ「400」って?
Visual Basic(VBA)
-
11
VBA 変数名に変数を使用したい。
Visual Basic(VBA)
-
12
vba 時間の引き算 例えば 15:00から16:15の間の時間は1時間15分ですが、vbaのコード
Visual Basic(VBA)
-
13
EXCELのVBAでシートコピーをしたとき元のマクロを削除するには?
Excel(エクセル)
-
14
ブック名、シート名を他のモジュールからも参照可能にする方法
Access(アクセス)
-
15
エクセルVBAでConsolidate
Excel(エクセル)
-
16
UserForm1.Showでエラーになります。
工学
-
17
エクセルVBAのIF文の否定の複数条件
Excel(エクセル)
-
18
数式による空白を無視して最終行を取得するマクロ
Excel(エクセル)
-
19
Excel VBAでのWorksheet_Changeが動作しない原因
Excel(エクセル)
-
20
特定の複数のシートに同じ処理をさせたい
Excel(エクセル)
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
Excelで同じシートのコピーを一...
-
エクセルの複数シートの保護を...
-
エクセルVBAでパスの¥マークに...
-
EXCEL:同じセルへどんどん足し...
-
別シート参照のセルをシート毎...
-
エクセルで前のシートを連続参...
-
VBAでシートコピー後、シート名...
-
シートの保護のあとセルの列、...
-
エクセルで前シートを参照して...
-
EXCELで1ヶ月分の連続した日付...
-
前の(左隣の)シートを連続参...
-
Accessのスプレッドシートエク...
-
エクセルでファイルを開いたと...
-
エクセルでシート名を自動入力...
-
Excel、同じフォルダ内のExcel...
-
【Excel関数】値が合致するセル...
-
EXCELで同一フォーマットのシー...
-
至急お願いします。エクセルシ...
-
Excelの複数ファイルの複数行を...
-
複数シートの固定のセルの値を...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
Excelで同じシートのコピーを一...
-
エクセルの複数シートの保護を...
-
エクセルVBAでパスの¥マークに...
-
前の(左隣の)シートを連続参...
-
Excelで金銭出納帳。繰越残高を...
-
EXCEL:同じセルへどんどん足し...
-
EXCELで1ヶ月分の連続した日付...
-
シートの保護のあとセルの列、...
-
別シート参照のセルをシート毎...
-
エクセルでファイルを開いたと...
-
EXCELで同一フォーマットのシー...
-
エクセルで前のシートを連続参...
-
エクセルで前シートを参照して...
-
VBAでシートコピー後、シート名...
-
Accessのスプレッドシートエク...
-
エクセルのシート名をリスト化...
-
複数シートの特定の位置に連番...
-
Excelのシートを、まとめて表示...
-
エクセル 計算式も入っていない...
-
スプレッドシートの関数VLOOKUP...
おすすめ情報