質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.50%
VBA

VBAはオブジェクト指向プログラミング言語のひとつで、マクロを作成によりExcelなどのOffice業務を自動化することができます。

マクロ

定義された処理手続きに応じて、どのような一連の処理を行うのかを特定させるルールをマクロと呼びます。

Q&A

解決済

1回答

461閲覧

VBA 複数文字の置換について

Echo

総合スコア1

VBA

VBAはオブジェクト指向プログラミング言語のひとつで、マクロを作成によりExcelなどのOffice業務を自動化することができます。

マクロ

定義された処理手続きに応じて、どのような一連の処理を行うのかを特定させるルールをマクロと呼びます。

0グッド

0クリップ

投稿2022/11/14 04:43

前提

ExcelはM365 64ビット版を使用しております。
VBAの勉強自体は初めてである為、サンプルコードの説明まで頂けると幸いです。

実現したいこと

C:tmpフォルダ内のtest.txtに記載されている
文字列「test1」を「test3」に「test2」を「test4」に置換しtestA.txtという名前で
C:¥tmp¥済フォルダに保存したい

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

pig_vba

2022/11/14 04:52

tmpフォルダ内に済フォルダは作成済みですか? あと、これは質問者の理解力の確認のために聞きたいのですが、単体での置換はご自身で可能という判断でよろしいですか?
Echo

2022/11/14 05:42

反応頂きありがとうございます 済フォルダは作成済みです。 ネットで色々探してみましたが単体での置き換えも上手くできていません、、
pig_vba

2022/11/14 06:13

差し支えなければ調べたサイト、もしくは検索ワードを質問文に追記してください。 現状、「調べ方が悪い」のか「参考にしたサイトが悪い」のか「理解力が足りない」のか分からないのでどこを説明すればいいかわからないです
guest

回答1

0

ベストアンサー

VBA初心者ならステートメントよりブック操作で書いた方が分かりやすいと思うので。処理速度は気にする段階でもないでしょうし

一応、VBAでよく使われる構文を多めに使うように意識はしました。

VBA

1Sub replaceText() 2 3 Dim wb As Workbook 4 Dim ws As Worksheet 5 6 Dim fname As String 7 fname = "C:\tmp\test.txt" 8 9 Dim savename As String 10 savename = "C:\tmp\済\testA.txt" 11 12 13 '操作するブックを開いて変数に格納(変数で直接操作できるようにする) 14 Set wb = Workbooks.Open(fname) 15 16 'シート内全て回す 17 For Each ws In wb.Worksheets 18 'シート内で使用されている全セルを対象にreplace 19 With ws.UsedRange 20 .Replace what:="test1", replacement:="test3" 21 .Replace what:="test2", replacement:="test4" 22 End With 23 Next ws 24 25 '別ブックとして保存(編集前のファイルを残す) 26 wb.SaveCopyAs Filename:=savename 27 wb.Close savechanges:=False 28End Sub 29

投稿2022/11/14 05:18

pig_vba

総合スコア807

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

Echo

2022/11/14 06:07

丁寧なコメントとわかりやすい構文を使用していただきありがとうございました。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.50%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問