ねこになりたい

おふとんと朝の別れをするのが辛い人向けです。正論で殴らず見守ってあげてください。

Excelマクロ覚書 ~コピペ編~

図書館で借りてきた某書籍の覚書です。

 

 

【セルのデータをコピーする】

セルをコピーするにはCopyメソッドを使う。

Rangeオブジェクト.Copy

Range("B4").Copy   'B4セルをコピーする'

 

 

コピーしたセルを貼り付けするにはPasteメソッドを使う。

Worksheetオブジェクト.Paste

Range("A4:F10").Copy  'コピーしたセルの'
Range("H4").select      '貼り付け先を選んで'
ActiveSheet.Paste    'ペースト実行'

 

別のワークシートに貼り付ける場合は、RangeオブジェクトのDestinationを指定する

Copyとの間は半角スペースで区切る。省略もできるが、なるべく指定したほうがいい?

左側にコピー元のシート、右側にコピー先のシートを指定する

Worksheetオブジェクト.Rangeオブジェクト.Copy Destination:= Worksheetsオブジェクト.Rangeオブジェクト

Worksheets("Sheet1").Range("A1:F12").Copy _ Destination:=Worksheets("Sheet2").Range("A1")

 


【セルのデータを移動する】

切り取ってからペーストするので、CutメソッドとPasteメソッドを使う。

Rangeオブジェクト.Cut


Range("A1:F12").Range("A1:F12").Copy   '切り取ったセルの'
Range("H1").Select       '貼り付け先を選んで'
ActiveSheet.Paste    'ペースト実行'

 

別のワークシートに貼り付ける場合も、Copyメソッドと同様

Worksheetオブジェクト.Rangeオブジェクト.Cut Destination:= Worksheetsオブジェクト.Rangeオブジェクト

Worksheets("Sheet1").Range("A1:F12").Cut _ Destination:=Worksheets("Sheet2").Range("A1")

 


【セルを削除する】

セルの値を削除するにはDeleteメソッドを使う。

引数にShiftを指定することで、指定した方向に移動できる

Shiftに指定できる設定値は、xlShiftToLeft(左方向)とxlShiftUp(上方向)のみ

Rangeオブジェクト.Delete Shift:= 隣接セルの移動方向


Range("F12").Delete Shift:=xlShiftToLeft   'F12セルを削除後、F13のセルをF12にずらす'

Range("B1:F12").Delete Shift:=xlShiftToLeft   'B1~F12セルを削除後、B13~F25のセルをB1~F12にずらす'

 


【セルを挿入する】

セルの値を挿入するにはInsertメソッドを使う。 引数にShiftを指定することで、指定した方向に移動できる Shiftに指定できる設定値は、xlShiftToRight(右方向)とxlShiftDown(下方向)のみ 移動後の書式はセル上側の書式が適用される。

Rangeオブジェクト.Insert Shift:= 隣接セルの移動方向

Range("F12").Insert Shift:=xlShiftToLeft   'F12セルに挿入後、既存のF12セルを右にずらす'
Range("F12").Value = "私は猫になりたいんだ!"   'F12セルに値を入力'

 

セル移動後の書式を変更するにはCopyOriginを使う。

※CopyOriginに指定できる設定値

  • xlFormatFromLeftOrAbove(上、左側セルの書式)
  • xlFormatFromRightOrBelow(右・下側セルの書式)

Rangeオブジェクト.Insert Shift:= 隣接セルの移動方向, CopyOrigin:= セル移動後の書式を適用する方向

Range("F1:H4").Insert Shift:=xlShiftDown, CopyOrigin:= x1FormatFromRightOrBelow   'F1~H4セルに値を挿入後、右・下側セルの書式を適用'

【セルの形式を指定してコピペする】

セルの形式を指定して貼り付けるにはPasteSpecialメソッドを使う。

引数にPasteを指定することで、貼り付け先セルの形式を指定できる。

Rangeオブジェクト.PasteSpecial Paste:= PasteSpecial 貼り付け先セルの形式

※Pasteに指定できる設定値

xlPasteFormats :書式のみ
xlPasteFormulas :数式のみ
xlPasteFormulasAndNumberFormats :値のみ
xlPasteValuesAndNumberFormats :値と数値の書式
Range("A1:H10").Copy   'F1~H10セルをコピー'
Range("F12").PasteSpecial Paste:=xlPasteFormats   'F12セルを起点に、書式のみ貼り付け'

【値を算出して貼り付ける】

セルの値を算出して張り付けるにはPasteSpecialメソッドの引数Operaionを設定する。

Rangeオブジェクト.PasteSpecial Operaion:= 算出方法

 

※Operationに指定できる設定値

xlPasteSpecialOperationAdd :加算
xlPasteSpecialOperationSubtract :減算
xlPasteSpecialOperationDivide :除算
xlPasteSpecialOperationMultiply :除算

Range("A1").Value = 1.08   'A1セルに消費税を設定'
Range("A1").Copy   'A1セルをコピー'
Range("B1").PasteSpecial Paste:=xlPasteValues _
                 , Operation:= xlPasteSpecialOperationMultiply  'A2セルに消費税分を加える'