VBAでの文字列置換
- VBAを使用してExcelのワークシートで文字列の置換を行いたいです。
- 置換する文字列と置換後の文字列のリストを追加および変更する必要があります。
- Word用のVBAマクロの経験はありますが、Excelでは初めての利用です。具体的な手順を教えていただけると助かります。
- ベストアンサー
VBAでの文字列置換
表題のとおりですが、過去の質問では良い回答が 見当たりませんでした。 ・やりたいこと ”A”->”001” ”B”->”002” ”C”->”003” ”D”->”004” のようにテキストの置換候補があり(置換、置換対象のテキストは全角、半角さまざまです)、 それをExcelのワークシートに適用したいです。 やり方はどういうやり方でも良いです。ただ置換リストは追加、変更する必要があります。 VBAのreplaceを利用した置換マクロを作成すればよいのでしょうか。 当方、Word用の簡単なVBAマクロの作成経験はありますが、 Excelでは利用したことがありません。 ある程度具体的に御教授いただけると助かります。 よろしくお願いします。
- trotrotron
- お礼率32% (36/111)
- Visual Basic
- 回答数1
- ありがとう数0
- みんなの回答 (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
関連するQ&A
- 半角全角区別しない場合の置換
エクセルvbaで Cells.Replace What:=str置換前, Replacement:=str置換後, LookAt:=xlPart のように置換するときに 半角でも全角でも置換できるようにするにはどうすればいいですか? Replaceにカーソルを当てF1を押すと ライブラリでVBAとExcelのヘルプがありますが どちらを見ても、半角全角区別しない場合の書き方は書いてなかったため わかりませんでした。
- ベストアンサー
- Excel(エクセル)
- 文字列一括置換ソフトを探してます
文字列一括置換ソフトを探してます・・・って書くと、Vectorに行けばいっぱいあると言われそうですが、ちょっと条件が特殊です。 ・複数(多分500~1000個)のテキストファイルの指定文字列を一括置換したい(ここまでは普通) ・対象の文字列の置換パターンが3万件(苦笑) ワイルドカードなどではなく、3万の単語を別の3万の単語に置換したいのです。 (プログラムの変数を、ネーミングルールを変えたために総入れ替えする・・・と考えて頂ければ分かっていただけるでしょうか) 10件くらいのパターンを連続して置換するソフトは見つかったのですが、3万件となると・・・。 (そもそも3万件のリストをよく作ったもんだ) UNIXにsedというコマンドがあるというのは聞いたことがあるのですが、Windows(&DOS)しか触ったことがないので、どうすれば良いのか分かりません(私はプログラマじゃありません)。 なお、同じネタでエクセルのワークシートのセルを置換する必要があるのですが、こちらは自作マクロで対応しています。 もし適当なソフトが見つからなければ、エクセルマクロの作成を検討しています。 (マクロでテキストファイルの読み込みはやったことがあるのですが、書き出しは多分やったことがない) 置換リストはエクセルで作成しているので、リストはソフトに応じた形式で準備できると思います。 以上、よろしくお願いいたします。
- ベストアンサー
- その他(ソフトウェア)
- 変数をVBAのみで置換
エクセル2003です。 変数="あいう"の "い"を "え"に 置換して "あえう"にする。 というのをワークシートを使わずにVBAコードだけで行うにはどうすればいいのでしょうか? Str 、Replace、を使うと言うのは調べたらわかったのですがどうゆう風なコードを書けばいいのかよくわかりません。 ご教授よろしくお願いします。
- ベストアンサー
- オフィス系ソフト
- VBAで正規表現
Excel2000-VBAにてマクロ作成中です。 以下のような処理を正規表現を使用して一発で実行させたいのですが、 正規表現に指定するパターンがわかりません・・・。 どなたがご存知でしたら教えて下さい。 やりたいこと:ある文字列中の中のスペース(半角全角両方)を半角スペースに変換し、 さらに連続している半角スペースを1つに置換したい。 スペースを半角に統一することは、Replace関数で可能かと思っています。
- ベストアンサー
- Visual Basic
- xmlファイル内の文字列置換
エクセルマクロ(VBA)で、xmlファイルを自動生成するツールを作成しようとしています。 やりたいことは、「テンプレートとなるxmlファイルを用意しておき、そのxmlファイルに記述してある特定の文字列を、エクセルで記入したデータで置換する」です。 似たようなマクロを作成された経験のある方いらっしゃいましたら、置換するために行う手順、及び必要な関数等を教えていただけますでしょうか。 何卒よろしくお願いいたします。
- ベストアンサー
- Visual Basic
- VBA(Excel)でファイル内の文字を置換したいのですが
いつも拝見させていただいております。 初めて質問させていただきます。 現在VBAに興味を持ち始めて独学で学んでおり、 VBAでテキストファイルの文字を置換できないかと思っております。 事例としては以下のような例を考えています。 ・エクセルマクロ実行時に置換する/したい文字を入力 ・対象ファイルを指定 ・対象ファイル内(テキスト)にて文字を検索し、ヒットしたら置換 まだVBAを熟知していないので、出来るのかどうかもわかりませんが 可能であれば、教えて頂きたいと思います。宜しくお願いします
- 締切済み
- その他(プログラミング・開発)
- 置換対象文字列を一括でまとめて置換してからhtmlファイルを生成するソフト
題名がややこしいのですが。。。 下記のようなあるサンプルテキストがあるとして、 sampl.htm <table> <tr><td>置換1</td></tr> <tr><td>置換2</td></tr> </table> エクセルやテキストなどに下記のようなデータをいれこむと サンプルテキストの値に挿入しファイルができるというようなフリーソフトなどはないでしょうか? ない場合は自分作りたいんですけど、その場合はVBAマクロでしか作成できる環境がないのですが、にたようなサンプルなどありますでしょうか? 置換1 置換2 1行目 ああああ いいいい 2行目 うううう ええ 3行目 ssss dddd ご存知でしたら、教えていただけないでしょうか? よろしくお願いします。
- ベストアンサー
- その他(プログラミング・開発)
- エクセルVBAで実行する対象を選択文字列にするには?
エクセルVBAで文字列を半角や全角にするマクロをつくっています。 私は、”あるセルに対して”はできるんですが、 その対象文字列を、”カーソルで選択して反転したところに対して”実行できるようにしたのです。できるんでしょうか。 よろしくおねがいします。
- 締切済み
- オフィス系ソフト
- word vba 文字置換について
お世話になります。 word vba による文字置換についてお聞きしたいのですが、 例えば「あいう,1えお2,345かきく,6けこ」 というテキストがあった場合、 「,1」と「,6」を全角に変換したいと思っております。(カンマも含め) 独立したカンマ+数字(数字はランダム)を全角変換は難しいでしょうか。 数字はランダムなので、正規表現を使用したいと思っております。 何か良い方法はないでしょうか。 ご指導のほど、よろしくお願いします。
- 締切済み
- Visual Basic