
VBAマクロの初級者です。ようやく実務でマクロを使い始めましたが躓く事ばかりです。
今回はあるブックの中のシートAをコピーして作成したシートBの「A3セル」への「シートAのA1セル」と「シートBのA2セル」の合計の仕方を教えていただけないでしょうか。
シートをコピーして左のシート(コピー元)の特定セルとアクティブシート(コピーしたシート)の特定セルの合計を出すようなマクロを作ってみましたがエラーも出ず結果も反映されずといった状態になってしまいます。よろしくお願いいたします。
No.3ベストアンサー
- 回答日時:
以下のようにしてください。
Sub 合計()
Dim shA As Worksheet
Dim shB As Worksheet
Set shA = Worksheets(Worksheets.Count - 1)
Set shB = Worksheets(Worksheets.Count)
shB.Range("A3").Value = shA.Range("A1").Value + shB.Range("A2").Value
End Sub
No.5
- 回答日時:
#4です
関係のない所ですが訂正します
sht.Select・・・×
正しくは
If Not sourceSht Is Nothing Then sourceSht.Select
No.4
- 回答日時:
こんにちは
VBAでシートを扱う場合、オブジェクト変数にSetすると分かり易くなります
特定シートなどの場合
名前やオブジェクト名で特定
Worksheets("Sheet1") や Sheet1 (プロパティウィンドウに表示されるオブジェクト名)
新規シートなどの場合
インデックスで特定
Worksheets(1) やWorksheets(Worksheets.Count)
(Worksheets.Countはワークシートの数を取得していますので一番右のシートを指します)(sheets.Countの方が適切かもしれません)
以上を踏まえると
Dim newSht As Worksheet '新シート(一番右)
Dim sourceSht As Worksheet 'コピー元?(右から2番目)
Dim defaultSht As Worksheet '特定シート
Set newSht = Worksheets(Worksheets.Count)
Set sourceSht = Worksheets(Worksheets.Count - 1)
Set defaultSht = Worksheets("Sheet1")
*Worksheets.Count - 1 シートが1シートしかない場合はエラーが返ります
他にもこんな方法も例
sourceShtを取得する(場所がわからないが名前が昨日になっている)
Dim sourceSht As Worksheet '場所がわからない
Dim sht As Worksheet
For Each sht In Worksheets
If sht.Name = Format(Date - 1, "yyyymmdd") Then
Set sourceSht = sht
Exit For
End If
Next
sht.Select
シートが特定できれば計算は出来ますよね
前の方のご回答プラスですごく丁寧にご説明いただき有難うございました。すごく勉強になりました。ベストアンサーは大変迷いましたが、前の方のご回答で計算式をセットすること自体は出来ましたので大変申し訳ございませんが前の方にベストアンサーを付けさせていただきました。まだまだマクロを勉強する必要がある身としましては一番勉強になりました。ありがとうございました。
No.1
- 回答日時:
こんにちは
>シートAをコピーして作成したシートBの~
そのままなら、「シートAのA1セル」は「シートBのA1セル」と同じなので、わざわざ別シートを参照する必要もなさそうに思えますが、そのあたりがどうなっているのか不明なので、ご質問文のままとして・・
Worksheets("シートB").Range("A3").Value = Worksheets("シートA").Range("A1").Value + Worksheets("シートB").Range("A2").Value
とかではいかがでしょうか。
タイトルに、
>計算式の入れ方を教えて下さい。
とあるので、計算式を設定したいという意味でしょうか?
もしそうなら、「マクロの記録」を利用して、計算式を設定する操作を記録してみれば得られると思います。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Excel(エクセル) エクセルのマクロについて教えてください。 2 2023/02/26 13:19
- Excel(エクセル) エクセルのマクロについて教えてください。 1 2023/02/25 11:55
- Excel(エクセル) エクセルのマクロでコピー後の貼り付け先を毎回指定したところにしたい 5 2022/08/12 10:47
- Excel(エクセル) エクセルのマクロについて教えてください。 3 2023/02/07 14:47
- Visual Basic(VBA) vbaエクセルマクロ RemoveDuplicatesについて RemoveDuplicatesを使 3 2023/02/28 01:13
- Excel(エクセル) Excel シート複数 金額日計表と日付 簡単にシートコピーしたら前日の残高と日付を変更させたい 1 2022/07/15 22:10
- Visual Basic(VBA) エクセルのマクロについて教えてください。 1 2023/08/03 11:27
- Visual Basic(VBA) エクセルのマクロについて教えてください。 1 2023/08/03 12:30
- Visual Basic(VBA) Excel VBA 最終行を取得しVlookup関数をコピーする方法をコーディングで教えてください。 3 2023/05/11 13:14
- Visual Basic(VBA) エクセルのマクロについて教えてください。 4 2023/05/24 08:33
このQ&Aを見た人はこんなQ&Aも見ています
-
マクロ 新しいシートにデータをコピペしてシートの名前を変更したい
Excel(エクセル)
-
エクセル:マクロ「Application.CutCopyMode = False」って?
Excel(エクセル)
-
シートを追加・名前を次月に変更、前月内容を貼り付け
Excel(エクセル)
-
-
4
【ExcelVBA】マクロの入ったシートをコピーしても新しいシート内でマクロを動作させるには?
Excel(エクセル)
-
5
エクセルのエラーメッセージ「400」って?
Visual Basic(VBA)
-
6
EXCEL関数でシート名が変わる可能性があるシートのデータを表示させたい
その他(ソフトウェア)
-
7
エクセルのセル内の「数式」の一括変更をVBAなどで行いたいです!
Visual Basic(VBA)
-
8
セルをクリック⇒そのセルに入力された文字を○で囲む
Excel(エクセル)
-
9
【EXCEL】【VBA】空欄は飛ばして処理する方法を教えて下さい。
Excel(エクセル)
-
10
エクセル ボタンに設定したマクロごとボタンをコピー
Excel(エクセル)
-
11
別シート参照のセルをシート毎にずらしたいです
Excel(エクセル)
-
12
【VBA】2つのシートの値を比較して条件一致したら、同じ行の隣の値を別ブックへ転記したいです。 VB
Visual Basic(VBA)
-
13
Excel_マクロ_現在開いているシートにマクロを実行したいです
Visual Basic(VBA)
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
excelのマクロで該当処理できな...
-
Excelマクロのエラーを解決した...
-
特定の文字を含むシートだけマ...
-
【ExcelVBA】全シートのセルの...
-
実行時エラー'1004': WorkSheet...
-
エクセルVBA Ifでシート名が合...
-
XL:BeforeDoubleClickが動かない
-
シート名の一部を変更する方法...
-
ユーザーフォームに入力したデ...
-
シートが保護されている状態で...
-
別のシートから値を取得するとき
-
VBAで指定シート以外の選択
-
ExcelVBAから,引数を渡してVBs...
-
エクセルで通し番号を入れてチ...
-
VBAマクロでシートコピーした新...
-
VBAで以下の処理をする方法があ...
-
ExcelVBA:複数の特定のグラフ...
-
userFormに貼り付けたLabelを変...
-
【VBA】全ての複数シートから指...
-
Excel VBA リンク先をシート...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
特定の文字を含むシートだけマ...
-
Excelマクロのエラーを解決した...
-
excelのマクロで該当処理できな...
-
ユーザーフォームに入力したデ...
-
実行時エラー'1004': WorkSheet...
-
XL:BeforeDoubleClickが動かない
-
エクセルVBA Ifでシート名が合...
-
実行時エラー1004「Select メソ...
-
エクセルのシート名変更で重複...
-
【ExcelVBA】全シートのセルの...
-
VBA 存在しないシートを選...
-
ブック名、シート名を他のモジ...
-
Excel チェックボックスにチェ...
-
VBA 検索して一致したセル...
-
エクセルで通し番号を入れてチ...
-
シートが保護されている状態で...
-
【VBA】特定の文字で改行(次の...
-
ExcelのVBAのマクロで他のシー...
-
Worksheet_Changeの内容を標準...
-
EXCELVBAを使ってシートを一定...
おすすめ情報
ありがとうございます。計算式は「マクロの記録」で確認出来ました。
もう一つ、言葉足らずですみません。コピー元シートAのシート名を日付にしているため常にコピー元のシート名が変わります。この場合の書き方も教えていただけますでしょうか。
ご回答ありがとうございます。シートは日々増えていき、その時の一番右のシートの右側にシートコピーしますので、シートをコピーした時の一番右のシートの特定セルとその左隣のシートの特定セルを足し算する式をマクロに組み込みたいと考えています。
シートの並びは↓このような感じです。
(「sheet1」[sheet2」「sheet3」「sheet(コピー元)」「sheet(新シート)」)
正確に質問の意図をお伝え出来ておらず申し訳ございません。
よろしくお願いいたします。