|
Isogai さん、こんばんわ。
>C:\WINDOWS\デスクトップ\変換前.csvがありますので、以下のコードで変換前.CSVを
>取り込んで、後は列の削除を行って、その結果を変換後.CSVへ出力したいです。
>変換前.CSVを取り込むため、どうすればいいでしょうか?
>ご伝授ください。
ブックを開き、その開いたシートを処理の対象にします。
Sub test()
Dim r1 As Range, Cmax As Long, CC As Long, wb As Workbook
'
Set wb = Application.Workbooks.Open("C:\WINDOWS\デスクトップ\変換前.csv")
'
With wb.Worksheets(1) '新たに開いたブックの一つ目のシート
Cmax = .Range("IV1").End(xlToLeft).Column 'データが入った列の一番右
For CC = 1 To Cmax '列方向に繰り返し
Select Case Trim(.Cells(1, CC).Value) '念のため前後の空白消去
Case "科目II", "科目IV" 'この文字がセルに入っていると削除対象
If r1 Is Nothing Then
Set r1 = .Cells(1, CC) '1つめのセルをセット
Else
Set r1 = Application.Union(r1, .Cells(1, CC)) 'セル追加
End If
End Select
Next
'ここで処理
If Not r1 Is Nothing Then
r1.EntireColumn.Delete '列全体を削除
Else
MsgBox "該当文字列なし", vbExclamation '該当の文字列がなかった
End If
End With
Set r1 = Nothing
'削除後の結果をCSVデータ出力する
With wb
'テキスト出力
.SaveAs Filename:="C:\WINDOWS\デスクトップ\変換後.csv", _
FileFormat:=xlCSV, CreateBackup:=False
'アラート無しで閉じる
.Saved = True
.Close
End With
Set wb = Nothing
End Sub
こんな感じです。
デスクトップのフルパス名はWin2K以降はC:\Documents and Settings〜とか何とかの長い名前になっているはずなので、注意が必要です。
↓ちなみにデスクトップフォルダの取得方法の例
h t t p://www.vbalab.net/vbaqa/c-board.cgi?cmd=one;no=44958;id=excel
|
|