- 締切済み
指定ファイル内の指定場所へセルの内容を記載したい
エクセルマクロ初心者です。 今、指定ファイル内の指定場所へセルの内容を記載するマクロを考えています。 指定ファイルは.txtではなく、Notepadやメモ帳等で開くことができるファイルです。 仮にtest.abc(拡張子が.abc)とします。 先ほどセルといいましたが、正確にはA列、B列です。行は複数ありA列とB列の行数は同一です。 i=1から始まり、空白行まで進んだら処理は終了です。 指定ファイルの存在場所は決まっています(C:\temp\test.abc)。 test.abcは下記のようにフォーマットとして決まっており、セルA1の内容、セルB1の内容を記載したらセルA2、セルB2の内容を記載していく・・・。としたいです *set(1) *creat(1) "" *input("#abc"," セルA1の内容 ",1,2,3) *mark(1) *name(comp,"abc"," セルB1の内容 ") *sel(0) *set(1) *creat(1) "" *input("#abc"," セルA2の内容 ",1,2,3) *mark(1) *name(comp,"abc"," セルB2の内容 ") *sel(0) *set(1) *creat(1) "" *input("#abc"," セルA3の内容 ",1,2,3) *mark(1) *name(comp,"abc"," セルB3の内容 ") *sel(0) セルの内容をベタ書きするというのは検索すると出てくるのですが、ファイル内の指定場所に書き込むというのが、応用が利かずどうにも分かりません。 どうぞご教示下さい。宜しくお願い致します。
- みんなの回答 (1)
- 専門家の回答
みんなの回答
- Prome_Lin
- ベストアンサー率42% (201/470)
サンプルで示されているデータが、多分、1つ目をコピー&ペーストした物だと思われるので、以下のプログラムは参考程度にしてください。 なお、同じファイル名で読み書きするのは、出来ないと思いますので、以下のプログラムでは、ファイル名を変えて、書き出しています。 もし、ファイル名を変えてはいけないのでしたら、いったん、ファイルを別名で書き出しておき、元ファイルを削除し、ファイル名を元ファイルと同じに、書き直すしかないのではないでしょうか? Option Explicit Sub Test() Dim l As Integer Dim q, r, s() As String Open "C:\temp\test.abc" For Input As #1 Open "C:\temp\Result.abc" For Output As #2 l = 0 Do Until EOF(1) Line Input #1, q If InStr(q, "*input(") > 0 Then l = l + 1 s = Split(q, ",") q = s(0) & "," & Chr(34) & ActiveSheet.Cells(l, 1).Value & Chr(34) & "," & s(2) & "," & s(3) & "," & s(4) ElseIf InStr(q, "*name(comp,") > 0 Then s = Split(q, ",") q = s(0) & "," & s(1) & "," & Chr(34) & ActiveSheet.Cells(l, 2).Value & Chr(34) & ")" End If Print #2, q Loop Close #1 Close #2 End Sub