選択しているセルの符号(+、-)を変えるマクロ

テーマはエクセルで符号を逆転させるマクロ Excelの話

会計システムからデータを落としたりすると貸方の金額がマイナスで出て来たりすることがあります。そんなときに符号を一括で変換するマクロです。

手順は1000で割る手順と同じです

やりたいことは以前に投稿した「選択しているセルを1000で割るマクロ」と同じです。「千で割る」かわりに「‐1を掛ける」ことで符号を逆転させます。

「形式を選択して貼り付け」の「演算」機能を使います。

「形式を選択して貼り付け」の「演算」の機能を使えば、複数のセルをまとめて処理することが可能です。

任意のセルに -1 と打つ
・それをコピー
・符号を逆転させたいセルを選択して、形式を選択して貼り付け値と乗算を選択して貼り付ける

やり方の詳細は、「選択しているセルを1000で割るマクロ」の記事の「1000」を打つところを -1に変更し、形式を選択して貼り付けの演算で「除算」ではなく「乗算」を選択します。

選択しているセルを1000で割るマクロ
人によって作っている資料の単位が違って困ることありますよね。そんなときに便利なマクロです。形式を選択して貼り付けの「演算」機能「形式を選択して貼り付け」の「演算」機能を使う資料を作るときに円単位の資料を千円単位に直...

この機能を使ってマクロでやってみる

手作業だと、
・任意のセルに-1と打つ
・それをコピー
・符号を逆転させたいセルを選択して、形式を選択して貼り付け⇒値と除算を選択して貼り付ける
という手順でした。

これをマクロでやってみようと思います。

符号を逆転したいセルを選択した状態で(範囲やCtrlで複数の範囲でも可)、マクロを実行すると、選択中のセルのすべてに-1を掛けて符号を逆転することができるマクロです。

10行目の「.PasteSpecial」が形式を選択して貼り付け、「Paste:=xlPasteValues」が値貼り付け、「operation:=xlMultiply」が乗算(掛け算)です。

Sub sample()

'適当なセルに-1いったん入力
Range("IV1") = -1

'そのセルをコピー 
Range("IV1").Copy

'選択セルに、形式を選択で貼り付け(値、除算)
Selection.PasteSpecial Paste:=xlPasteValues, operation:=xlMultiply

'-1を入れたセルを削除
Range("IV1").Delete Shift:=xlShiftToLeft

End Sub

「operation:=xlMultiply」を変えると掛け算だけでなく、足し算、引き算、掛け算もできます。

機能ソースコード
加算貼付けOperation:=xlAdd
減算貼付けOperation:=xlSubtract
乗算貼付けOperation:=xlMultiply
除算貼付けOperation:=xlDivide

10を掛けたり、10で割ったりするマクロを作れば汎用的に単位を変更できるマクロとすることもできます。

コメント

タイトルとURLをコピーしました