ExcelVBAマクロでワードファイル書き込み方法

このQ&Aのポイント
  • ExcelVBAマクロについて確認させてください。ワードファイルの内容を変数に読み込み、特定の文字列を赤文字で強調表示して保存する方法を教えてください。
  • ExcelVBAマクロを使用してワードファイルの読み込みと書き込みを行いたい場合、特定の文字列の検索と赤文字での強調表示を行う方法を教えてください。
  • ExcelVBAマクロを活用してワードファイルの書き込みを行いたいです。特定の文字列を赤文字で表示し、別の名前で保存する方法を教えてください。
回答を見る
  • ベストアンサー

ExcelVBAマクロでワードファイル書き込み方法

ExcelVBAマクロについて確認させてください。 下記のように読み込みたいWordファイルをフォームで指定して Wordファイルの内容を変数aに読み込ませてます。 変数Xにある任意の文字列を代入し、変数aでその変数Xが検索された場合は その検索された文字列全てを赤文字にして別の名前で保存という方法は可能でしょうか。 可能であればその方法をご教授下さい。 以上、よろしくお願いいたします。 ---------------------------------- Sub sample() Dim buf As String Dim a As String buf = Application.GetOpenFilename(FileFilter:="テキスト文書,*.txt", Title:="サンプル") 'フルパスも含めたファイル名をbufに代入 With CreateObject("Scripting.FileSystemObject").GetFile(buf).OpenAsTextStream '指定したファイルを開く a = .ReadAll 'テキスト文書の内容を文字列aに代入 .Close '指定したファイルを閉じる End With End Sub

質問者が選んだベストアンサー

  • ベストアンサー
  • n-jun
  • ベストアンサー率33% (959/2873)
回答No.2

No.1です。 WordVBAは苦手ですが、 どのみち Dim a As String から 変数:a は文字列でしかないわけで、 フォントの色情報はないのでは? http://okwave.jp/qa/q5321541.html こちらのようにドキュメントに対して直接行なう とかになるんじゃないのでしょうか? ⇒具体的なものは見つかりませんでしたが。

rotawota7
質問者

お礼

早速のご回答、誠にありがとうございます。 教えていただいたサイトを参考に進めてみようと思います。 色々と調査していただき、ありがとうございました。

その他の回答 (1)

  • n-jun
  • ベストアンサー率33% (959/2873)
回答No.1

検証していないので 的外れかもしれませんが。。。 変数:a に入るのはテキストデータではないの? それを細工してもフォントの色は変更できないでしょう。 docファイルとしてWordで開く必要がある気がするけど。。。

rotawota7
質問者

お礼

早速のご回答、誠にありがとうございます。 色々と調査していただき、ありがとうございました。

rotawota7
質問者

補足

申し訳ありません。 プログラムタイプミスでした。 正しくはこちらになります。 Sub sample() Dim buf As String Dim a As String buf = Application.GetOpenFilename(FileFilter:="Word文書,*.doc*", Title:="チェックするファイル名の指定") 'フルパスも含めたファイル名をbufに代入 With CreateObject("Word.Application") With .Documents.Open(buf) a = .Content.Text .Close End With .Quit End With End Sub

