Excel VBA質問箱 IV

当質問箱は、有志のボランティア精神のおかげで成り立っています。
問題が解決したら、必ずお礼をしましょうね。
本サイトの基本方針をまとめました。こちら をご一読ください。

投稿種別の選択が必要です。ご注意ください。
迷惑投稿防止のため、URLの入力を制限しています。ご了承ください。


2002 / 13645 ツリー ←次へ | 前へ→

【70558】テキストファイルを1セル毎に一括インポートしたい ヒロ 11/11/30(水) 8:41 質問[未読]
【70559】Re:テキストファイルを1セル毎に一括インポ... Yuki 11/11/30(水) 9:52 発言[未読]
【70560】Re:テキストファイルを1セル毎に一括インポ... ヒロ 11/11/30(水) 10:00 お礼[未読]

【70558】テキストファイルを1セル毎に一括インポ...
質問  ヒロ  - 11/11/30(水) 8:41 -

引用なし
パスワード
   はじめまして、vba初心者です。

数千のテキストデータ(アンケート)をエクセルの一つのシートに纏める作業をしていますが手作業でコピペをしているので大変時間がかかります。
ファイルの位置は固定です。
そこでマクロを使い一括で出来ないか考えていたところ、下記のコードに出会いました。

自分でも色々改変してみたのですが、さっぱりでした。
私がやりたいのはテキストファイル一つを1セルの中に入れることです。
テキスト1の内容をエクセルA1へ
テキスト2の内容をエクセルA2へ
テキスト3の内容をエクセルA3へ

このような形に変更するのはどこを修正すればよいのか教えていただければと思います。
よろしくお願いいたします。

-------------------------------------------------------------------
' テキストファイル一括読み込み
'
' ディレクトリ中の全てのテキストファイルを読み込みます。
' ファイル中の1行をワークシートの1列として、1ファイルを1行に収めます。
' メイルフォームから受け取ったような "=" で区切られた文字列を処理します。
'
' 本プログラムは GNU LGPL に拠り配布されるフリー・ソフトウェアです。
' GNU LGPL の条件に反しない限り、配布・変更は自由です。
'
' 無保証です。このソフトウェアの使用により生じたいかなる損害についても、
' 作者は責任を負いません。
'
' Copyright: 1999, 魔術幻燈
' -------------------------------------------------------------------
Sub 階層まるごとテキスト読み込み()
  Dim dir_name As String, file_name As String
  Dim rn As Integer
  
  dir_name = Application.GetOpenFilename( _
     "テキストファイル (*.txt),*.txt", 1, _
     "読み込み元のファイルをどれか一つ開いてください" _
     )
  If dir_name = "False" Then Exit Sub
  
  file_name = Dir("*.txt", vbNormal)
  
  rn = 1 ' 開始行 - 1 を設定
  
  Do Until file_name = ""
    rn = rn + 1
    Call ImportText(file_name, rn)
    file_name = Dir()
  Loop
  
  Application.StatusBar = "不要な文字列を削除しています。"
  ActiveSheet.UsedRange.Replace _
    what:="*=", Replacement:=""
  Application.StatusBar = False
  
  MsgBox dir_name & "が入っているディレクトリの内容を読み込みました。", 0, "メイル読み込み"
End Sub

Sub ImportText(file_name As String, rn As Integer)
  Dim FileNum As Integer
  Dim TextLine As String
  Dim cn As Integer

  FileNum = FreeFile()
  Open file_name For Input Access Read As #FileNum
  
  Application.StatusBar = "ファイル""" & file_name & """の内容を読み込んでいます。"

  On Error GoTo CloseFile

  Do Until EOF(FileNum)
    Line Input #FileNum, TextLine
    cn = cn + 1
    Cells(rn, cn).Value = Trim(TextLine)
  Loop

CloseFile:
  Application.StatusBar = False
  Close #FileNum
End Sub

【70559】Re:テキストファイルを1セル毎に一括イン...
発言  Yuki  - 11/11/30(水) 9:52 -

引用なし
パスワード
   こんにちは。

サンプルです。
ディレクトリ名や拡張子は適宜変更してください。

Sub TESTa()
  Dim strDir   As String
  Dim strFnm   As String
  Dim io     As Integer
  Dim buf()    As Byte
  Dim v      As Variant
  Dim i      As Long
  
  strDir = "D:\Test\"
  io = FreeFile
  strFnm = Dir(strDir & "*.txt")
  
  Do While strFnm <> ""
    ' File Open Binary Mode で
    Open strDir & strFnm For Binary Lock Read As #io
    ReDim buf(LOF(io))
    ' 一括読み込み
    Get #io, , buf
    Close #io
    i = i + 1
    ' セルに
    Cells(i, 1).Value = StrConv(buf, vbUnicode)
    strFnm = Dir()
  Loop
End Sub

【70560】Re:テキストファイルを1セル毎に一括イン...
お礼  ヒロ  - 11/11/30(水) 10:00 -

引用なし
パスワード
   Yuki さん
ありがとうございます!!!!
思い通りの操作が出来ました!!

昨日の夜何時間掛けても解決策が見つからなかったのですが、こんなに短時間で解決するとは.............。

本当にありがとうございます。

2002 / 13645 ツリー ←次へ | 前へ→
ページ:  ┃  記事番号:
2610219
(SS)C-BOARD v3.8 is Free