🎄teratailクリスマスプレゼントキャンペーン2024🎄』開催中!

\teratail特別グッズやAmazonギフトカード最大2,000円分が当たる!/

詳細はこちら
VBA

VBAはオブジェクト指向プログラミング言語のひとつで、マクロを作成によりExcelなどのOffice業務を自動化することができます。

Q&A

解決済

1回答

1526閲覧

テキストファイルを条件付きでexcelに書き出すVBAを作成したい

Ryzen9

総合スコア2

VBA

VBAはオブジェクト指向プログラミング言語のひとつで、マクロを作成によりExcelなどのOffice業務を自動化することができます。

0グッド

0クリップ

投稿2021/03/23 06:15

編集2021/03/23 06:19

前提・実現したいこと

テキストファイルのデータをexcelのセルに書き込むVBAを作成したいです。
書き込むにも条件を加えたく、「{」と「}」の中にあるデータをセルに書き出したいです。

具体的に説明すると、
txtファイルの中身が以下になっており、

data
{1997
8400
7777
}
{9111
5555
4444
}

txtファイルからexcelのセルに以下のように出力したいです。

19979111
84005555
77774444

まだVBAを始めたばかりなので、詳しい方がいればご教授ください。

該当のソースコード

Sub fileinput() Dim buf As String, n As Long Open "C:\data.txt" For Input As #1 Do Until EOF(1) Line Input #1, buf n = n + 1 Cells(n, 1) = buf Loop Close #1 End Sub

試したこと

該当のソースコードには試しに一行ずつのデータを書き出すことができましたが、条件付きで書き出すにはどうすればいいか分からないので、ご教授ください。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

K_3578

2021/03/23 06:16

ソースコードはMarkDownの<code>ブロック内に貼り付けてください。 質問は編集できますので。
Ryzen9

2021/03/23 06:19

ご指摘ありがとうございます。修正致しました。
guest

回答1

0

ベストアンサー

与えられた情報だけであればこんな書き方もあります。
数値に限定しているので文字列があれば破綻してます。

vba

1Sub fileinput() 2 Dim buf As String 3 Dim r As Long, c As Long 4 Open "C:\data.txt" For Input As #1 5 Do Until EOF(1) 6 Line Input #1, buf 7 If InStr(buf, "{") Then 8 r = 1 9 c = c + 1 10 Cells(r, c) = Mid(buf, 2) 11 ElseIf IsNumeric(buf) Then 12 r = r + 1 13 Cells(r, c) = buf 14 End If 15 Loop 16 Close #1 17End Sub

投稿2021/03/23 07:29

radames1000

総合スコア1925

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

Ryzen9

2021/03/24 08:01

ご回答ありがとうございます。 試ししに実行したところ、以下のエラーが発生しました。 「実行時エラー:1004 アプリケーション定義またはオブジェクト定義のエラーです。」 該当するソースコードは、 Cells(r,c) = buf となっております。 宣言したr,cに問題があるのでしょうか?
Ryzen9

2021/03/24 10:13

申し訳ありません。ソースコードはそのままでテキストファイルを作り直したところ、エラーが解決でき、上手く出力することが出来ました。 ご教授ありがとうございます。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.36%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問