マクロは初心者です。
現在、複数のシートの表を新しいシートに1つの表にまとめた表をつくるマクロを組んでいます。
具体的にはaというシートに
ああ いい うう ええ おお
3 2 3 4 5
3 2 3 4 5
3 2 3 4 5
3 2 3 4 5
3 2 3 4 5
bというシートに
かか きき くく けけ ここ
3 2 3 4 2
3 2 3 4 2
3 2 3 4 2
3 2 3 4 2
3 2 3 4 2
という表がそれぞれあり、
「全データ」というシートをつくりそこに以下のように1つの表にまとめたいと考えています。
ああ いい うう ええ おお かか きき くく けけ ここ
3 2 3 4 5 3 2 3 4 2
3 2 3 4 5 3 2 3 4 2
3 2 3 4 5 3 2 3 4 2
3 2 3 4 5 3 2 3 4 2
3 2 3 4 5 3 2 3 4 2
マクロは組むことが出来たのですが、
aやbの表の値を変えると「全データ」に出来ている表の値も同時に更新されるようにしたいです。
どのように組み直せばよろしいでしょうか。
組んだマクロを下記に記載します。
Sub sh_check()
Dim newSh As String
Dim Sh As Worksheet
Dim myFlag As Boolean
newSh = "全データ"
myFlag = False
For Each Sh In ThisWorkbook.Worksheets
If Sh.Name = newSh Then
myFlag = True
Worksheets(newSh).Cells.ClearContents
Worksheets(newSh).Move before:=Sheets(1)
Exit For
End If
Next Sh
If myFlag = False Then
ActiveWorkbook.Worksheets.Add(before:=Worksheets(1)).Name = newSh
End If
End Sub
Sub matome()
Dim Sh
Dim i As Integer
Dim lRow As Long
Dim lRow2 As Long
Dim lCol2 As Long
Dim sh1 As String
Dim sh2 As String
Dim lCol As Long
Dim range1 As Range
Application.ScreenUpdating = False
sh_check
sh1 = "a"
sh2 = "b"
With Worksheets(sh1)
lRow = .Cells(Rows.Count, 2).End(xlUp).Row
lCol = .Cells(1, Columns.Count).End(xlToLeft).Column
If lRow >= 2 Then
lCol2 = Worksheets(1).Cells(1, Columns.Count).End(xlToLeft).Column + 1
If lCol2 = 2 Then lCol2 = 1
.Activate
.Range(Cells(1, 1), Cells(lRow, lCol)).Copy Worksheets(1).Cells(1, lCol2)
End If
End With
With Worksheets(sh2)
lRow = .Cells(Rows.Count, 2).End(xlUp).Row
lCol = .Cells(1, Columns.Count).End(xlToLeft).Column
If lRow >= 2 Then
lCol2 = Worksheets(1).Cells(1, Columns.Count).End(xlToLeft).Column + 1
If lCol2 = 2 Then lCol2 = 1
.Activate
.Range(Cells(1, 2), Cells(lRow, lCol)).Copy Worksheets(1).Cells(1, lCol2)
End If
End With
Worksheets(1).Activate
Range("A1").Select
Application.ScreenUpdating = True
End Sub
No.1ベストアンサー
- 回答日時:
「aやbの表の値を変えると『全データ』に出来ている表の値も同時に更新されるようにしたいです。
」ですと処理が重くなってしまうのでやめた方が良いです。それよりも『全データ』シートを開いた時に変更されていれば良いはずなので『全データ』のシートモジュールの『Worksheet_Activate()』イベントで『matome』をコールした方が良いと思います。
ただ、このままだといくつかの問題が有ります。
① 先に『全データ』シートが無いと『Worksheet_Activate()』イベントにコードを書き込む事ができません。
②『○○.Activate』みたいな物がいくつかあるので直さないといけません。
---------------------------------------------------------------
話は変わりますが、提示のコードでは『b』シートの1列目が『全データ』シートで抜けてしまいます、修正が必要ですよ。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) VBA Userformで一部別シートに転記がしたいのですが 2 2023/05/24 13:08
- Visual Basic(VBA) 最終列の右へSUM関数を作成するため下記コードを実行しましたが、最終列「10月28日」が上書きされて 3 2022/12/05 20:32
- Excel(エクセル) VBAの指示の内容 昨日こちらでご教示頂いたのですが初心者な為、一つ一つの指示が何をやっているのかわ 2 2022/10/25 18:08
- Excel(エクセル) VBAについて 3 2022/06/19 18:19
- Visual Basic(VBA) まとめシートから集計シートへA列のコードが一致したら1行コピーするマクロをネット上で見つけました。こ 1 2022/08/30 14:11
- Excel(エクセル) なぜExit Subがあるのかわかりません 4 2023/02/19 12:34
- Visual Basic(VBA) 別シートから年齢別の件数をカウントしたいの続き 5 2023/01/24 00:16
- Visual Basic(VBA) いつもお世話になっております、VBAで教えて頂きたいのですが 2 2022/05/05 22:20
- Visual Basic(VBA) Sheet3から2つの条件でオートフィルターで抽出した個数をSheet2へ入力するマクロで、一つ目の 4 2023/01/12 23:40
- Visual Basic(VBA) 前回ご教授いただいたコードに覚えたてのループ処理で品名りんごAから順に20回for nextでループ 7 2023/01/13 22:01
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
至急!尿検査前日にオナニーし...
-
尿検査の前日は自慰控えたほう...
-
尿検査前日に自慰行為した時の...
-
首吊りどこ締めるの
-
射精をして1週間以内に尿検査を...
-
変な話しになります。尿検査で...
-
白血球が多いとどんな心配があ...
-
今朝、毎朝の習慣でオナニーし...
-
1日前の検尿
-
検便についてです。 便は取れた...
-
男です。昨日の午後3時くらいに...
-
勃起する時って痛いんですか? ...
-
EXCELで条件付き書式で空白セル...
-
腕を見たら黄色くなってる部分...
-
彼女のことが好きすぎて彼女の...
-
中出しをするとお腹が痛い・・・。
-
小数点以下を繰り上げたものを...
-
EXCELで式からグラフを描くには?
-
2つの数値のうち、数値が小さい...
-
値が入っているときだけ計算結...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
首吊りどこ締めるの
-
中出しをするとお腹が痛い・・・。
-
麻疹風疹の抗体検査結果につい...
-
エクセルでエラーが出て困って...
-
白血球が多いとどんな心配があ...
-
彼女のことが好きすぎて彼女の...
-
検便についてです。 便は取れた...
-
勃起する時って痛いんですか? ...
-
至急!尿検査前日にオナニーし...
-
納豆食べた後の尿の納豆臭は何故?
-
これって喉仏ですか? 私は女性...
-
EXCELで条件付き書式で空白セル...
-
精子が黄色?
-
小数点以下を繰り上げたものを...
-
値が入っているときだけ計算結...
-
口の中に黒い血の塊
-
健否~書類の書き方~
-
甲状腺が腫れているが血液検査...
-
はしかの抗体検査は何科の病院...
-
テスターで断線を調べる方法教...
おすすめ情報