人によって作っている資料の単位が違って困ることありますよね。そんなときに便利なマクロです。
形式を選択して貼り付けの「演算」機能
「形式を選択して貼り付け」の「演算」機能を使う
資料を作るときに円単位の資料を千円単位に直したり、百万円単位に直したりしないといけないときがあります。
それぞれのセルの数式に「/1000」を入力すると大変です。
そんなときに便利な機能が、エクセルの「形式を選択して貼り付け」の「演算」機能です。
「形式を選択して貼り付け」の「演算」の機能を使えば、複数のセルをまとめて処理することが可能です。
・任意のセルに1000と打つ
・それをコピー
・1000で割りたいセルを選択して、形式を選択して貼り付け⇒値と除算を選択して貼り付ける
B2セルに53,000、B3セルに40,000があります。これをまとめて1000で割ってみます。
まず、適当なセルに「1000」を入力します。画像ではE2のセルに入力しました。
次に入力したE2セルをコピーします(Ctrl+v)。
そして、1000で割りたいセルB2,B3を選択した状態で右クリックかショートカットのCtrl+alt+vで「形式を選択して貼り付け」を選び、「値」貼り付けと演算の「除算」を選択してOKします。

すると、複数のセルがまとめて1000で割れました。

数式が入っているセルでも処理できます
数式が入っているセルでも同じように処理できます。
B5のセルに「=B2+B3」という数式が入っているセルに同じように、1000が入力されたセルをコピーして、「形式を選択して貼り付け」で「値」と「除算」を選んで貼り付けます。

すると、セルの数式をまとめてカッコでくくって1000で割ってくれます。

「B2+B3」の数式が「(B2+B3)/1000」となりました。
この機能を使ってマクロでやってみる
手作業だと、
・任意のセルに1000と打つ
・それをコピー
・1000で割りたいセルを選択して、形式を選択して貼り付け⇒値と除算を選択して貼り付ける
という手順でした。
これをマクロでやってみようと思います。
1000で割りたいセルを選択した状態で(範囲やCtrlで複数の範囲でも可)、マクロを実行すると、選択中のセルがすべて1000で割ることができるマクロです。
10行目の「.PasteSpecial」が形式を選択して貼り付け、「Paste:=xlPasteValues」が値貼り付け、「operation:=xlDivide」が除算(割り算)です。
Sub sample()
'1000を適当なセルにいったん入力
Range("IV1") = 1000
'そのセルをコピー
Range("IV1").Copy
'選択セルに、形式を選択で貼り付け(値、除算)
Selection.PasteSpecial Paste:=xlPasteValues, operation:=xlDivide
'1000を入れたセルを削除
Range("IV1").Delete Shift:=xlShiftToLeft
End Sub7行目、13行目で「IV1」のセルを指定していますがこれはどこのセルでも空白のセルならOKです。古いエクセルでは列数の上限が256で「IV列」までなので「IV1」にしています。
10行目の「operation:=xlDivide」を変えると割り算だけでなく、足し算、引き算、掛け算もできます。
| 機能 | ソースコード |
|---|---|
| 加算貼付け | Operation:=xlAdd |
| 減算貼付け | Operation:=xlSubtract |
| 乗算貼付け | Operation:=xlMultiply |
| 除算貼付け | Operation:=xlDivide |
乗算を使えば、千円単位で入力されているものを円単位に直すということもできます。


コメント