関連するQ&A

  • ExcelVBAマクロでワードファイル読み込み方法

    ExcelVBAマクロについて確認させてください。 下記のように読み込みたいファイルをフォームで指定して それを変数aに読み込ませています。 ですが、この方法ではテキスト文書しか読み込みが出来ないようです。 ワードファイルも読み込むように設定したいのですが可能でしょうか? 可能でしたらその方法をご教授いただけますでしょうか。 ---------------------------------- Sub sample() Dim buf As String Dim a As String buf = Application.GetOpenFilename(FileFilter:="テキスト文書,*.txt", Title:="サンプル") 'フルパスも含めたファイル名をbufに代入 With CreateObject("Scripting.FileSystemObject").GetFile(buf).OpenAsTextStream '指定したファイルを開く a = .ReadAll 'テキスト文書の内容を文字列aに代入 .Close '指定したファイルを閉じる End With End Sub

  • ExcelVBAマクロでの正規表現の方法

    ExcelVBAマクロについて確認させてください。 下記のように読み込みたいファイルをフォームで指定して それを変数aに読み込ませています。 変数aから、半角で書かれた括弧つきの数字(1)~(99)またはは全角で書かれた括弧つきの数字 (1)~(99)の文字列を削除したいのですが、例として"(1)"を削除する場合、次のような命令文 a = Replace(a, "(1)", "")のような書き方でもいいのですが、正規表現を使って もっと効率良い書き方がありますでしょうか。 ぜひご教授下さい。 以上、よろしくお願いします。 ---------------------------------- Sub sample() Dim buf As String Dim a As String buf = Application.GetOpenFilename(FileFilter:="テキスト文書,*.txt", Title:="サンプル") 'フルパスも含めたファイル名をbufに代入 With CreateObject("Scripting.FileSystemObject").GetFile(buf).OpenAsTextStream '指定したファイルを開く a = .ReadAll 'テキスト文書の内容を文字列aに代入 .Close '指定したファイルを閉じる End With End Sub

  • ExcelVBAマクロでテキストボックスの値の代入

    ExcelVBAマクロについて確認させてください。 下記のように読み込みたいファイルをフォームで指定して それを変数aに読み込ませています。 この方法の他に、ユーザーフォームでテキストボックスを 作成してテキストボックス内で文字を記入してその文字を 変数aに読み込ませることは可能でしょうか。 可能であればその方法をぜひご教授ください。 ---------------------------------- Sub sample() Dim buf As String Dim a As String buf = Application.GetOpenFilename(FileFilter:="テキスト文書,*.txt", Title:="サンプル") 'フルパスも含めたファイル名をbufに代入 With CreateObject("Scripting.FileSystemObject").GetFile(buf).OpenAsTextStream'指定したファイルを開く     a = .ReadAll'テキスト文書の内容を文字列aに代入     .Close'指定したファイルを閉じる End With End Sub

  • ExcelVBAマクロについて確認させてください。

    ExcelVBAマクロについて確認させてください。 テキストファイル内の全ての文字を読み込むプログラムですが、テキストファイルがUTF-8形式の場合は文字化けしてしまいます。 UTF-8形式の場合でも読み込める方法はありますでしょうか。 お手数おかけしますが、よろしくお願いします。 Sub test() Dim FSO As Object, buf As String Set FSO = CreateObject("Scripting.FileSystemObject") ''C:\Work\Sample.txtの全ての文字を読み込んで表示します With FSO.GetFile("C:\Work\Sample.txt").OpenAsTextStream buf = .ReadAll MsgBox buf .Close End With Set FSO = Nothing End Sub

  • VBAでテキストファイルの改行を無視する方法

    VBAでテキストファイルにある文字列を配列の変数に格納したいのですが、改行が含まれているとそこから2バイトずつずれてしまいます。 1行毎に読もうとしても1行の文字列が6000バイトぐらいあるので変数に格納しきれません。 読み込むテキストファイルは _________0_________1_________2・・・・________10 _______100________51 のようになっており、10バイトずつ変数に格納していきたいです(スペースも格納する必要あり) 以下のように作ったのですが、改行のあるところからずれてしまいます。 Sub ファイル読み込み() Dim buf(30000000) As String Dim i As Long i = 0 With CreateObject("Scripting.FileSystemObject") With .OpenTextFile("C:\test.text", 1) Do While .AtEndOfStream <> True buf(i) = .read(10) Loop End With End With End Sub 「次の文字列が改行コードである」ということが分かれば.skipで飛ばせるのですが、その判定式が探しても見つかりません。 どなたかご教授よろしくお願いします。

  • なぜ値が代入されるのかわからない

    Sub Sample1() Dim 文字 As String 文字 = "あああ" Call Sample2(文字) 'プロシージャSample2の引数に変数を渡して呼び出す End Sub Sub Sample2(a As String) MsgBox a End Sub ---------------------------------- をやってみて疑問なのですが、 なぜ a = 文字 がないのに、 aに”あああ”が代入されるのでしょう? aにウォッチ式の追加をあてて、F8で一行ずつステップインしてみると Sub Sample2(a As String) の部分で、 aに””あああ”が代入されています。 a = 文字 と Sub Sample2(a As String) は 同じ意味なのでしょうか?

  • Excelマクロでファイルで重複する文字の削除方法

    Excel VBAについて確認させてください。 下記のExcelマクロはエクセルのA列に入力されてある文字を順に読み込んで ユーザが入力したテキストファイル(=FN1)を読み込んで エクセルのA列に入力されてある文字が見つかった場合は削除する動作の繰り返し作業を行い、 エクセルのA列の文字が入力されてある最後の行まで行ったら 出力ファイル(=FN2)として保存するプログラムです。 ここで出力ファイルにはエクセルのA列に入力されていない文字が 残るものと思われますが、ここで入力されていない文字で 重複する文字があった場合はまとめて一つにする方法をを ご教授いただけますでしょうか。 以上お手数おかけしますがよろしくお願いします。 以下、プログラム本文です。 ----------------------------------------------- Sub sample() Dim a As String Dim y As Long Dim x As String Dim FN1 As String Dim FN2 As String x = InputBox("チェックするファイル名を入力してください。(拡張子も含めてください。)") FN1 = ThisWorkbook.Path & "\" & x FN2 = ThisWorkbook.Path & "\チェック済" & x With CreateObject("Scripting.FileSystemObject").GetFile(FN1).OpenAsTextStream a = .ReadAll For y = 1 To Cells(Rows.Count, 1).End(xlUp).Row a = Replace(a, Cells(y, 1), "") '読み込んだテキストファイルにエクセルのA列にある文字が見つかった場合削除 a = Replace(a, vbCrLf, "") '改行コードの削除 a = Replace(a, vbTab, "") 'タブコードの削除 Next .Close End With With CreateObject("Scripting.FileSystemObject").OpenTextfile(FN2, 2, True) .Write a .Close End With End Sub

  • .xlsファイルが存在するパスを表示させたい

    エクセルマクロ初心者です。 .xlsファイルをサブフォルダも含め検索し、A列にファイル名、B列にファイルが存在するパスを表示させるにはどうしたらいいでしょうか?検索するベースのディレクトリは決まっている”C:\temp”のでtemp以下、.xlsがどこに存在するのかを検索するマクロを組もうとしています。 いろんな書き込みを探し、サブフォルダを含め、ファイル名を取得するものは発見できたので組み込んでみましたが、、パスの表示方法がわかりません。 cnt = 0 Call Sample3("C:\temp") Callでサブルーチンsample3に渡し、ファイル名を取得しています。  Dim cnt As Long Sub Sample3(Path As String) Dim buf As String, f As Object buf = Dir(Path & "\*.xls") Do While buf <> "" cnt = cnt + 1 Cells(cnt, 1) = buf buf = Dir() Loop With CreateObject("Scripting.FileSystemObject") For Each f In .GetFolder(Path).SubFolders Call Sample3(f.Path) Next f End With End Sub あとは、どのように書けばいいのでしょうか? 宜しくお願い致します。

  • ExcelVBAマクロでGUIによるファイル名指定

    ExcelVBAマクロについて確認させてください。 下記のようにマクロのあるカレントフォルダに存在するファイルのなかから 読み込みたいファイルの名前を手入力してそれを変数aに読み込ませています。 ですが、この方法ですとユーザがいちいち手入力しなければならず、 ユーザ負担が大きいのと入力漏れおよび入力ミスが発生する恐れがあります。 そこで、マウスでファイルをクリックして指定するように基礎的な操作をマウスによって 行うGUIを作成したいのですが、ExcelVBAマクロで可能でしょうか。 あるいはExcelVBAに導入が可能なソフトウェアおよびそれが可能なソフトウェア があればぜひご教授ください。 以上、よろしくお願いいたします。 ---------------------------------- Sub sample() Dim FN As String Dim FullPathFileName1 As String Dim a As String FN = InputBox("読み込むファイル名を入力してください。(拡張子も含む。)") FullPathFileName1 = ThisWorkbook.Path & "\" & FN a = CreateObject("Scripting.FileSystemObject").GetFile(FullPathFileName1).OpenAsTextStream.Readall a = Replace(a, vbCrLf, "") '改行コードの削除 CreateObject("Scripting.FileSystemObject").GetFile(FullPathFileName1).OpenAsTextStream.Close End Sub

  • エクセルマクロ フォルダ内のファイル検索で

    よろしくおねがいします。 下記で、どうも指定フォルダ内のファイル名を検索できていないようで 条件の"ないなら"に反応して中断するハズがファイルを開いてしまいます。 思ったのですが、bufの設定にファイル名は指定できないのでしょうか? Sub Start8() Dim buf As String, IptA As String Const Path As String = "C:\001\" IptA = Workbooks("AAA.xls").Sheets("Sheet1").Cells(1, 1).Value buf = Dir(Path & "" & IptA & ".txt") If buf = "" Then Range("A2").Select ActiveCell.FormulaR1C1 = "" & IptA & "は見つかりません" Exit Sub Else Range("A2").Select ActiveCell.FormulaR1C1 = "" & IptFN & "が見つかりました" End If Workbooks.OpenText Filename:= _ "C:\001\" & IptA & ".txt" End Sub

専門家に質問してみよう