エクセル小僧:数式を変更 [コンピューター]
またまた、エクセルねたですが。。
別の用事(?)があって、エクセルの数式をコピーするマクロを作ったのですが、あまり個人的なエクセルだったので、時流ねたの税率変更にすりかえました。
税抜き価格(C列)に1.05を掛けて税込価格(D列)を出すエクセルがあります。
これをマクロを使って、
1.税込価格(D列)の式を(旧)税込価格(E列)にコピー
2.税込価格(D列)の式に含まれる「1.05」を「1.08」に置換
3.1番と2番を繰り返す
という処理をします。
セルに含まれる式を参照したり、設定するには「.Formula」を使います。
税率5%の式を確認するため、InStr()を使って、「1.05」が含まれているか調べます。
「1.05」が含まれていれば、Replace()を使って「1.08」に置換します。
マクロを実行すると、こんな感じになります。
【コード】
Sub ChTax1()
' 税率変更(5% ⇒ 8%)
Dim myF1(1) As String ' 式
Dim i As Long ' 整数
For i = 18 To 24
' 税込(D列)の式を入手
myF1(0) = Cells(i, 4).Formula
If InStr(myF1(0), "1.05") > 0 Then
' 税率が5%のとき、以下を実行
' 税込(D列)の式を(旧)税込(E列)にコピー
Cells(i, 5).Formula = myF1(0)
' 税込(D列)の式を税率8%に変更
myF1(1) = Replace(myF1(0), "1.05", "1.08")
Cells(i, 4).Formula = myF1(1)
MsgBox "税込(旧)の式:" & myF1(0) & vbNewLine _
& "税込(新)の式:" & myF1(1)
End If
Next i
End Sub
別の用事(?)があって、エクセルの数式をコピーするマクロを作ったのですが、あまり個人的なエクセルだったので、時流ねたの税率変更にすりかえました。
税抜き価格(C列)に1.05を掛けて税込価格(D列)を出すエクセルがあります。
これをマクロを使って、
1.税込価格(D列)の式を(旧)税込価格(E列)にコピー
2.税込価格(D列)の式に含まれる「1.05」を「1.08」に置換
3.1番と2番を繰り返す
という処理をします。
セルに含まれる式を参照したり、設定するには「.Formula」を使います。
税率5%の式を確認するため、InStr()を使って、「1.05」が含まれているか調べます。
「1.05」が含まれていれば、Replace()を使って「1.08」に置換します。
マクロを実行すると、こんな感じになります。
【コード】
Sub ChTax1()
' 税率変更(5% ⇒ 8%)
Dim myF1(1) As String ' 式
Dim i As Long ' 整数
For i = 18 To 24
' 税込(D列)の式を入手
myF1(0) = Cells(i, 4).Formula
If InStr(myF1(0), "1.05") > 0 Then
' 税率が5%のとき、以下を実行
' 税込(D列)の式を(旧)税込(E列)にコピー
Cells(i, 5).Formula = myF1(0)
' 税込(D列)の式を税率8%に変更
myF1(1) = Replace(myF1(0), "1.05", "1.08")
Cells(i, 4).Formula = myF1(1)
MsgBox "税込(旧)の式:" & myF1(0) & vbNewLine _
& "税込(新)の式:" & myF1(1)
End If
Next i
End Sub
「やったぜ!」 ありがとうございます。[__猫]
by cheese999 (2014-03-02 22:21)