
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も見ています
-
マクロ 新しいシートにデータをコピペしてシートの名前を変更したい
Excel(エクセル)
-
エクセル:マクロ「Application.CutCopyMode = False」って?
Excel(エクセル)
-
シートを追加・名前を次月に変更、前月内容を貼り付け
Excel(エクセル)
-
-
4
エクセルのセル内の「数式」の一括変更をVBAなどで行いたいです!
Visual Basic(VBA)
-
5
別シート参照のセルをシート毎にずらしたいです
Excel(エクセル)
-
6
【ExcelVBA】マクロの入ったシートをコピーしても新しいシート内でマクロを動作させるには?
Excel(エクセル)
-
7
エクセルのエラーメッセージ「400」って?
Visual Basic(VBA)
-
8
EXCELで特定のセルに表示された項目をヘッダーやフッターに出力するには
Excel(エクセル)
-
9
【Excel】 セルの色での判断はできますか?
Excel(エクセル)
-
10
EXCEL関数でシート名が変わる可能性があるシートのデータを表示させたい
その他(ソフトウェア)
-
11
エクセルのマクロ機能で前のシートに返るVBAはどうかくか
Excel(エクセル)
-
12
エクセル ボタンに設定したマクロごとボタンをコピー
Excel(エクセル)
-
13
【EXCEL】【VBA】空欄は飛ばして処理する方法を教えて下さい。
Excel(エクセル)
-
14
エクセルvbaで、別シートの最下行にデータを取り込むコードを教えてください。
Visual Basic(VBA)
-
15
Excel_マクロ_現在開いているシートにマクロを実行したいです
Visual Basic(VBA)
-
16
別ファイルを開かず、INDIRECT関数を使用せずに、別ファイルのデータを求めたい
Excel(エクセル)
関連するカテゴリからQ&Aを探す
今、見られている記事はコレ!
-
弁護士が解説!あなたの声を行政に届ける「パブリックコメント」制度のすべて
社会に対する意見や不満、疑問。それを発信する場所は、SNSやブログ、そしてニュースサイトのコメント欄など多岐にわたる。教えて!gooでも「ヤフコメ民について」というタイトルのトピックがあり、この投稿の通り、...
-
弁護士が語る「合法と違法を分けるオンラインカジノのシンプルな線引き」
「お金を賭けたら違法です」ーーこう答えたのは富士見坂法律事務所の井上義之弁護士。オンラインカジノが違法となるかどうかの基準は、このように非常にシンプルである。しかし2025年にはいって、違法賭博事件が相次...
-
釣りと密漁の違いは?知らなかったでは済まされない?事前にできることは?
知らなかったでは済まされないのが法律の世界であるが、全てを知ってから何かをするには少々手間がかかるし、最悪始めることすらできずに終わってしまうこともあり得る。教えてgooでも「釣りと密漁の境目はどこです...
-
カスハラとクレームの違いは?カスハラの法的責任は?企業がとるべき対応は?
東京都が、客からの迷惑行為などを称した「カスタマーハラスメント」、いわゆる「カスハラ」の防止を目的とした条例を、全国で初めて成立させた。条例に罰則はなく、2025年4月1日から施行される。 この動きは自治体...
-
なぜ批判コメントをするの?その心理と向き合い方をカウンセラーにきいた!
今や生活に必要不可欠となったインターネット。手軽に情報を得られるだけでなく、ネットを介したコミュニケーションも一般的となった。それと同時に顕在化しているのが、他者に対する辛らつな意見だ。ネットニュース...
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
XL:BeforeDoubleClickが動かない
-
Excelマクロのエラーを解決した...
-
エクセルVBA Ifでシート名が合...
-
実行時エラー1004「Select メソ...
-
実行時エラー'1004': WorkSheet...
-
【VBA】特定の文字で改行(次の...
-
excelのマクロで該当処理できな...
-
ブック名、シート名を他のモジ...
-
Excel チェックボックスにチェ...
-
VBAマクロでシートコピーした新...
-
Excel VBA シート名をすべて取...
-
ワークシートを追加したときの...
-
Excel VBA マクロ 先頭行の固定...
-
ExcelVBA:複数の特定のグラフ...
-
マクロを使って、シート印刷完...
-
Worksheet_Changeの内容を標準...
-
エクセルで通し番号を入れてチ...
-
SheetsクラスのSelectメソッド...
-
C#でExcelのシートを選択する方法
-
エクセルVBAで、シート1の...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
Excelマクロのエラーを解決した...
-
excelのマクロで該当処理できな...
-
特定の文字を含むシートだけマ...
-
実行時エラー'1004': WorkSheet...
-
ユーザーフォームに入力したデ...
-
【ExcelVBA】全シートのセルの...
-
エクセルVBA Ifでシート名が合...
-
実行時エラー1004「Select メソ...
-
VBA 存在しないシートを選...
-
エクセルで通し番号を入れてチ...
-
VBA 検索して一致したセル...
-
XL:BeforeDoubleClickが動かない
-
VBA 指定した回数分、別シート...
-
VBAマクロでシートコピーした新...
-
シートが保護されている状態で...
-
ブック名、シート名を他のモジ...
-
【VBA】全ての複数シートから指...
-
別のシートから値を取得するとき
-
ExcelのVBAのマクロで他のシー...
-
Excel チェックボックスにチェ...
おすすめ情報
ありがとうございます。計算式は「マクロの記録」で確認出来ました。
もう一つ、言葉足らずですみません。コピー元シートAのシート名を日付にしているため常にコピー元のシート名が変わります。この場合の書き方も教えていただけますでしょうか。
ご回答ありがとうございます。シートは日々増えていき、その時の一番右のシートの右側にシートコピーしますので、シートをコピーした時の一番右のシートの特定セルとその左隣のシートの特定セルを足し算する式をマクロに組み込みたいと考えています。
シートの並びは↓このような感じです。
(「sheet1」[sheet2」「sheet3」「sheet(コピー元)」「sheet(新シート)」)
正確に質問の意図をお伝え出来ておらず申し訳ございません。
よろしくお願いいたします。