Dim 縦 As Integer
For 縦 = 1 To 10
Rows(縦).Delete
Next 縦
End Sub
Dim 横 As Integer
For 横 = 2 To 4
Cells(4, 横) = Cells(2, 横) * Cells(3, 横)
Next 横
End Sub
今回は事務作業でよく使うであろうメソッド(操作)を5つピックアップします
① Delete
② Copy Destination:=(Range)
③ Copy + Insert
④ Copy + PasteSpecial
⑤ Replace
① Delete
行や列を削除する時に使います。
例:Columns (2).Delete
② Copy Destination:=(Range)
指定された範囲のセルをコピーした後、
貼付け先(左上端にあたる) のセルをDestinationで指定します。
例:Range("A1:E6").Copy Destination:=Range("A7")
③Copy + Insert
Insert単独では空白の行・列等の挿入となり、
Copy後のInsertでは「コピーしたセルの挿入」ができます。
例:Columns(3).Insert
例:Columns(1).Copy
Columns(5).Insert
④ Copy + PasteSpecial
いわゆる 「形式を選択して貼り付け」です。
指定された範囲のセルをコピーした後、
数式、 値、 書式など、 Pasteで何を貼り付けるか指定します。
例:Range("A1:D1").Copy
Range("A4").PasteSpecial Paste:=xlPasteFormulas ’数式の貼付け
Range("A5").PasteSpecial Paste:=xlPasteValues ’値の貼付け
※図では、数式と定数が分かりやすいように、あらかじめ「数式の表示」をしています。
⑤ Replace
指定された範囲のセルの文字列を置換します。
青字部分だけでも実行できますが、 引数を省略すると前回置換した時の条件が引き継がれるので、 指定した方が無難でしょう。
LookAtは完全一致か (xlWhole) 部分一致か (xlPart) 選びます。
MatchCaseは大文字と小文字を区別するか(True)、 区別しないか(False)選びます。
MatchByteは全角と半角を区別するか(True)、区別しないか(False)選びます。
(Range).Replace What:="置換前", Replacement:="置換後", LookAt:=xlPart, MatchCase:=True, MatchByte:=True
例:Range("A1:A4").Replace What:="ABC", Replacement:="XXX", LookAt:=xlWhole, MatchCase:=True, MatchByte:=False
以上、5つのメソッドでした。
今後の回でも出てくると思いますので、使いながら覚えていきましょう。
::::::::::::::::::::::::::::::::::::::
例題①
上記メソッド①~④を使って、左の表から右の表へ変更するようマクロを作ってみましょう。
A列の王林の位置を変えました。ふじは2つになってますね。
D列は数式から数値に変わっています。
(図では数式と数値どちらか分かりやすいように「数式の表示」をしていますが、わざわざ変える必要はありません。)
例題②
上記メソッド⑤を使って、左の表から右の表へ変更するようマクロを作ってみましょう。
A列は「ほん」が「かん」になり、B列はスペースがなくなってます。