[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]
『テキストファイルウィザードの省略』(えくせるさん)
テキストファイルウィザードに関して質問です。
取り込んだデータがいつも,:で区切られているため、通常にファイルを開くだけではデータが区切られず、使い物になりません。
これはテキストファイルウィザードで回避できるのですが、全ファイルをいつもテキストファイルウィザードを経由して開くのは手間でしかありません。
こういったファイルの区切り方をエクセルに覚え込ませる方法はありませんでしょうか。
マクロを組むのもてかと思いましたが、毎度マクロを通すのも面倒なので可能な限り避けたいです。
レジストリの書き換えとかでなんとかならないでしょうか。
よろしくお願いします。
< 使用 Excel:Excel2016、使用 OS:Windows10 >
テキストファイルを作成するソフト側で、 区切り文字を , にして、ファイル拡張子を CSVにしてもらえば、 何の手間もかけずに解決ですよ。 (でれすけ) 2019/04/04(木) 12:57
全部の区切りを , にしてもらえたらありがたいですよね! こっちもcsvのくせにtabで区切ってくるアプリがあって困ったことがありました。
んで、CSVでも全部ってわけにはいかないと思うので、以下のような感じでどうでしょう?
1)個人用マクロブックの(PERSONAL.XLSB)のThisworkbookモジュールに以下のコードを入れてください。
2)csvを(拡張子が違う場合は、 Like "*.csv" を書き換えてください)開くと、事前に設定した種類で区切ります。
3)あとは自動で開いたCSVを閉じて、新しいブックを作成し、テキストウィザードで取り込みます。
Option Explicit
Public WithEvents xApp As Application 'Applicationオブジェクトのイベントをキャッチする。
Private Sub Workbook_Open()
Set xApp = Application
End Sub
Private Sub xApp_WorkbookOpen(ByVal wb As Workbook)
Dim wbPath As String
Dim qtwb As Workbook
Dim qt As QueryTable
If wb.name Like "*.csv" Then
If MsgBox("CSVファイルをテキストウィザードで取り込みますか?", vbYesNo) = vbYes Then
wbPath = wb.FullName
wb.Close False
Set qtwb = Workbooks.Add
On Error Resume Next
Do
Set qt = qtwb.Sheets(1).QueryTables.Add(Connection:="TEXT;" & wbPath, Destination:=Range("Sheet1!$A$1"))
If Not qt Is Nothing Then Exit Do
Loop
On Error GoTo 0
'ここから↓の設定は、自分でマクロの記録取ってはどうでしょう?
With qt
.name = Dir(wbPath)
.TextFilePlatform = 932
.TextFileParseType = xlDelimited
.TextFileCommaDelimiter = True
.TextFileOtherDelimiter = ":"
.RefreshStyle = xlOverwriteCells
.Refresh
.Delete
End With
End If
End If
End Sub
(稲葉) 2019/04/04(木) 13:24
[ 一覧(最新更新順) ]
YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki.
Modified by kazu.