使いまわしているプロシージャなど
最近 作る内容が複雑になってきて過去に作ったプロシージャなどを再利用出来る様に
したいと思い始めました。
そこで、使いまわしすことを前提にしているわけですが
使いまわしているコードの修正が必用になり、修正した時
現在利用中のシステムのコードに修正前の使いまわしているコードが
あった場合はどうしたらいいでしょうか
0. 直ぐに書き換える
0. 別の修正などあったときについでに書き換える
0. 修正の機能が必要な場合のみ書き換える
0. そもそも使いまわしているプロシージャなどは修正せず別のコードを作成する
等 あると思いますが 皆さまはどうしているのでしょうか?
教えて頂けないでしょうか。
宜しくお願い致します。
###ベストアンサー選択後の追記
プロシージャなどコードの使いまわし=「共通化」
「共通化とするならコード設計から」
とのことで土台が無いようなので
一度切らせて頂いて
別質問にてコードの設計について質問します。
###修正をした過去に質問をしていたコード
VBA
1Option Explicit 2Option Private Module 3 4 5Sub MyCopy(ByVal CopyRng As Range, ByVal PasteRng As Range) 6'セルの 大体の書式と 値を Copy 7 8 Dim XML As String 9 Dim FormulaR1C1 As Variant 10 Dim RowSize As Long 11 Dim ColumnSize As Long 12 Const ValueDataType = Excel.XlRangeValueDataType.xlRangeValueXMLSpreadsheet 13 14 'SizeGet 15 RowSize = CopyRng.Rows.Count 16 ColumnSize = CopyRng.Columns.Count 17 18 'Copy 19 XML = CopyRng.Value(ValueDataType) 20 FormulaR1C1 = CopyRng.FormulaR1C1 21 22 'Paste 23 PasteRng.Resize(RowSize, ColumnSize).Value(ValueDataType) = XML 24 PasteRng.Resize(RowSize, ColumnSize).FormulaR1C1 = FormulaR1C1 25End Sub 26 27 28Sub MyRowCopyInsert(ByVal CopyRng As Range, ByVal PasteRng As Range, Optional ByVal Cut As Boolean = False) 29'セルの 大体の書式と 値を Copy 30 31 Dim RowsHeight() As Variant 32 Dim RowSize As Long 33 Dim i As Long 34 Dim j As Long 35 36 'SizeGet 37 RowSize = CopyRng.Rows.Count 38 ReDim RowsHeight(1 To RowSize) 39 For i = 1 To RowSize 40 RowsHeight(i) = CopyRng.Resize(1, 1).Offset(i - 1).EntireRow.RowHeight 41 Next i 42 43 44 'Resize 45 Set CopyRng = CopyRng.EntireRow 46 Set PasteRng = PasteRng.EntireRow.Resize(RowSize:=RowSize) 47 48 'Insert 49 PasteRng.Insert 50 51 'PasteRow ReSet 52 Set PasteRng = PasteRng.Offset((-1) * RowSize) 53 54 'CopyPaste 55 MyCopy CopyRng, PasteRng 56 For j = 1 To RowSize 57 PasteRng.Resize(1, 1).Offset(j - 1).EntireRow.RowHeight = RowsHeight(j) 58 Next j 59 60 'Cut 61 If Cut Then 62 CopyRng.Delete 63 End If 64End Sub
回答3件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2018/07/23 08:25