BizFAQ-ビズファック

仕事・ビジネスにおけるちょっと困ったこと、わからないことをズバリ解決お悩み解決サイトです。

  • TOP
  • 副業解禁時代の年収1000万円戦略
  • Excel
  • Word
  • PowerPoint
  • サイトマップ

VBAで置換をしたい!Replace関数の使い方など

2015年1月30日 by Gen

VBA_Replace_7

VBAの初心者が初めにVBAに苦労するのがここです。
というのも「ワークシート関数」(普通のExcelの関数)と「VBAの関数」で機能が同じなのに名前が違うからです。実際私もそうでしたが、「そういうもんだ」と別々に覚えましょう。



目次

  • VBAで置換をするための、簡単3ステップ
    • 1.ワークシート関数から導入
      • =SUBSTITUTE(文字列, 検索文字列, 置換文字列)
    • 2.Replace関数を使おう
      • Sub Sumple() Range(“A1”).Value = Replace(Range(“A2”).Value, “World”, “Japan”) End Sub
    • 3.全体を置換したい
      • Sub Macro1() ‘ ‘ Macro1 Macro ‘ ‘ Cells.Replace What:=”World”, Replacement:=”Japan”, LookAt:=xlPart, _ SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, _ ReplaceFormat:=False End Sub

VBAで置換をするための、簡単3ステップ

VBAはまだ得意じゃないけど、普通のExcelなら大丈夫という人も多いと思うので、まずReplace関数とワークシート関数からの比較から始めます。

VBAのコードは大活躍中の「マクロの自動記録」で取得しましょう。コードが分かればこっちのもので、いろいろな状況で試しながら知識を定着させていきましょう。

1.ワークシート関数から導入

ひとまず普通のExcelで置換をする時は「SUBSTITUTE」関数を使いますね。使い方は

=SUBSTITUTE(文字列, 検索文字列, 置換文字列)

です。実際の使用画面はこんな感じですかね。セルA1の文字列から「World」を探して、「Japan」で置換します。

VBA_Replace_1

なんとVBAでも関数の名前が違うだけで、SUBSTITUTE関数と同じように置換が出来ます!使用する関数はVBAのReplace関数です。

2.Replace関数を使おう

Range(“セル番地”).Valueで値を取得、設定できることは大丈夫でしょうか。ではマクロを書いていきましょう。
まずVBEを開きます。「Alt + F11」で開くのが一番シンプルかと思います。

VBA_Replace_2

今回書くコードは

Sub Sumple()

Range(“A1”).Value = Replace(Range(“A2”).Value, “World”, “Japan”)

End Sub

です。実行したら次のようになると思います。

VBA_Replace_3

3.全体を置換したい

今回はSUBSTITUTEをReplaceに変えるだけで出来る。という流れだったのでしませんでしたが、もちろん自動記録で記録されます。やってみましょう。「Hello World」さんには増殖してもらいました。

VBA_Replace_4

「Ctrl + H」で置換の画面を出し、必要な情報を埋めます。「すべて置換」をクリックしてください。

VBA_Replace_5

実行後はこんな感じ。

VBA_Replace_6

コードは次のようなものが記録されたと思います。

VBA_Replace_7

Sub Macro1()
‘
‘ Macro1 Macro
‘

‘
Cells.Replace What:=”World”, Replacement:=”Japan”, LookAt:=xlPart, _
SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, _
ReplaceFormat:=False
End Sub

大事なのはCells.Repalaceのところです。ラベルは指定しても、しなくてもいいというルールから、Cells.Replace “World”, “Japan”に変更しても動くと思います。


今回はVBAでの置換を解説しました。実際記事の前半部分はVBAのReplace関数を使い、後半ではCellオブジェクトのReplaceメソッドを使っています。

Replace関数を単独で使うと、セルに代入してセルの値に反映させますが、CellオブジェクトのReplaceメソッドを使うと直接Cellの値が変更されます。置換して別の場所に転記したい場合はReplace関数を使いましょう。

Filed Under: Replace Tagged With: Excel, Replace, vba, マクロ




© Copyright 2015 BizFAQ · All Rights Reserved · Powered by WordPress · Admin