• 締切済み

複数ファイルの内容の文字列置換

エクセルで請求書を作成しています。 会社の電話番号が変わったので、 電話番号の一括変改をしたいと考えています。 複数ファイルの内容を一括変換する方法はありますでしょうか?

noname#12381
noname#12381

みんなの回答

  • ja7awu
  • ベストアンサー率62% (292/464)
回答No.3

コードの訂正です。 最後から13行目を次のように訂正してください。 このコードを設定したブックが、検索用ホルダにある場合、自身の検索を除外します。   If Mypath & FName = ThisWorkbook.FullName Then FName = Dir

  • ja7awu
  • ベストアンサー率62% (292/464)
回答No.2

> 複数ファイルの内容を一括変換する方法はありますでしょうか? VBAを使用することにより、一括置換えることが、出来ます。 該当するブックのホルダが、どのように分布しているのかが分りませんので、 ここでは、1つのホルダを指定して、その中の全てのブック(.xls)を検索し、 見つかったら、全て置換えるように、作ってみました。 宜しかったら、新規ブックでテストしてみてください。 一応、ご存知とは思いますが、操作手順を詳しく書いて置きます。 1.Alt + F11 で VBE(Visual Basic Editor)を開きます。 2.VBE のメニューから[挿入] -->[標準モジュール] を指定します。 3.モジュールウィンドウに下記コードをコピーして貼り付けます。 4. コードの 2~4 行目の " " の中を実情に合わせて変更します。 5.Alt + Q (または、右上隅の×)でウィンドウを閉じ、シートに戻ります。 6.メニューから[ツール]-->[マクロ]-->[セキュリティ]で「セキュリティレベル」を  「中」にして[OK]します。 7.実行するときは、Alt + F8 (メニューから[ツール]-->[マクロ]-->[マクロ])で  「フォルダ内ブック文字列置換え」を指定し、[実行]ボタンを押します。 これで、全部置換えになると思います。 ・ 検索対象ブックのシート内で、他ブックのセル参照が設定されている場合は、   その旨のダイアログボックスが表示されます。 ・ 検索を終了すると、検索対象ブック数と、置換え総件数が表示されます。 Sub フォルダ内ブック文字列置換え() Const Mypath = "C:\DATA\" '      <--- 検索フォルダ名を指定 Const OldStr = "0123-45-6789" '    <--- 置換え旧文字列 Const NewStr = "0123-98-7654" '    <--- 置換え新文字列 Dim WB As Workbook Dim Rng As Range Dim FName As String Dim Bcnt As Integer Dim Dcnt As Integer Dim Scnt As Integer Dim N As Integer Application.ScreenUpdating = False Application.EnableEvents = False Application.DisplayAlerts = False FName = Dir(Mypath & "*.xls", vbNormal) Do While FName <> ""   Set WB = Workbooks.Open(Mypath & FName)   Bcnt = Bcnt + 1   Scnt = 0   Windows(WB.Name).Visible = False   For N = 1 To WB.Worksheets.Count     Set Rng = WB.Worksheets(N).Cells.Find(OldStr)     If Not Rng Is Nothing Then       Scnt = Scnt + 1       Do         Rng.Value = Replace(Rng.Value, OldStr, NewStr)         Dcnt = Dcnt + 1         Set Rng = WB.Worksheets(N).Cells.FindNext(Rng)       Loop Until Rng Is Nothing     End If   Next N   If Scnt = 0 Then     WB.Close SaveChanges:=False   Else     Windows(WB.Name).Visible = True     WB.Close SaveChanges:=True   End If   FName = Dir   If FName = ThisWorkbook.FullName Then FName = Dir Loop Application.DisplayAlerts = True Application.EnableEvents = True Application.ScreenUpdating = True If Bcnt = 0 Then   MsgBox "指定したフォルダに、ブックは見つかりませんでした。", , "検索完了" Else   MsgBox Bcnt & " のブックを検索し " & Dcnt & " 箇所を書換えました。", , "置換え完了" End If Set WB = Nothing Set Rng = Nothing End Sub

  • neKo_deux
  • ベストアンサー率44% (5541/12319)
回答No.1

OfficeGrep http://www.vector.co.jp/soft/win95/util/se190183.html などのソフトを利用するのがお手軽です。 あるいは、マクロ、VBAを利用すれば処理可能ですので、こちらに挑戦してみる方が良いかも。

