VBAの初心者です。
ネットで使えそうなVBAコードを活用しようとしていますが、アドバイス頂きたいです。
■やりたいこと:
C:\Users\tefun\Desktop\Projects\Evaluation
上記フォルダに5つのシートが含まれたソースファイルが22個あります。(3rd_Party_Evaluation_sheet _P1~P22)
各シートの内容は同じで「K1:L1」、「B13:L13」のデータだけ違う内容になっております。
これらを同じフォルダの「Radar_Chart_Index.xlsm」の「3rdParty」というシートに貼り付けていきたいです。
貼り付け対象範囲は、N2:Z111
1つのソースファイル1シートで1行になりますので
22ファイル X 5シート = 110行
説明の画像を添付しております。
■知りたいこと:
下記コードは、ソースファイル及びコピ元のシートをいちいちマウスで指定しないとならないようになっていますが、
自動で実行するようにはどのように変更したら良いか知りたいです。
初心者で正直下記コードの内容も100%把握はしておりません。
Sub test1()
Const f1 = "='C:\Users\tefun\Desktop\Projects\Evaluation["
Const f2 = ".xlsm]P3'!"
Dim f As String
Dim i As Long
With Application
.ScreenUpdating = False
.EnableEvents = False
.Calculation = xlCalculationManual
End With
With ActiveSheet
For i = 1 To 110
f = f1 & Format$(i, "00") & f2
.Cells(i + 1, 14).Resize(, 2).Formula = f & "K1"
.Cells(i + 1, 16).Resize(, 11).Formula = f & "B13"
Next
With .Range("N2:O111")
.Copy
.PasteSpecial xlPasteValues
End With
With .Range("P2:Z111")
.Copy
.PasteSpecial xlPasteValues
End With
End With
With Application
.Calculation = xlCalculationAutomatic
.EnableEvents = True
.ScreenUpdating = True
End With
End Sub
No.1ベストアンサー
- 回答日時:
こんにちは、
Radar_Chart_Index.xlsmにVBAを書いて良いのでしょうか?
私の読解力が無いためファイル、シート関係が良く理解していませんが、
With .Range("N2:O111")
.Copy
.PasteSpecial xlPasteValues
End With
などで数式を値に変えているなら、初めから値を抽出すれば良いのではないでしょうか、
ただし、対象ファイルを開く必要がありますが。
> 5シート
これは、5シートしかないと理解してよいのでしょうか?
手直しは必要と考えますが、
Radar_Chart_Index.xlsmの標準モジュールに一例です。
Sub Test()
Const f1 = "C:\Users\tefun\Desktop\Projects\Evaluation\"
Const f2 = ".xlsm"
Dim i As Long, TrRow As Long
Dim sh As Worksheet, trSh As Worksheet
With Application
.ScreenUpdating = False
.EnableEvents = False
.Calculation = xlCalculationManual
End With
Set sh = Sheets("3rdParty")
For i = 1 To 22
With Workbooks.Open(f1 & "3rd_Party_Evaluation_sheet _P" & i & f2)
For Each trSh In .Worksheets
TrRow = sh.Cells(Rows.Count, "N").End(xlUp).Row + 1
sh.Cells(TrRow, "N").Resize(1, 2).Value = trSh.Range("K1:L1").Value
sh.Cells(TrRow, "P").Resize(1, 11).Value = trSh.Range("B13:L13").Value
Next trSh
.Close SaveChanges:=False
End With
Next
With Application
.Calculation = xlCalculationAutomatic
.EnableEvents = True
.ScreenUpdating = True
End With
End Sub
ファイル名は3rd_Party_Evaluation_sheet _P1~P22 で良いのでしょうか?
対象シート数などに問題がある場合は、シート名などを具体的にして補足してくださいね。
未検証の為、コピーファイルなどでお願いします。
すぐ返答できず失礼いたしました。
ご質問に対して、
1.Radar_Chart_Index.xlsmにVBAを書いて良いのでしょうか?
→はい、ご理解のとおりです。
2.これは、5シートしかないと理解してよいのでしょうか?
→言葉が足りずすみません。シートが5つあるとの意味でした。(P1,P2,P3,P4,P5)
3.ファイル名は3rd_Party_Evaluation_sheet _P1~P22 で良いのでしょうか?
→はい、ご理解のとおりです。
トライした結果、一発で上手く行きました!
思わず大声で「うわー!」と言ってしまいました。笑
本当にありがとうございます。
頂いたコードを読みながらいい勉強になりました。
コロナに気をつけて健康にお過ごしください。
~三重県鈴鹿より
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) vbaのエラー対応(実行時エラー7:メモリが不足しています) 4 2023/04/24 00:20
- Excel(エクセル) vba 転記するときの最終行について 2 2022/09/03 09:31
- Visual Basic(VBA) エクセルのマクロを使ってメールを送る方法について教えてください 2 2022/03/29 01:36
- Visual Basic(VBA) まとめシートから集計シートへA列のコードが一致したら1行コピーするマクロをネット上で見つけました。こ 1 2022/08/30 14:11
- その他(Microsoft Office) マクロVBAについて 1 2022/09/06 18:12
- Visual Basic(VBA) エクセル VBA 処理スピードを上げたいのですが。 6 2023/03/31 20:52
- Visual Basic(VBA) 抽出結果を別シートに貼り付ける 2 2022/07/09 22:59
- Visual Basic(VBA) 形式を選択して貼り付け 以下のコードで「元」シートと「先」シートのA列に同じ値があったら指定範囲をコ 5 2022/11/11 07:30
- Visual Basic(VBA) 集計シートA列のコードと一致する右に並んだシート名(コード)の3行目から10行目をコピーして貼り付け 4 2022/08/18 15:24
- Visual Basic(VBA) ExcelVBAでDo Until loopのネスト、IF文を使って一致する物と一致しない物としたい 11 2022/12/24 17:46
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
別のシートから値を取得するとき
-
Excel マクロについての相談
-
別のシートを参照して計算する方法
-
エクセルのマクロについて教え...
-
ブック名、シート名を他のモジ...
-
VBA 最終行まで数式をコピーする
-
【ExcelVBA】全シートのセルの...
-
特定の文字を含むシートだけマ...
-
エクセルのマクロについて教え...
-
VBA 入力月で該当シートを選択...
-
一括印刷マクロ シート名を数字...
-
【ExcelVBA】動的にボタン、ボ...
-
VBA 存在しないシートを選...
-
同じ作業を複数のシートに実行...
-
ListViewの画面の更新
-
実行時エラー1004「Select メソ...
-
シートが保護されている状態で...
-
エクセルで通し番号を入れてチ...
-
【VBA】指定した検索条件に一致...
-
ユーザーフォームに入力したデ...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
別のシートから値を取得するとき
-
ユーザーフォームに入力したデ...
-
【ExcelVBA】全シートのセルの...
-
同じ作業を複数のシートに実行...
-
Excelマクロのエラーを解決した...
-
excelのマクロで該当処理できな...
-
XL:BeforeDoubleClickが動かない
-
ExcelVBA シート名を複数セルか...
-
実行時エラー'1004': WorkSheet...
-
VBA 存在しないシートを選...
-
エクセルのマクロについて教え...
-
エクセルのマクロについて教え...
-
ブック名、シート名を他のモジ...
-
【Excel VBA】Worksheets().Act...
-
ExcelのVBAのマクロで他のシー...
-
エクセルのシート名変更で重複...
-
特定の文字を含むシートだけマ...
-
シートが保護されている状態で...
-
Excel マクロについての相談
-
VBA 検索して一致したセル...
おすすめ情報
今のコードでは手動だけではなく、コピペはちゃんと出来ていませんでした。
なぜかデータが順番通りに貼り付けできていません。
以下のようになるべきですが、添付の画像通りになってしまいます。
Teff P1 ....
Teff P2 ....
Teff P3 ....
Teff P4 ....
Teff P5 ....
Masumi P1 ....
Masumi P2 ....
.
.