ビジネスに役立つ講座や交流会を開催
社長・個人事業主からサラリーマン・主婦まで、どなたでも
アベノ塾

ホーム  会場案内  お問合せ

〒545-0052
大阪市阿倍野区阿倍野筋3-12-2
あべのクオレ1F
(ナガセキャリアプラザ アベノ校)
TEL 06-6647-5571

エクセル関数の文字の置換

消費税が5%から8%に変わります。
エクセルの式の中に0.05の数字を使っている箇所が多数ある場合VBAで自動で見つけるサンプルを紹介します。

消費税が5%から8%に変わります。
エクセルの式の中に0.05の数字を使っている箇所が多数ある場合VBAで自動で見つけるサンプルを紹介します。

0.05の件数
エクセルのセルは数字・文字と式が入ります。
先頭に=が付けば式それ以外は数字・文字と判断します。
また数字なら右詰文字なら左詰となるように、非常によくできています。
長い式になると分かりにくくなりますのでVBAの登場となります。
CELLS(行,列).value
CELLS(行,列). Formula
は数字・文字か式を判断します。
通常valueは省略することが多いですが式を判断する場合はFormulaが必要です。
文字列の位置を返す関数InStrを使って0でなければ変数kensuに1を加算しています。
あとは行・列を繰り返しで1000X100=10万個のセルを判断しています。
コンピュータの力によりますが私のコンピュータでは1秒です。

Sub 件数()
    Dim i As Long
    Dim j As Long
    Dim kensu As Long
    For i = 1 To 1000
        For j = 1 To 100
            If InStr(Worksheets("元").Cells(i, j).Formula, "0.05") <> 0 Then
               kensu = kensu + 1
            End If
        Next
    Next
    MsgBox "式の中に0.05が入っている件数は" & kensu & "です。"
End Sub
0.05のある行列番号と式の内容を表示
MsgBoxで表示していますが多い場合は作業シートにコピーしてもよいかもわかりません。

Sub 確認()
    Dim i As Long
    Dim j As Long
    For i = 1 To 1000
        For j = 1 To 100
            If InStr(Worksheets("元").Cells(i, j).Formula, "0.05") <> 0 Then
               MsgBox "行" & i & "列" & j & Worksheets("元").Cells(i, j).Formula
            End If
        Next
    Next
End Sub

0.05を0.08に置換
変換するセルが間違っていなければここがコンピュータの正確で早い所です。

Sub 置換()
    Dim i As Long
    Dim j As Long
    For i = 1 To 1000
        For j = 1 To 100
            If InStr(Worksheets("元").Cells(i, j).Formula, "0.05") <> 0 Then
               Worksheets("元").Cells(i, j) = Replace(Worksheets("元").Cells(i, j).Formula, "0.05", "0.08")
            End If
        Next
    Next
End Sub