関連するQ&A

  • 複数の文字列を同時に置換できるソフト

    こんにちは。 複数の文字列を一括で置換できるソフトで、 以下の条件に合ったソフトを探しております。 (1)HTMLファイルが読み込める。 (2)複数の文字列を同時に一括置換できる(複数行を対象に)。 (↑あらかじめ置換したいリストを作成・登録する形に なるのかもしれません。) (3)さらに複数のファイルで同時に置換できる。 上記の(1)、(2)は必須になります。 可能であれば、(3)ができれば大変助かります。 ・・以上のようなフリーソフトはありますでしょうか? ご回答よろしくお願い致します。

  • 複数文字列の一括置換?

    置換とは少々違うのかもしれませんが… ファイルA: あいうえお title1 かきくけこ title2 さしすせそ title3 たちつてと title4 ファイルB: 1 アイウエオ 2 カキクケコ 4 タチツテト ファイルC: あいうえお アイウエオ かきくけこ カキクケコ さしすせそ title3 たちつてと タチツテト * ファイルは全てテキスト形式です。 Aのテキストを、Bを使ってCのように一気に変換したいのですが、何か良い方法は無いでしょうか? (変換する内容がBに無い場合もありえますので、その場合の処理も指定したいです。) 手軽に行える方法(ソフト?)等があると助かります。 ちなみに今は、 ・Aのテキストのtitle部分を削除する ・Tab区切りに変える ・エクセルに貼り付ける ・vlookup関数で変換 とやっていますが、ファイル数が多く大変です。 実際はAの内容はもっと複雑で、vlookupが使えるように無理矢理Tab区切りにしているので、変換後にもとの形に戻すのが難しいです;;

  • DOSでファイルの内容を置換

    一つのテキストファイルの中身を置換する方法は 解るのですが一つ一つやるのが不便なので、 テキストファイルの内容を一括で 置換できるコマンドを探しています。 ファイル名 A.txt 内容    名前A.名前B.本文 ファイル名 B.txt 内容    名前A.名前B.本文 具体的には上記のように複数のファイルがあるのですが この複数のファイルの名前Aという部分を一括で変更できるコマンド又はやり方を教えてください。

  • 複数のファイル 改行が入った文字列の一括変換

    改行が入って複数行にわたる文字列を 複数のファイルを対象にして 一括変換するツールは ありませんでしょうか。 一行だけの文字列では 「ファイルから置換」を使っているのですが、 複数行を対象にした置換をする方法がわからないのです。

  • 複数のテキストファイルの一括置換について

    複数のテキストファイルの一括置換について 複数のテキストファイル(html)の中にある 【地域名】という文字列を一括でそれぞれA、B、C・・・・という風に異なる文字列に変換したいです。 たとえば 001/index.html の中にある【地域名】は北海道 に変換 002/index.html の中にある【地域名】は青森 に変換 ・ ・ ・ 変換前の文字列は同一ですが、変換後の文字列を全ファイル異なるものにしたいので秀丸等の一括置換ができずに困っています。 全ファイル開いて1つ1つ検索置換していくには2000ファイルほどあるので大変なので何かいい案はないでしょうか? よろしくお願いいたします。

  • 複数のエクセルファイル間の文字検索

    複数のエクセルファイル間で特定の複数の文字検索の方法を教えてください。 エクセルファイルが(1)~(6)まであり、(1)のファイル内の複数の型番が (2)~(6)のエクセルファイルに存在するのかを知りたいのです。 複数の型番を一括で検索できる方法はあるのでしょうか。 会社のPCのため、検索ソフトは使用できません。 また機能拡張などもダウンロードできない環境です。 win10です。 宜しくお願い致します。

  • 複数行に渡る文字列の置換

    Perlで書かれたソースを以下のように書き換えたいと考えています。 【変換前】 my $message = Convert( From => 'Shift_JIS', To => 'utf-8', Text => "(UTF-8の文字列)", ); 【変換後】 my $message = Convert( "(UTF-8の文字列)" ); ソース・ファイルは非常にたくさんあるのでスクリプトを組んで一括で行いたいと考えています。 容易く書き換えを完了できる方法はないでしょうか? ■前提条件 - 別の場所に出力するようにする場合はディレクトリ階層も維持する。 - インデントされている場合はインデントを保持する。 perl -pi -e 's///'で置換することが最も簡単そうですが、今回は複数行に渡るため、 s///の部分が非常に複雑になりそうです。なので、s///の部分をスクリプト・ファイルかなにかに 置き換えて、下記のように実行できればと考えているのですが、(何かしらのオプション)の部分が よくわかりません。。 perl -i (何かしらのオプション) (ファイル名) (ソースファイル名)... もちろんもっと良い方法があれば、その方法が良いです。 よろしくお願いいたします。

    • ベストアンサー
    • Perl
  • Dreamweaverを使わず大量の複数ファイルの内容を一括置換したい。

    Dreamweaverではファイルを開かなくても 大量の複数ファイルの内容を一括置換することができますが、 Dreamweaverを使わずにこれと同じことができるアプリなどはありますか? ※大量ファイルというのは、何百とか何千とかいう多さです。数十ファイルではありません。

  • 複数のエクセルファイルを一括でPDFに変換する方法はないでしょうか?使

    複数のエクセルファイルを一括でPDFに変換する方法はないでしょうか?使用OSはMacOS 10.4でエクセルは2008です。

    • ベストアンサー
    • Mac
  • 複数のファイルの文字コードを一括変更したい

    WindowsXPのメモ帳で作成したファイルの文字コードがすべて「unicode」になっています。 既に「unicode」で作成してしまった複数のファイルの文字コードを一括で「ANSI」に変更したいと思っています。 ファイルをひとつひとつ開いていくのが大変なので困っています。 もし、これら複数のファイルを選択し、一括で文字コードを変える方法があるならば教えて下さい。

専門家に質問してみよう