graph TD
A[コードのレビュー] -->|問題を識別| B[リファクタリングの計画]
B --> C{リファクタリングを実施}
C -->|はい| D[コードの改善]
D --> E[テストの実行]
E --> F{テスト成功?}
F -->|はい| G[変更をコミット]
G --> H[リファクタリング完了]
F -->|いいえ| I[バグ修正]
I --> E
C -->|いいえ| J[他のタスクへ]
まずはマクロの記録でコードを自動生成していきます。
マクロの記録はワークシートの左下枠外にある記録ボタンでスタート、ストップすることができます。
記録する内容は下記のとおりです。
最初に修正前シートの表のデータをコピーし修正後シートに貼り付けます。
次に値に余計な空白が含まれているため「ctrl+H」で置換を使って空文字に置き換えます。
最後に数値部分に「ctrl+shift+1」で3桁区切りのカンマを設定します。
graph TD
A[修正前シートのデータをコピー] --> B[修正後シートに貼り付け]
B --> C[ctrl+H で空白を空文字に置換]
C --> D[数値部分に ctrl+shift+1 でカンマ設定]
Option Explicit
Sub example_4()Range("C4").Select
Range(Selection, Selection.End(xlToRight)).Select
Range(Selection, Selection.End(xlDown)).Select
Selection.Copy
Windows("総務省.xlsm").Activate
Range("C4").Select
ActiveSheet.Paste
Selection.Replace What:=" ",Replacement:="",LookAt:=xlPart, _
SearchOrder:=xlByRows,MatchCase:=False,SearchFormat:=False, _
ReplaceFormat:=False,FormulaVersion:=xlReplaceFormula2
Application.CutCopyMode = False
Selection.NumberFormatLocal ="#,##0"
End Sub
ChatGPTでリファクタリングしたコード
Option Explicit
Sub example_4_chatgpt()
With ThisWorkbook.Worksheets("修正前4").Range("C4",.Range("C4").End(xlToRight).End(xlDown)).Copy
End With
With Workbooks("総務省.xlsm").Worksheets("修正後4").Range("C4").PasteSpecial xlPasteValues
.Range("C4",.Range("C4").End(xlToRight).End(xlDown)).Replace What:=" ",Replacement:="", _
LookAt:=xlPart,SearchOrder:=xlByRows,MatchCase:=False
.Range("C4",.Range("C4").End(xlToRight).End(xlDown)).NumberFormatLocal ="#,##0"
End With
Application.CutCopyMode = False
End Sub