Excel VBA質問箱 IV

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

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


13358 / 13646 ツリー ←次へ | 前へ→

【5625】セルにファイルの内容を追記したい orion 03/5/22(木) 17:11 質問
【5637】Re:セルにファイルの内容を追記したい Kein 03/5/23(金) 13:38 回答
【5685】Re:セルにファイルの内容を追記したい orion 03/5/27(火) 15:36 質問
【5691】Re:セルにファイルの内容を追記したい Kein 03/5/27(火) 20:34 回答
【5772】Re:セルにファイルの内容を追記したい orion 03/5/29(木) 19:05 お礼

【5625】セルにファイルの内容を追記したい
質問  orion  - 03/5/22(木) 17:11 -

引用なし
パスワード
   現在 fname という変数で拾ってきたファイルパスからファイルを開き、そして
そこに書いている内容をセルに表示するものを以下のように書いています。

Open fname For Input Access Read As #1
  While Not EOF(1)
    buffer = buffer & input(1, #1)
  Wend
  Range("A35") = buffer
  Close #1

しかし、これでは当然追記できないとおもうのですが、appendの文を
この場合どのように修正すればできるようになるのでしょうか?

よろしくご教授願います。

【5637】Re:セルにファイルの内容を追記したい
回答  Kein  - 03/5/23(金) 13:38 -

引用なし
パスワード
   ▼orion さん:
Open fname For Input Access Read As #1
While Not EOF(1)
  Line input #1, buffer
  ByfAry = Split(buffer, ",") 'カンマ区切りの場合
  Range("A65536").End(xlUp).Offset(1) _
  .Resize(, UBound(BufAry) + 1).Value = BufAry
Wend
Close #1

とすれば、A列最終入力行の次から追記されます。
Excel2000以降なら、これでオッケーです。

【5685】Re:セルにファイルの内容を追記したい
質問  orion  - 03/5/27(火) 15:36 -

引用なし
パスワード
   複数のテキストファイルを特定の1つのセルにAPPENDするにはどうしたらよい
でしょうか?


Keinさんの回答では、

Open fname For Input Access Read As #1
While Not EOF(1)
  Line input #1, buffer
  ByfAry = Split(buffer, ",") 'カンマ区切りの場合
  Range("A65536").End(xlUp).Offset(1) _
  .Resize(, UBound(BufAry) + 1).Value = BufAry
Wend
Close #1

でしたのですが、対象とするファイルがカンマ区切りでなく、
ただのコメントが書いているテキストファイルが複数あるものを、1つのセルに
追記して書き込みたいのです。

この場合は、どうすればよいでしょうか?
このような質問の仕方になってすみません。

【5691】Re:セルにファイルの内容を追記したい
回答  Kein  - 03/5/27(火) 20:34 -

引用なし
パスワード
   >複数のテキストファイルを特定の1つのセルに
では、マクロ実行ブックと同一フォルダーに保存しているテキストを、
任意に選んで開き、Sheet1.A1セルに改行しながら全てのデータを
入れていく。というコードにしてみます。

Sub Test2()
  Dim MyF As Variant
  Dim TR As Range
  Dim i As Integer
  Dim FSO As Object, MyTxt As Object
  Dim Buf As String

  MyF = Application _
  .GetOpenFileName("テキストファイル(*.txt),*.txt", , , , True)
  If Not IsArray(MyF) Then Exit Sub
  Set TR = Worksheets("Sheet1").Range("A1")
  '↑特定のセルを参照
  Set FSO = CreateObject("Scripting.FileSystemObject")
  For i = LBound(MyF) To UBound(MyF)
   Set MyTxt = FSO.OpenTextFile(MyF(i))
   Buf = MyTxt.ReadAll
   TR.Value = TR.Value & Buf & vbLf
   MyTxt.Close
  Next i
  Set TR = Nothing: Set FSO = Nothing
End Sub
 
テキストにあるデータは、1・2行程度なら大丈夫ですが、それ以上だと
保証できません。

【5772】Re:セルにファイルの内容を追記したい
お礼  orion  - 03/5/29(木) 19:05 -

引用なし
パスワード
   kein 様

まことにどうもありがとうございました。おかげさまで助かりました。
私も一日も早くVBAに慣れ親しめるようになれるよう、一層の精進を
致します。

では、簡単ながらこれで、お礼とさせていただきます。

失礼致します。

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