公式アカウントからの投稿が始まります

表題のとおりですが、過去の質問では良い回答が
見当たりませんでした。

・やりたいこと
”A”->”001”
”B”->”002”
”C”->”003”
”D”->”004”

のようにテキストの置換候補があり(置換、置換対象のテキストは全角、半角さまざまです)、
それをExcelのワークシートに適用したいです。
やり方はどういうやり方でも良いです。ただ置換リストは追加、変更する必要があります。

VBAのreplaceを利用した置換マクロを作成すればよいのでしょうか。
当方、Word用の簡単なVBAマクロの作成経験はありますが、
Excelでは利用したことがありません。

ある程度具体的に御教授いただけると助かります。
よろしくお願いします。

A 回答 (1件)

ExcelもWordと同じくマクロ記録を録る事ができますから、


実際に「置換」作業をやってみてください。

Sub Macro1()
'
' Macro1 Macro
' マクロ記録日 : 2012/7/9 ユーザー名 : end-u
'

'
  Cells.Replace What:="A", Replacement:="'001", LookAt:=xlWhole, _
    SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, _
    ReplaceFormat:=False
  Cells.Replace What:="B", Replacement:="'002", LookAt:=xlWhole, _
    SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, _
    ReplaceFormat:=False
End Sub

こんな感じのが録れます。
[検索と置換]ダイアログの[オプション]で、必要に応じて
「セル内容が完全に同一..」などのオプションを設定して下さい。
構文の詳細は[Replaceメソッド]のヘルプを参照して下さい。
#置換後文字が 『0』から始まるなら"'001"のように先頭にプリフィックスをつけるのを忘れずに。

>ただ置換リストは追加、変更する必要があります。
この場合、作業用シートに「置換前」「置換後」の文字を入力して、それをLoop処理する、など考えられます。
例えば「Sheet1」のA1以降に「置換前」、B1以降に「置換後」の文字があるとすれば以下の感じ。
Sub test()
  Dim i As Long
  With Worksheets("Sheet1").Cells
    For i = 1 To .Item(.Rows.Count, 1).End(xlUp).Row
      MsgBox "What " & .Item(i, 1).Value & vbLf & _
          "Replacement " & .Item(i, 2).Value
    Next
  End With
End Sub
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!