| 
    
     |  | Jakaさん ご回答ありがとうございます。
 早速実行してみましたら、一列にズラッと出てきました。
 これでも規則正しければ使えるかなと思い元データと照らし合わせてみたのですが、表示されない数字などがあり、残念ながら解決できませんでした。
 でも大変感謝しております。本当にありがとうございました。
 
 ▼Jaka さん:
 >最近と言うか、ここ数年Macでエクセルを触っていないので・・・・。
 >Macバイナリーが原因か解らんけど、除去するアプリ。
 >
 >ht tp://www.vector.co.jp/soft/win95/util/se149423.html
 >ht tp://ww1.tiki.ne.jp/~swinepal/sunyansoft/support/macbn/macbn_sp.html
 >
 >ここのAppleさんなら、原因が解るのかも?
 >ht tp://excelfactory.net/excelboard/excelvba/excel.cgi
 >
 >おまけ、ここがVBA研究所と名乗っていたころに書いた物。何年前だ?
 >当時のまま今でも使ったりしてます。
 >
 >
 >Option Base 1
 >
 >Sub aaaa()
 >  Dim シート名 As String, 基シート名 As String, 処理CNT As Long, CSV全データ行数 As Long
 >  Dim 書始め行 As Long, 増シート数 As Integer, 行 As Long, 列位置 As Integer
 >  Dim TBL() As String, カンマ数 As Integer, TBL行数 As Long, TBL行CNT As Long, 拡張子 As String
 >  Dim ReadData As String, 設定行 As Long, 設定列 As Long, バーお知らせ As String
 >  Dim 基本TBL行数 As Long, 使用TBL行数 As Long, 終了flg As Integer, 改シート行flg As Integer
 >  Dim 書込み最終行設定 As Long, 書込み有効残数 As Long, シート最終行入力 As String, 追加枚数 As Integer
 >  Dim 振分け As Variant, 振分け2 As Variant, STime As Variant, ETime As Variant
 >  Dim I As Long, WクォFlg As Byte, DoEvCnt As Long
 >
 >  基シート名 = ActiveSheet.Name
 >  シート名 = 基シート名: 増シート数 = 0: 改シート行flg = 0
 >  CSV全データ行数 = 0: バーお知らせ = "行目から ": 終了flg = 0: カンマ数 = 0: DoEvCnt = 0
 >  基本TBL行数 = 500: TBL行CNT = 0: 処理CNT = 0: 改シートflg = 0: WクォFlg = 0
 >
 >  'On Error Resume Next
 >  オープンファイル = Application.GetOpenFilename("Excelファイル (*.csv;*.txt), *.csv;*.txt")
 >  If オープンファイル <> False Then
 >    拡張子 = StrConv(Right(オープンファイル, 3), vbUpperCase)
 >    Open オープンファイル For Input As #1
 >  Else
 >    End
 >  End If
 >
 >  '書込み形式入力
 >  Line Input #1, ReadData
 >  振分け = MsgBox(拡張子 & "ファイルをカンマ区切りでセルに振分けますか?" & vbCrLf & vbCrLf & _
 >       "振分けずに1列に読込むなら「いいえ」を。" & vbCrLf & vbCrLf & _
 >       "中止するならキャンセルを選択してください。", vbQuestion + vbYesNoCancel, 拡張子 & _
 >       "ファイル読込形式")
 >  If 振分け = vbYes Then
 >    For I = 1 To Len(ReadData)
 >      If Mid(ReadData, I, 1) = "," And WクォFlg = 0 Then
 >       カンマ数 = カンマ数 + 1
 >      ElseIf Mid(ReadData, I, 1) = Chr(34) And WクォFlg = 0 Then
 >       WクォFlg = 1
 >      ElseIf Mid(ReadData, I, 1) = Chr(34) And WクォFlg = 1 Then
 >       WクォFlg = 0
 >      End If
 >    Next
 >    If カンマ数 = 0 Then
 >     振分け2 = MsgBox("1行目データを見た所、区切りのカンマが全くありません。" & Chr(13) & _
 >          "強行しますか?", vbExclamation + vbYesNo, "カンマエラー")
 >     If 振分け2 = vbNo Then
 >       Close #1
 >       End
 >     End If
 >    ElseIf カンマ数 > 100 Then
 >     基本TBL行数 = 100
 >    ElseIf カンマ数 > 50 Then
 >     基本TBL行数 = 200
 >    End If
 >  ElseIf 振分け = vbNo Then
 >    基本TBL行数 = 15000
 >  Else
 >    Close #1
 >    End
 >  End If
 >  Close #1
 >  ReadData = Empty
 >
 >  'CSV全データ行数カウント。速いパソコン or データ量が少ないとカウントが速過ぎて見えない。
 >  Set myShape1 = ActiveSheet.Shapes.AddTextEffect(msoTextEffect11, _
 >      "現在、" & 拡張子 & "全データ行数を" & vbCrLf & "カウントしています。 ", _
 >      "MS ゴシック", 28, msoFalse, msoFalse, 120, 100)
 >  'Application.DisplayStatusBar = True
 >  'Application.StatusBar = 拡張子 & "全データ行数をカウントしています 。"
 >  DoEvents
 >  DoEvents
 >  Open オープンファイル For Input As #1
 >  Do Until EOF(1)
 >    Line Input #1, ReadData
 >    CSV全データ行数 = CSV全データ行数 + 1
 >  Loop
 >  Close #1
 >  'Application.DisplayStatusBar = False
 >
 >  'Set TxStm = Fso.OpenTextFile(Filename:=オープンファイル, IOMode:=ForReading)
 >  'Do Until TxStm.AtEndOfLine
 >  '  TxStm.SkipLine
 >  'Loop
 >  'CSV全データ行数 = TxStm.Line - 1
 >  'Set TxStm = Nothing
 >
 >  myShape1.Delete
 >  Set myShape1 = Nothing
 >  DoEvents
 >
 >  'シート最終行(改ページ行)入力
 >  書込み最終行設定 = Cells(Rows.Count, 1).Row
 >  Do
 >    シート最終行入力 = Application.InputBox(Prompt:=拡張子 & "全データ行数は、" & CSV全データ行数 & "行有りました。" & _
 >             vbCrLf & vbCrLf & "書込み最終行(改ページ行)を入力して下さい。", _
 >             Title:="書込み最終行(改ページ行)入力", Default:=書込み最終行設定)
 >    If シート最終行入力 = "False" Then
 >      End
 >    ElseIf Not (IsNumeric(シート最終行入力)) Then
 >      MsgBox "数字を入力して下さい。", vbExclamation, "入力エラー"
 >    ElseIf シート最終行入力 < 1 Or シート最終行入力 > 書込み最終行設定 Then
 >      MsgBox "最終行(改ページ行)は、1〜" & 書込み最終行設定 & "の間までです。", vbExclamation, "入力エラー"
 >    Else
 >      書込み最終行設定 = Int(シート最終行入力)
 >      Exit Do
 >    End If
 >  Loop
 >
 >  Do
 >    Call 書込み開始位置設定(設定行, 設定列)
 >    If 設定行 > 書込み最終行設定 Then
 >      MsgBox "書込み最終行(改ページ行)" & "行より下行を" & vbCrLf & _
 >         "書込み開始行とすることはできません。", vbExclamation, "開始位置設定エラー"
 >    ElseIf CSV全データ行数 / (書込み最終行設定 - (設定行 - 1)) + Worksheets.Count - 1 > 50 Then
 >      追加枚数 = CSV全データ行数 / (書込み最終行設定 - (設定行 - 1)) - 1
 >      中止有無 = MsgBox("現在のシート枚数 " & Worksheets.Count & " 枚、追加されるシート枚数 " & 追加枚数 & " 枚。" & vbCrLf & _
 >           vbCrLf & "全シート枚数が50枚を超えます。" & vbCrLf & vbCrLf & "書き始め行と書込み最終行(改シート行)を設定を変えますか?" & _
 >           vbCrLf & vbCrLf & "見なおす場合は、一旦終了します。", vbExclamation + vbYesNo, "シート追加枚数警報")
 >      If 中止有無 = vbYes Then
 >       End
 >      Else
 >       Exit Do
 >      End If
 >    Else
 >      Exit Do
 >    End If
 >  Loop
 >  書始め行 = 設定行
 >  行 = 書始め行
 >  書始め列 = 設定列
 >
 >  '初期TBL行数設定
 >  書込み有効残数 = 書込み最終行設定 - (書始め行 - 1)
 >  If 書込み有効残数 < 基本TBL行数 Then
 >    基本TBL行数 = 書込み有効残数
 >  ElseIf CSV全データ行数 <= 基本TBL行数 Then
 >    基本TBL行数 = CSV全データ行数
 >    終了flg = 1
 >  End If
 >  TBL行数 = 基本TBL行数
 >  ReDim TBL(TBL行数, カンマ数 + 1)
 >
 >  Application.DisplayStatusBar = True
 >  'Application.ScreenUpdating = False
 >  Application.Calculation = xlManual
 >
 >  STime = Now()
 >  Open オープンファイル For Input As #1
 >  Do Until EOF(1)
 >    処理CNT = 処理CNT + 1
 >    TBL行CNT = TBL行CNT + 1
 >    'Application.StatusBar = 拡張子 & "全データ " & CSV全データ行数 & "行中、" & Format(処理CNT, "000000") & "行目読込み中"
 >
 >    'セル列方向TBL転記
 >    If カンマ数 = 0 Then
 >     Line Input #1, TBL(TBL行CNT, カンマ数 + 1)
 >     'TBL(TBL行CNT, カンマ数 + 1) = ReadData
 >    Else
 >     For I = 1 To カンマ数 + 1
 >       Input #1, TBL(TBL行CNT, I)
 >     Next
 >    End If
 >
 >    If TBL行CNT = TBL行数 Or EOF(1) Then
 >     Application.StatusBar = 拡張子 & "全データ " & CSV全データ行数 & "行中、" & Format(処理CNT, "000000") & "行目読込み後、" & _
 >                 シート名 & "に " & 行 & バーお知らせ & TBL行数 & "行の書込み中"
 >     With ActiveWorkbook.Worksheets(シート名).Range(Cells(行, 書始め列), Cells(行 + TBL行数 - 1, 書始め列 + カンマ数))
 >       .ClearContents
 >       .Value = TBL
 >     End With
 >     DoEvCnt = DoEvCnt + 1
 >     'If DoEvCnt = 10 Then
 >     '  DoEvents
 >     '  DoEvCnt = 0
 >     'End If
 >     DoEvents
 >     TBL行CNT = 0
 >     行 = 行 + TBL行数
 >     書込み有効残数 = 書込み有効残数 - TBL行数
 >     If 終了flg = 1 Then
 >       Exit Do
 >     End If
 >     If CSV全データ行数 - 処理CNT > 0 Then
 >       '改ページ
 >       If 書込み有効残数 = 0 Then
 >        Call TBL使用シート増(基シート名, シート名, 増シート数, 設定行, 設定列)
 >        DoEvents
 >        行 = 書始め行
 >        書込み有効残数 = 書込み最終行設定 - (書始め行 - 1)
 >        If CSV全データ行数 - 処理CNT < TBL行数 Then
 >          TBL行数 = CSV全データ行数 - 処理CNT
 >        Else
 >          TBL行数 = 基本TBL行数
 >        End If
 >       ElseIf 書込み有効残数 < TBL行数 Then
 >        TBL行数 = 書込み有効残数
 >       ElseIf CSV全データ行数 - 処理CNT < TBL行数 Then
 >        TBL行数 = CSV全データ行数 - 処理CNT
 >       Else
 >        TBL行数 = 基本TBL行数
 >       End If
 >     Else
 >       終了flg = 1
 >     End If
 >     ReDim TBL(TBL行数, カンマ数 + 1)
 >    End If
 >  Loop
 >  Close #1
 >  Erase TBL
 >  ETime = Now()
 >  'Application.ScreenUpdating = True
 >  Application.Calculation = xlAutomatic
 >  DoEvents
 >  Set myShape2 = ActiveSheet.Shapes.AddTextEffect(msoTextEffect11, _
 >         "処理終了しました ", "MS ゴシック", 48, msoFalse, msoFalse, 120, 100)
 >  Application.StatusBar = 拡張子 & "全データ " & CSV全データ行数 & "行中、" & Format(処理CNT, "000000") & "行の処理終了しました。"
 >  'MsgBox "クリックして下さい。"
 >  'MsgBoxだと位置を変えられないので。
 >  myShape2.Delete
 >  Set myShape2 = Nothing
 >  Application.DisplayStatusBar = False
 >  MsgBox "TBL行数" & 基本TBL行数 & vbCrLf & STime & "-" & ETime & "=" & Format(ETime - STime, "hh:mm:ss")
 >End Sub
 
 
 |  |