戻る  □一般操作のサロン  □ 使用方法  □ 新着記事  □ 新規に質問する!  □ トピック一覧  □ 検索  □ 過去ログ
[ 最新記事及び返信フォームをトピックトップへ ]
このトピック参照回数 :
フォルダ内の全テキストファイルのコピー

    [191551] フォルダ内の全テキストファイルのコピー-

    ■親トピック/記事引用/メール受信=OFF■

    □投稿者/ みらくる -(2020/03/01(15:47))
    □U R L/
      宜しくお願い致します。
      
      マクロ保存ブックと同じフォルダにある全テキストファイル(拡張子.OUT)を
      順番に開きながら、マクロ保存ブックのシートへ順番にコピーするコードを作り
      たいと思います。1つのテキストファイルを1つのシートA1に順番にコピーしたい
      です。
      今のところマクロ保存ブックにコピー先のシートを6つ用意し、テキストファイル
      はマクロ保存ブックと同じフォルダ内に5つ(シート数以下)用意しました。
      最終的には30シート(テキスト数)位必要です。
      
      以下のコードを作って、F8を押してステップインしたところ、「Do Until ファイル
      名 = ""」から「MsgBox "本ブックと同じフォルダ内の全観測記簿OUTファイルを
      取込後にファイルを閉じました", vbInformation」まで飛んでしまい、繰返し処理
      内の操作が素通りされて実行されませんでした(テキストファイルを順次開いて
      マクロ保存ブックのシートに順番にコピーが1回もされない)
      
      どのようにコードを修正したらよいかご教授願います。
      
      Option Explicit
      
      Sub フォルダ内全OUTファイル読込()
      
          MsgBox "本ブックと同じフォルダ内の全観測記簿OUTファイルを自動で起動後に、値をOUTシートに転記します。その前に本ファイル以外は閉じてください", vbInformation
          
          On Error GoTo エラー処理
          
          ' オープンするファイル名の変数宣言
          Dim ファイル名 As String
          Dim シート番号 As Integer
          
          ファイル名 = Dir(ThisWorkbook.Path & "¥* .out")
          
          シート番号 = 1
          Do Until ファイル名 = ""
       
              'テキストファイルを開いてから、カンマまたはタブの区切りで分割しワークシートに変換
              Workbooks.OpenText ThisWorkbook.Path & "¥" & ファイル名, Origin:=932, _
                  StartRow:=1, DataType:=xlDelimited, TextQualifier:=xlDoubleQuote, _
                  ConsecutiveDelimiter:=False, Tab:=True, Semicolon:=False, Comma:=False, _
                  Space:=False, Other:=False, FieldInfo:=Array(Array(1, 1)), TrailingMinusNumbers:=True
      
              ' OUTから手簿ファイルへクリップボードを経由しないで直接値コピー(Cells.で全セル選択)
              Workbooks(2).Worksheets(1).Cells.Copy
              Workbooks(1).Worksheets(シート番号).Range("A1").PasteSpecial xlPasteValues
          
              ' コピーモードの解除
              Application.CutCopyMode = False
      
              ' OUTファイルを保存せず自動で閉じる
              Workbooks(2).Close False
          
              シート番号 = シート番号 + 1
              ファイル名 = Dir()
          Loop
          
          MsgBox "本ブックと同じフォルダ内の全観測記簿OUTファイルを取込後にファイルを閉じました", vbInformation
          
          '再計算実行
          Application.Calculate
          
          Sheets("記簿1").Select
          Exit Sub
          
      エラー処理:
          MsgBox "OUTデータを取込みできませんでした。事前にOUTファイルを本ファイルと同じフォルダに格納してから再度実行して下さい", vbInformation
          
      End Sub
      
          
      


      この記事にはVBAのコードが含まれています。

      緑の太文字→注釈
      茶色の太文字→条件分岐
      赤の太文字→ループ
      青の太文字→その他




    [191553] Re[1]: フォルダ内の全テキストファイルのコピー-

    記事引用/メール受信=OFF■

    □投稿者/ マナ -(2020/03/01(18:20))
    □U R L/

      >ファイル名 = Dir(ThisWorkbook.Path & "¥* .out")

      ファイルっ名に半角スペースが必要ですか?






    [191554] Re[2]: フォルダ内の全テキストファイルのコピー-

    記事引用/メール受信=OFF■

    □投稿者/ みらくる -(2020/03/01(18:50))
    □U R L/
      マナ様
      
      拡張子OUTファイル名の拡張子の直前に半角スペースはありませんので、半角
      スペースは必要ありません。最初のコードの半角箇所は間違いと思います。
      5つあるうちの一つのテキストファイル名+拡張子は「347A_301-001.RecordStatic.out」で、他4つも似たようなファイル名です。
      
      最初のコードは、次のように、「.OUT」の前の半角スペースを削除しましたが
      変更前のコードと同じ動作でした。
      
      変更前・・ファイル名 = Dir(ThisWorkbook.Path & "¥* .out")
      
      変更後・・ファイル名 = Dir(ThisWorkbook.Path & "¥*.out")
      


      この記事にはVBAのコードが含まれています。

      緑の太文字→注釈
      茶色の太文字→条件分岐
      赤の太文字→ループ
      青の太文字→その他




    [191555] Re[3]: フォルダ内の全テキストファイルのコピー-

    記事引用/メール受信=OFF■

    □投稿者/ マナ -(2020/03/01(18:56))
    □U R L/

      >ファイル名 = Dir(ThisWorkbook.Path & "¥*.out")

      ¥ は、半角にしないとだめなのでは。




    [191556] Re[4]: フォルダ内の全テキストファイルのコピー-

    解決!!ありがとうございました! / 記事引用/メール受信=OFF■

    □投稿者/ みらくる -(2020/03/01(19:13))
    □U R L/

      マナ様

      素晴らしい!「¥」2か所を半角に変更しましたら5つのシートにコピーできま
      した。大変ありがとうございました。

      VBAはシート関数と違って、細かい間違いを教えてくれない部分があるので、今回
      教えていただき本当に助かりました。

      今回の質問は、GNSS(GPS)測量機の出力データを処理してXY座標を求める計算書
      の一工程です。最終的に地図に利用されるXYZ座標が求まります。GPSのカーナビ
      の精度は≒1m?ですが測量では特殊な方法で数キロの距離でも1p位の精度で
      2点間の位置関係(XYZ座標)が求まります。

      今後ともよろしくお願いいたします。



このトピック内容の全ページ数 / [0]

このトピックに書きこむ
Name/
E-Mail/

└>このツリーのレス記事をメールで受信しますか? YES/ NO/
Title/
URL/
Comment/ 通常モード->  図表モード-> (←の場合適当に改行を入れて下さい)
タグが使用できます。例 ⇒ <font color="blue">文字</font>
解決!!ありがとうございました! 解決       保留中です・・・ 保留        迷宮入りorほかあたって見ます・・ 迷宮入       すいませ〜ん。誰か〜! Help! ←※回答者専用
解決したらチェック       保留(コードテスト中など・・)         解決不可orレスが全く付かなくてほかのサイトに行くときなど・・
削除キー/
(半角8文字以内) 


- Child Forum -
Edit:ゆう-G