エクセルVBA初心者です。
以下のVBAの記述をお教えいただきたく思います。
かなり検索を行ったのですが、しっくりと理解できませんでした・・。
シート1とシート2があり、シート2における足し算結果をシート1に反映させる、というだけのことなのですが・・
例えば、シート1のA1セルに「=SUM(シート2!A1:A*)」の結果をマクロで反映させたいのです。
シート2におけるsum関数は、データ数が変動するので仮にA1から「A*」と仮にしていますが、
このことを踏まえた場合のVBAの記述はどのようになるのでしょうか。
お教え下さい、よろしくお願い致します。
No.1ベストアンサー
- 回答日時:
>しっくりと理解できませんでした・・。
⇒どの辺がしっくりこないかを質問した方が今後の為と思えますが如何でしょうか。
一例です。
例1.Range("A1").Formula = "=Sum(Sheet2!A:A)" ’SUM関数の代入
例2.Range("A1").Value = Application.Sum(Sheets(2).Range("A:A")) 'SUM関数で処理
例3.For~Nextでループ加算
With Sheets("sheet2")
For i = 1 To .Cells(Rows.Count, "A").End(xlUp).Row
wk = wk + .Cells(i, "A")
Next
End With
Range("A1").Value = wk
解決しました!
例1に近い記述で自分も書いていたのですが、エラーが出まくってしまい、検索を行っても何が悪いのか分かりませんでした。
しかし、いただいた答えと見比べてみますと、カッコをつけなくていいところでつけていたり、といった基本的な部分での理解ができていなかったことが原因でした。
ありがとうございました。
No.2
- 回答日時:
解決方法のその1:
VBAにする必要もありません。最初からシート1に
=SUM(Sheet2!A:A)
と書いておくだけのことです。
「データ数が不明」だと何が困るのか状況説明が書いてないので具体的な提案が出来ませんが,仮にたとえばシート2の最終行には「総計」があるので合計に含みたくないなら
=SUM(Sheet2!A:A)/2
のようにしておくこともできます。
解決方法のその2:
理由は聞きませんがどうしてもマクロが使いたいなら
sub macro1()
with worksheets("Sheet1").range("A1")
.formula = "=SUM(Sheet2!A:A)"
.value = .value
end with
end sub
などのような書きぶりで値化する手がお奨めです
解決方法その3:
最後の行の調べ方の定石は
sub macro2()
dim r as long
r = worksheets("Sheet2").range("A65536").end(xlup).row
worksheets("Sheet1").range("A1").formula = "=SUM(Sheet2!A1:A" & r & ")"
end sub
といった具合なので,憶えておいてください。
ご回答いただきありがとうございました。
「SUM(Sheet2!A:A)」これで解決だったのですが、変に考え込んでしまい、基本が出来ていないのにend(xlup).rowを組み込んでいたりしてドツボにはまっていました。
英語や少々難しい漢字のように「読むだけなら大まかな意味が分かるが、いざ書こうと思ったらかけない」状態でした。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
- ・漫画をレンタルでお得に読める!
- ・人生のプチ美学を教えてください!!
- ・10秒目をつむったら…
- ・あなたの習慣について教えてください!!
- ・牛、豚、鶏、どれか一つ食べられなくなるとしたら?
- ・【大喜利】【投稿~9/18】 おとぎ話『桃太郎』の知られざるエピソード
- ・街中で見かけて「グッときた人」の思い出
- ・「一気に最後まで読んだ」本、教えて下さい!
- ・幼稚園時代「何組」でしたか?
- ・激凹みから立ち直る方法
- ・1つだけ過去を変えられるとしたら?
- ・【あるあるbot連動企画】あるあるbotに投稿したけど採用されなかったあるある募集
- ・【あるあるbot連動企画】フォロワー20万人のアカウントであなたのあるあるを披露してみませんか?
- ・映画のエンドロール観る派?観ない派?
- ・海外旅行から帰ってきたら、まず何を食べる?
- ・誕生日にもらった意外なもの
- ・天使と悪魔選手権
- ・ちょっと先の未来クイズ第2問
- ・【大喜利】【投稿~9/7】 ロボットの住む世界で流行ってる罰ゲームとは?
- ・推しミネラルウォーターはありますか?
- ・都道府県穴埋めゲーム
- ・この人頭いいなと思ったエピソード
- ・準・究極の選択
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
コマンドボタンがデザインモー...
-
【 Excel】シートの見出しに自...
-
EXCELのエラー
-
EXCELでマクロを使わずに図形の...
-
シートを保護した時でも並べ替...
-
エクセルを開いたとき常に同じ...
-
VBA シート名を先月の名前に...
-
マクロを複数シートに実行する...
-
左隣のシートをコピーして挿入
-
EXCELでワークシートを開いたら...
-
ExcelのSheetに作られたMacro1...
-
マクロ 各シートの決められた位...
-
エクセルVBAでcmbBoxのプロパテ...
-
エクセルシートのセルに現在時...
-
VBAでユーザーに別ファイルのシ...
-
VBAで条件によってシート見出し...
-
複数シートの保護・解除
-
EXCELの起動時に常に同じ...
-
エクセルのマクロでMACアドレス...
-
エクセルでシートを消すマクロ
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
コマンドボタンがデザインモー...
-
マクロを複数シートに実行する...
-
【 Excel】シートの見出しに自...
-
エクセルを開いたとき常に同じ...
-
エクセルでシートの並び替えで...
-
VBAで条件によってシート見出し...
-
マクロを特定の複数シートで実...
-
Excelのマクロの呼び出し元を知...
-
EXCELでワークシートを開いたら...
-
複数シートの保護・解除
-
エクセルで複数のSheetを一括フ...
-
エクセル2013でマクロのボタン...
-
VBA シート名を先月の名前に...
-
EXCELでマクロを使わずに図形の...
-
EXCELの起動時に常に同じ...
-
EXCELのエラー
-
メッセージボックスでシート名...
-
エクセルVBAでcmbBoxのプロパテ...
-
マクロ 各シートの決められた位...
-
エクセルで回数をカウントする...
おすすめ情報