エクセルVBAでマクロを作ろうと考えております

Writer: admin Type: clarksre Date: 2019-01-08 00:00
エクセルVBAでマクロを作ろうと考えております。あるフォルダの中に複数のテキストファイルが入っており、その中の複数選択したファイルの中身を一気に変換したいと考えております。ファイル内の「/」が先頭についている行だけを削除し、「G42」という単語を「G41」に変換したい。例)E0000M6M17G91G42D000/G00X-40000Y318500/Z-80000G01X5000Y-2500/G00Z40000/Z40000/X35000Y-316000M7G40M30↓E0000M6M17G91G41D000G01X5000Y-2500M7G40M30変換できたらデスクトップの「変換」フォルダの中に、再度テキスト形式の同じ名前で保存したいと考えております。よろしくお願いいたします。共感した0###せっかくVBA で作るのだから、フォルダ・削除先頭文字・変換ワードを変更できるようにしました。図のように入力して実行して下さい。'Option Explicit'Sub Macro1()'    Dim FileName As String    Dim InpPass As String    Dim OutPass As String'    FileName = CreateObject("WScript.Shell").SpecialFolders("Desktop")    InpPass = Replace([B1], "desktop", FileName)    OutPass = Replace([B2], "desktop", FileName)    FileName = Dir(InpPass & "\*.txt")'    While FileName > ""        InOutPut InpPass, OutPass, FileName        FileName = Dir    WendEnd Sub'Sub InOutPut(InpPass As String, OutPass As String, ByVal FileData As String)'    Open InpPass & "\" & FileData For Input As #1    Open OutPass & "\" & FileData For Output As #2'    While Not EOF(1)        Line Input #1, FileData'        If Left(FileData, 1) <> [B3] Then            FileData = Replace(FileData, [B4], [C4])            Print #2, FileData        End If    Wend    CloseEnd Sub注意、これはANSI専用で、他の文字コートだと文字化けを起こすことがあります。その場合返信をいただければ、他のコード用のプログラムを上げます。###上記のプログラムで思うような作業ができたので感謝いたします。もうひとつ付けくわえてお願いしたいのですがよろしいでしょうか?現状ではフォルダ内のすべてのファイルが変換される仕様です。実作業では全てのファイルを変換し、さらにその中の2~3ファイルだけを抜き出してもう一つ別のマクロを実行させたいのです。開いているフォルダの中の何点かのファイルを選択してそれだけを変換させるにはどういったプログラムを組めばよろしいでしょうか?よろしくお願いいたします。
###完璧です。思った通りのプログラムができました。今後、自分でも勉強していくつもりですが、また躓いたらご教授願います。ありがとうございました。

 

TAG