[[20161201132912]] 『A列のファイル名でB列の内容を.txt化する方法』(業務中) ページの最後に飛ぶ

[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]

 

『A列のファイル名でB列の内容を.txt化する方法』(業務中)

A列のセルに半角全角混じりの文字列が十数文字あり、
B列のセルに800文字くらいの文章が記入されている行が、
約500行程度あります。

A列のセルのファイル名でB列のセル内容を
一括して指定フォルダに.txt化する方法を教授頂けないでしょうか。

突如、業務で必要となりまして困ってしまいまして・・・。

< 使用 Excel:Excel2016、使用 OS:Windows7 >


 もし、A列の文字列内にファイル名に使えない文字があった場合はどうするのだろうか?

 それともあらかじめチェック済みでファイル名に使えない文字は無いものと考えていいのだろうか?
(ねむねむ) 2016/12/01(木) 13:44

A列にはファイル名に使えない文字列は記入しない方針で記入してます。
具体的には、全角数字と半角英文字の組み合わせです。

宜しく御願い致します。
(業務中) 2016/12/01(木) 13:54


 これでどうだろうか?

 WK_PATHに保存するフォルダを入れてくれ(最後の\を忘れずに)

 Sub tst()
    Dim WK_PATH     As String
    Dim WK_RANGE    As Range
    Dim FILE_NO     As Integer

    WK_PATH = "C:\WK\"
    Set WK_RANGE = Worksheets("Sheet1").Range("A1")

    Do Until WK_RANGE.Value = ""
        FILE_NO = FreeFile
        Open WK_PATH & WK_RANGE.Value & ".txt" For Output As #FILE_NO
            Print #FILE_NO, WK_RANGE.Offset(, 1).Value
        Close #FILE_NO
        Set WK_RANGE = WK_RANGE.Offset(1, 0)
    Loop

 End Sub

(ねむねむ) 2016/12/01(木) 14:16


 たとえば以下でも。
 ★のところ、保存フォルダは適宜変更願います。(コードでは DeskTop上の Test というフォルダ)

 Sub Sample()
    Dim fso As Object
    Dim c As Range
    Dim fPath As String

    Set fso = CreateObject("Scripting.FileSystemObject")
    fPath = CreateObject("WScript.Shell").SpecialFolders("DeskTop") & "\Test"   '★保存フォルダ

    For Each c In Range("A1", Range("A" & Rows.Count).End(xlUp))
        With fso.CreateTextFile(Filename:=fPath & "\" & c.Value & ".txt", OverWrite:=True)
            .write c.Offset(, 1).Value
            .Close
        End With
    Next

 End Sub

(β) 2016/12/01(木) 14:48


有り難う御座います。
療法ともバッチリでした。

がんばるぞー
(業務中) 2016/12/01(木) 14:53


コメント返信:

[ 一覧(最新更新順) ]


YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki. Modified by kazu.