質問をすることでしか得られない、回答やアドバイスがある。

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

新規登録して質問してみよう
ただいま回答率
85.35%
VBA

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

Q&A

1回答

1536閲覧

テキストを読み込んでワークシートに出力する方法

moki_4290

総合スコア0

VBA

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

0グッド

1クリップ

投稿2020/05/28 08:47

前提・実現したいこと

ここに質問の内容を詳しく書いてください。
(例)PHP(CakePHP)で●●なシステムを作っています。
■■な機能を実装中に以下のエラーメッセージが発生しました。

発生している問題・エラーメッセージ

テキストファイルを読み込み,エクセルに出力.といったコードを組んでいます. しかし実行すると,1行の結果がセル一つに出力されてしまいます. テキストファイル,出力結果は画像のようになっています. VBAを独学で学び始めたばかりで, 知識も浅いので,どなたかお力添えいただけると,有難いです. ![![イメージ説明](60e8cfe8df4a54f4977f81a54ee06d07.png)](0491c1a05cd4f5f7edb42ded616ef125.png)

該当のソースコード

VBA

1Sub テキスト取得() 2 3Dim ws As Worksheet 4Set ws = ThisWorkbook.Worksheets(2) 5 6Dim txtPath As String 7txtPath = "C:\Users\advantest2\Desktop\PCNA\解析場\実験結果\framedata_000.txt" 8 9Dim i As Long, j As Long 10Dim strLine As String 11Dim arrLine As Variant 'カンマでsplitして格納 12 13Open txtPath For Input As #1 'csvファイルをオープン 14 15i = 1 16Do Until EOF(1) 17 18 Line Input #1, strLine 19 20 Application.WorksheetFunction.Trim (strLine) 21 22 23 arrLine = Split(strLine) 'strLineをスペースで区切りarrLineに格納 24 25 For j = 0 To UBound(arrLine) 26 27 ws.Cells(i, j + 1).Value = arrLine(j) 28 29 Next j 30 i = i + 1 31Loop 32 33Close #1 34 35End Sub 36

試したこと

ここに問題に対して試したことを記載してください。

補足情報(FW/ツールのバージョンなど)

ここにより詳細な情報を記載してください。

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

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

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

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

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

ttyp03

2020/05/28 08:57

テキストファイルのフォーマットは?カンマ区切りのCSV?スペース区切り?タブ区切り?
moki_4290

2020/05/28 09:00

ご返信していただきありがとうございます. 半角6もしくは7個のスペースで区切ってある .txt(メモ帳)のファイルになります.
ttyp03

2020/05/29 00:33

こちらで試したところ、1行が1セルに入るようなことありませんでした。 その代わり、スペース数分の空セルもできてしまいます。 読み込むファイルのサンプルデータ、どうなって欲しいのかの結果のサンプルを提示した方がよさそうです。
moki_4290

2020/05/29 01:16

ありがとうございます...! 14 10 5 11 12 43 35 44 36 42 13 15 12 10 16 テキストとしては上記のようなものです. 実際はこれがもっと続いていて,数値の個数が 500 × 500 となっています. となっています. 出力結果としては, 各数値がそれぞれセル一つに入ってほしいです. よろしくお願いいたします.
ttyp03

2020/05/29 01:45

問題なく動きました。 本当に半角スペースですか?全角スペースやタブだったりしませんか?
guest

回答1

0

Split関数は、区切り記号を必ず指定してください。
指定しないと、前回の操作内容を記憶しており、思わぬ結果が出てしまいます。

arrLine = Split(strLine)

arrLine = Split(strLine, " ")

投稿2020/06/06 02:17

kai_keitai

総合スコア344

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

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

ただいまの回答率
85.35%

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

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

質問する

関連した質問