
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で質問しましょう!
このQ&Aを見た人はこんなQ&Aも見ています
-
プロが教える店舗&オフィスのセキュリティ対策術
中・小規模の店舗やオフィスのセキュリティセキュリティ対策について、プロにどう対策すべきか 何を注意すべきかを教えていただきました!
-
【至急】 当方初心者です。 マクロについて知恵をお貸しください。 ★したい動作 ①リストE列2行目か
Visual Basic(VBA)
-
初めてマクロを入力しますが、テキストとおりに入力したのに構文エラーです。修正を教えてください。
Visual Basic(VBA)
-
該当セルの値を別ブックのシート名と一緒であればコピーしてほしい
Visual Basic(VBA)
-
4
VBAの計算について
Visual Basic(VBA)
-
5
【VBAエラー】Nextに対するForがありません 対策について
Visual Basic(VBA)
-
6
ExcelのVBAでシフト表を作っていますが、バグが出て困っています
Visual Basic(VBA)
-
7
VBAでのMATCH関数
Visual Basic(VBA)
-
8
VBAで重複データを確認したい
Visual Basic(VBA)
-
9
VBAコードで質問があります
Visual Basic(VBA)
-
10
Excel VBAでAA(BBB) → BBB.AA に置換したい
Visual Basic(VBA)
-
11
VBA言語プログラミング
Visual Basic(VBA)
-
12
vbaの計算 if elseと範囲について
Visual Basic(VBA)
-
13
【マクロ】表への繰り返し転記について
Visual Basic(VBA)
-
14
Sheet1をフィルターで「りんご」を抽出し、Sheet2へ地域を貼り付ける下記マクロを変更して S
Visual Basic(VBA)
-
15
Excel VBAのデバッグ
Visual Basic(VBA)
-
16
エクセル 2つの列にある値の完全一致を抜き出すVBA
Visual Basic(VBA)
-
17
【ご教示ください】VBAの記述方法がわかりません。
Visual Basic(VBA)
-
18
以前シートを集めて1シートへ繋げる下記コードをご教授いただき作成しました。 今回すでに集めてある「ま
Visual Basic(VBA)
-
19
指定文字を太字にするVBAを別シートのセルを指定する構文(改良について)
Visual Basic(VBA)
-
20
データを製品別に集計
Visual Basic(VBA)
関連するカテゴリからQ&Aを探す
このQ&Aを見た人がよく見るQ&A
人気Q&Aランキング
-
4
別のシートを参照して計算する方法
-
5
【ExcelVBA】全シートのセルの...
-
6
Excel VBA 複数行を数の分だけ...
-
7
エクセル・マクロ シートの非...
-
8
実行時エラー'1004': WorkSheet...
-
9
【VBA】特定の文字が入っている...
-
10
EXCEL VBAで複数シートから該当...
-
11
ユーザーフォームに入力したデ...
-
12
VBA 存在しないシートを選...
-
13
EXCEL VBAで複数シート内のセル...
-
14
エクセルの特定のシートのみを...
-
15
VBA(Excel):他のブックからシー...
-
16
ExcelのVBAのマクロで他のシー...
-
17
【VBA】全ての複数シートから指...
-
18
エクセルのマクロでアクティブ...
-
19
C#でExcelのシートを選択する方法
-
20
エクセルのひとつのシートへの...
おすすめ情報
公式facebook
公式twitter
ありがとうございます。計算式は「マクロの記録」で確認出来ました。
もう一つ、言葉足らずですみません。コピー元シートAのシート名を日付にしているため常にコピー元のシート名が変わります。この場合の書き方も教えていただけますでしょうか。
ご回答ありがとうございます。シートは日々増えていき、その時の一番右のシートの右側にシートコピーしますので、シートをコピーした時の一番右のシートの特定セルとその左隣のシートの特定セルを足し算する式をマクロに組み込みたいと考えています。
シートの並びは↓このような感じです。
(「sheet1」[sheet2」「sheet3」「sheet(コピー元)」「sheet(新シート)」)
正確に質問の意図をお伝え出来ておらず申し訳ございません。
よろしくお願いいたします。