![](http://oshiete.xgoo.jp/images/v2/pc/qa/question_title.png?8acaa2e)
エクセル置換表を基に、開いてあるワードの文書内を検索して、該当の旧番号があれば、新番号に置換えるVBAのプログラムを
教えていただけませんか。
また、参考になる書籍等があれば教えていただけませんか。
【実施内容詳細】
エクセル置換表を基に、開いてあるワードの文書内(ヘッダー、フッター含)を検索して、該当の旧番号があれば、新番号に置換える。
使用ソフト ワード エクセル 2003
使用ファイル名 A.doc B.xls
ステップ1 ワードの文書内に旧番号A1がないか検索して、A1があれば、新番号B1に置き換える。
ステップ2 ワードの文書内に旧番号A2がないか検索して、A2があれば、新番号B2に置き換える。
ステップ3 エクセルA列の最後(空欄)まで実施して終了する。
エクセル置換表
A列 B列
旧番号 新番号
行2 A1 B1
行3 A2 B2
以下同様
追記:
マクロを使用したことはありませんので事前設定方法も教えていただけませんか。
No.1ベストアンサー
- 回答日時:
.Find.Executeの処理結果がうまく拾えなかったので、置換表のC列に出したのは、単に通過した、という意味、、、
Option Explicit
Sub WORD検索置換()
Const xPath = "D:\tmp\tmp\aho.doc"
Const xKey = "A"
Const xKey_Rep = "B"
Const wdReplaceAll = 2
Dim objWord As New Word.Application
Dim objDoc As Word.Document
Dim objSelection As Object
Dim xSheet As Worksheet
Dim xResult As Boolean
Dim xLast As Long
Dim kk As Long
Dim nn As Long
On Error Resume Next
Application.ScreenUpdating = False
Application.DisplayAlerts = False
Set xSheet = Sheets("Sheet1")
xLast = xSheet.Cells(Rows.Count, "A").End(xlUp).Row
' Word文書を開く
Set objWord = CreateObject("Word.Application")
objWord.Visible = True
Set objDoc = objWord.Documents.Open(xPath)
Set objSelection = objWord.Selection
With objSelection
For nn = 2 To xLast
If (xSheet.Cells(nn, xKey).Value <> Empty) Then
'objSelection.Find.Text = "Contoso"
.Find.Text = xSheet.Cells(nn, xKey).Value
.Find.Forward = True
.Find.MatchWholeWord = True
.Find.Replacement.Text = xSheet.Cells(nn, xKey_Rep).Value
xResult = .Find.Execute(Replace:=wdReplaceAll)
xSheet.Cells(nn, "C").Value = Empty
'if (xResult) then
xSheet.Cells(nn, "C").Value = "Done??"
'End If
End If
Next
End With
objWord.Documents.Close
'objWord.Quit
Application.DisplayAlerts = True
Application.ScreenUpdating = True
End Sub
この回答への補足
ご回答ありがとうございました。
本文の置換えわはうまくできました。
ただ、ヘッダーとフッターについても置換えしたいのですが、
やり方がわかればお教えていただけませんか。
宜しくお願い致します
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) Excel VBA 教えてください。 VBA初心者です。 詳しい方がいましたら教えてください。 下記 3 2023/04/25 11:22
- Excel(エクセル) 製品番号での整列と、検索に関して 3 2023/06/28 19:20
- Visual Basic(VBA) VBA初心者です。電話番号の数字の前に0を表示させたいです。 2 2022/12/14 03:58
- Excel(エクセル) 指定文字列が該当するA列をアクティブセルにするには 3 2022/08/17 13:18
- Excel(エクセル) SUMIFのIF分岐について 4 2023/04/15 12:57
- Excel(エクセル) Excelの列から検索して該当する行を別シートに転記するVBA 2 2022/12/20 09:35
- Excel(エクセル) 関数EXACT(文字列,文字列)とexcelVBA 3 2022/04/14 15:07
- 教育ソフト・学習ソフト マイクロソフトのシリアル番号と自分のアカウント解除 2 2023/07/19 08:27
- その他(Microsoft Office) エクセルのマクロについて教えてください。 5 2023/01/21 09:39
- フリーソフト フォルダ、ファイル名の一括変換について 3 2023/03/16 09:23
このQ&Aを見た人はこんなQ&Aも見ています
-
性格の違いは生まれた順番で決まる?長男長女・中間子・末っ子・一人っ子の性格の傾向
同じ環境で生まれ育っても、生まれ順で性格は違うものなのだろうか。家庭教育研究家の田宮由美さんに教えてもらった。
-
【VBA】エクセルの指定セルの値を、Wordの指定場所に貼る方法
Excel(エクセル)
-
WordVBAで規定のところに文字列を挿入したい
Access(アクセス)
-
VBAでページ番号、ページ最終行を取得する方法
その他(プログラミング・Web制作)
-
-
4
ワードのマクロで段落番号(文字も含む)取得ってできますか
Word(ワード)
-
5
MS Office Word のマクロで行列の現在位置を取得したいのですが?
Word(ワード)
-
6
エクセルからワードに書き出すマクロを教えてください。
Word(ワード)
-
7
PDFファイルをコピーしてエクセルブックにはりつけるVBA
Excel(エクセル)
-
8
ワードからエクセルへ貼り付けるマクロ
Excel(エクセル)
-
9
ExcelからVBAでWordを操作する際に、困っています。
Visual Basic(VBA)
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
カンマを改行に変換する方法
-
文字列に含まれているダブルク...
-
エクセルで濁点カナの変換方法...
-
Excelで全角ハイフンを半角ハイ...
-
Word:差し込み印刷時に文字列...
-
ExcelのVBA 正規表現でタブを...
-
エクセルの『検索と置換ボック...
-
秀丸で余分なスペースを削除したい
-
.txtファイルの空白を全て消去...
-
数学 記号 sgn
-
Word2010で小数点の検索
-
文字の列を揃えるには
-
セルの文字列後ろのスペース削除
-
word 改行マークを印刷時に表示...
-
Accessでの置換
-
Access上での一括データ削除に...
-
ワードで複数の文字を一括・連...
-
エクセルの「置換」で1行の部分...
-
エクセル 置換又は関数でかっこ...
-
複数のスペースを1つのタブに...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
カンマを改行に変換する方法
-
カンマ( , )をタブに置換したい。
-
Excelで全角ハイフンを半角ハイ...
-
エクセルの『検索と置換ボック...
-
文字の列を揃えるには
-
秀丸で余分なスペースを削除したい
-
文字列に含まれているダブルク...
-
エクセルで濁点カナの変換方法...
-
ワードで複数の文字を一括・連...
-
Excelで特定の文字以下を削除し...
-
エクセル重複削除で綺麗に削除...
-
複数のスペースを1つのタブに...
-
Word:差し込み印刷時に文字列...
-
エクセル 置換又は関数でかっこ...
-
【MS Office Word 2007】文章の...
-
セルの文字列後ろのスペース削除
-
Excel : テキストボックス中の...
-
ExcelのVBA 正規表現でタブを...
-
エクセルVBAでワードの文字を検...
-
1文字だけ置換したい
おすすめ情報