Excel VBA質問箱 IV

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

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


8584 / 13644 ツリー ←次へ | 前へ→

【32443】Array関数の要素追加法 老初心者 05/12/15(木) 12:57 質問[未読]
【32449】Re:Array関数の要素追加法 m2m10 05/12/15(木) 13:43 回答[未読]

【32443】Array関数の要素追加法
質問  老初心者  - 05/12/15(木) 12:57 -

引用なし
パスワード
   Workbook.OpenText関数で100本程度の.txtファイルをExcelに変換しようとしています。表示書式を各列それぞれ(標準/文字列)を設定したいのです。
VBAの引数でFieldInFoの指定は
  FieldInFo:=Array(第1カラムの形式,第2カラムの形式,.....)となっています。
予めOpenするTextファイルの列の数だけ直接VBAのソースコードを記入する方式です。このためそれぞれ列数、表示形式が異なる場合は都度人が記入せざるを得ません。
何とかプログラム実行時に動的に実行する方法はないのでしょうか。
下記のようにすればFieldInFoの部分はすっきりしましたが
肝心のArray関数の要素の追加ができなくて困っています。
  Option Base 1
Sub Array関数のテスト()
  Dim A()   As Variant
  Dim B    As Variant
  'C:\a.txtの内容
  '一行目 "1",2,3
  '二行目 "B",4,5
  '三行目 "山",6,7
  iMax = 3
  ReDim Preserve A(iMax)
  A(1) = Array(1, 2) '文字列
  A(2) = Array(2, 1) '標準
  A(3) = Array(3, 2) '文字列
  B = Array(A(1), A(2), A(3))

  Workbooks.OpenText Filename:="C:\a.txt", startRow:=1, DataType:=xlDelimited, _
       TextQualifier:=xlDoubleQuote, ConsecutiveDelimiter:=False, Tab:=False, _
       Semicolon:=False, Comma:=True, Space:=False, Other:=False, _
       Fieldinfo:=B

End Sub
以上よろしく願います

【32449】Re:Array関数の要素追加法
回答  m2m10  - 05/12/15(木) 13:43 -

引用なし
パスワード
   こんちは
 
 これ↓でしたらセルの形式の変更で可能です。


Sub シートにCSV()
 '最終行の一つ下を確保
 行 = Range("A65536").End(xlUp).Offset(1).Row

FName ="d:\1121.csv"

 Open FName For Input As #1

 Do Until EOF(1)
 
  Line Input #1, dt01
  dt02 = Split(dt01, ",")
  For i = 0 To UBound(dt02)
   If Len(dt02(i)) <> 0 Then
    Cells(行, i + 1) = dt02(i)
   End If
  Next i
  行 = 行 + 1
 Loop
 
Close #1

End Sub

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