![](http://oshiete.xgoo.jp/images/v2/pc/qa/question_title.png?5a7ff87)
入力表と集計表を作成し入力シートの入力表にデータを入れてマクロを実行すると集計表にレコード転記されるようにしました。
集計表シートに転記することは出来たのですが入力表でデータを修正した後集計表に上書き保存する方法がわかりません。
もしご存じの方がいたらご教示お願いいたします。
下記のコードで転記をしています。
Sub ボタン1_Click()
Dim lastRow As Long
lastRow = Sheet2.Cells(Rows.Count, 1).End(xlUp).Row
Worksheets("集計表").Cells(lastRow + 1, 1) = Worksheets("入力表").Cells(1, 2)
Worksheets("集計表").Cells(lastRow + 1, 2) = Worksheets("入力表").Cells(2, 2)
Worksheets("集計表").Cells(lastRow + 1, 3) = Worksheets("入力表").Cells(3, 2)
Worksheets("集計表").Cells(lastRow + 1, 4) = Worksheets("入力表").Cells(4, 2)
Worksheets("集計表").Cells(lastRow + 1, 5) = Worksheets("入力表").Cells(5, 2)
Worksheets("集計表").Cells(lastRow + 1, 6) = Worksheets("入力表").Cells(6, 2)
Worksheets("集計表").Cells(lastRow + 1, 7) = Worksheets("入力表").Cells(7, 2)
Worksheets("集計表").Cells(lastRow + 1, 8) = Worksheets("入力表").Cells(8, 2)
Worksheets("集計表").Cells(lastRow + 1, 9) = Worksheets("入力表").Cells(2, 3)
Worksheets("入力表").Cells(1, 2).Clear
Worksheets("入力表").Cells(2, 2).Clear
Worksheets("入力表").Cells(3, 2).Clear
Worksheets("入力表").Cells(4, 2).Clear
Worksheets("入力表").Cells(5, 2).Clear
Worksheets("入力表").Cells(6, 2).Clear
Worksheets("入力表").Cells(7, 2).Clear
Worksheets("入力表").Cells(8, 2).Clear
Worksheets("入力表").Cells(2, 3) = ""
MsgBox "転記しました。"
End Sub
A 回答 (2件)
- 最新から表示
- 回答順に表示
No.2
- 回答日時:
#1です
訂正します。;;
間違え
.Range("B1:B8", "C2").ClearContents
正しくは
.Range("B1:B8, C2").ClearContents
書式などすべてをクリアーするなら.Clearで
No.1
- 回答日時:
こんばんは、
>修正した後集計表に上書き保存する方法がわかりません。
新規で書き込む時は、
lastRow = Sheet2.Cells(Rows.Count, 1).End(xlUp).Row
lastRow + 1
で行番号を特定していますが、上書きする場合、対象の行番号をどのように取得するかが、問題です。
つまり、入力表のどこかのセル(一意の値が望ましい)の値で
集計表の該当セルを特定して行番号を取得してlastRow + 1の代わりに使えば、その行の値が上書きされます。
入力表のB1セルの値が一意の値ならその値をキーワードにして集計表のA列を探せば良いと思います。 探し方は色々方法があります。
一意の値で1行目からデータがあるなら、ExcelのMATCH関数でも取得できると思いますし、Findや範囲をべたにループしても取得できます。
書き換えを行う時の入力表の情報を精査してどの値で集計表の該当セルを探すか考えてみましょう。
少し気になったのですが、オブジェクトSheet2は、Worksheets("集計表")の事でしょうか?もし違うなら、違うシートの新規行(lastRow + 1)を取得する意味が解りません。。同じなら、オブジェクト名にするかシート名にするか、またはインデックスなどで統一した方が後に良いと思います。
分かり難いかも知れませんが、ご質問のコードを添削して、
入力表C2セルの値で探し出してその行を上書きするサンプルです。
Sub ボタン1_Click()
Dim TrgRow As Long
Dim keyword As String
Dim Ary
Dim SH_集計表
Set SH_集計表 = Worksheets("集計表")
keyword = Worksheets("入力表").Range("C2").Value
On Error Resume Next
TrgRow = SH_集計表.Range("I1", SH_集計表.Cells(Rows.Count, "I").End(xlUp)) _
.Find(What:=keyword, LookIn:=xlValues, LookAt:=xlWhole).Row
If TrgRow >= 1 Then
With Worksheets("入力表")
Ary = .Range("B1:B8")
SH_集計表.Cells(TrgRow, 1).Resize(, 8).Value = _
Application.Transpose(Ary)
SH_集計表.Cells(TrgRow, 1).Offset(, 8).Value = .Cells(2, "C").Value
.Range("B1:B8", "C2").ClearContents
End With
MsgBox "転記しました。"
Else
MsgBox "該当行が見つかりません。"
End If
End Sub
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Excel(エクセル) なぜExit Subがあるのかわかりません 4 2023/02/19 12:34
- Visual Basic(VBA) VBAコードが作動せず、どこに問題があるのか教えて下さい。 3 2023/06/13 13:20
- Visual Basic(VBA) VBA Userformで一部別シートに転記がしたいのですが 2 2023/05/24 13:08
- Visual Basic(VBA) ユーザーフォームの書き出しで追加のご相談 ユーザーフォームの値をシートに書き出す際、コードが表示され 2 2022/08/05 10:58
- Visual Basic(VBA) 日付を重複させずに数えたい 4 2022/12/04 16:26
- Visual Basic(VBA) VBA 別ブックからの転記の高速化について VBA 別ブックからの転記の高速化についてご教授下さい。 19 2022/07/26 13:07
- Visual Basic(VBA) ユーザーフォーム「frm_基本❶」を立ち上げると新規で入力する行数を右下のNoとして表示しています。 1 2023/03/16 19:02
- Excel(エクセル) マクロ(データ取得と転記)について教えてください 3 2022/12/24 12:18
- Visual Basic(VBA) 【VBA】特定のワードが入っている行全体を塗りつぶしたい 4 2022/04/20 15:22
- Visual Basic(VBA) 初めてマクロを入力しますが、テキストとおりに入力したのに構文エラーです。修正を教えてください。 3 2022/10/28 11:18
このQ&Aを見た人はこんなQ&Aも見ています
-
プロが教えるわが家の防犯対策術!
ホームセキュリティのプロが、家庭の防犯対策を真剣に考える 2組のご夫婦へ実際の防犯対策術をご紹介!どうすれば家と家族を守れるのかを教えます!
-
VBAでシートコピー後、シート名が重複している時の処理
Access(アクセス)
-
抽出したデータを修正して元のセルに上書きしたい
Access(アクセス)
-
エクセルで特定のシートのみ自動上書き保存する方法
Visual Basic(VBA)
-
-
4
エクセルのマクロで検索・抽出したデータを修正及び更新して元データに反映
Excel(エクセル)
-
5
excel VBA 2つのシートの特定の列を比較して同じ値のセルがあったらその行を上書きしたい
Excel(エクセル)
-
6
VBAで検索後、行番号取得し上書き保存
Excel(エクセル)
-
7
VBA 空白行に転記する
Visual Basic(VBA)
-
8
エクセルVBAのエディターが上書きモード?に・・・・。
Excel(エクセル)
-
9
VBA 条件が一致した場合のみコピーする
その他(ビジネス・キャリア)
-
10
エクセルVBAで、ある指定した文字を含む行だけを選択したいのですが、、 例えば、1〜20行目までに"12304706"
Excel(エクセル)
-
11
エクセルで入力シートから別シートに蓄積方法について
Excel(エクセル)
-
12
特定の文字列があったらその行をまるごと別シートに反映させたい
Excel(エクセル)
-
13
【マクロ】転記ツール。転記先にデータがある場合、上書きするか消すか質問をして欲しい
Excel(エクセル)
-
14
エクセル:マクロ「Application.CutCopyMode = False」って?
Excel(エクセル)
-
15
特定セルの内容を更新したら、その更新日を自動的に表示する方法について
Excel(エクセル)
-
16
VBA 数式を残して値をクリアについて
Excel(エクセル)
-
17
EXCEL VBA 転記 条件分岐 新規転記 上書転記 プログラム
Visual Basic(VBA)
-
18
エクセルマクロで上書きして貼り付けの方法は
その他(Microsoft Office)
-
19
エクセルvbaで転記したのですが、数字のゼロが消えてしまいます。 ゼロも転記するためにはどうしたらい
Excel(エクセル)
-
20
vba 2つの条件が一致したらコピーして別シートに値のみ貼り付け
Visual Basic(VBA)
関連するカテゴリからQ&Aを探す
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
VBAについて質問。別シートに転...
-
郵便番号から都道府県・郡・市...
-
アクセス解析で自社HPの過去か...
-
上書き保存されない
-
Excel2010の並べ替えで行の高さ...
-
Caps Lockキーの解除
-
エクセルで離れたセルを離れた...
-
エクセル関数で {=TABLE(,セル...
-
オーバレイ機能を解除する方法は?
-
Excelでカーソルが逆に動く
-
エクセルで複数の勤務時間ごと...
-
プルダウンで選択すると隣のセ...
-
エクセルで作った書類に、パン...
-
リース初心者です 利子率の計...
-
VBA 条件が一致した場合の...
-
エクセルデータをワードへ反映...
-
エクセル2007 の右クリックメ...
-
EXCEL関数 上四桁目を3捨4入
-
Excelの空白行を上に詰めるVBA...
-
エクセルの計算式ですが・・・
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
Java、配列の問題を教えて欲し...
-
VBAについて質問。別シートに転...
-
上書き保存されない
-
splitを使ってスペース位置で文...
-
マクロのエラー
-
VBA SubTotalで集計を出そうと...
-
VBAで連番に色を付けたい
-
郵便番号から都道府県・郡・市...
-
VBAを教えていただきたいです。...
-
VBAで試験結果の集計ツールを作...
-
入出力について
-
VBAでIEを最小化したい
-
業務が劇的に便利になったツー...
-
Mathematicaで関数の最大値を求...
-
Caps Lockキーの解除
-
Excel2010の並べ替えで行の高さ...
-
エクセル関数で {=TABLE(,セル...
-
リース初心者です 利子率の計...
-
Excelでカーソルが逆に動く
-
エクセルで離れたセルを離れた...
おすすめ情報