こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

締切り済みの質問

指定ファイル内の指定場所へセルの内容を記載したい

エクセルマクロ初心者です。

今、指定ファイル内の指定場所へセルの内容を記載するマクロを考えています。
指定ファイルは.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)

セルの内容をベタ書きするというのは検索すると出てくるのですが、ファイル内の指定場所に書き込むというのが、応用が利かずどうにも分かりません。
どうぞご教示下さい。宜しくお願い致します。

投稿日時 - 2014-06-23 11:57:06

QNo.8649991

困ってます

このQ&Aは役に立ちましたか?

0人が「このQ&Aが役に立った」と投票しています

回答(1)

ANo.1

サンプルで示されているデータが、多分、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

投稿日時 - 2014-07-07 23:39:15

あなたにオススメの質問