|
▼ゆりっぺ さん:
こんばんは。
>下記は記述の一部を抜粋いたしました。
>記述のちょうど中段あたりで出力したい列をズラっと指定しているのですが
>この状態ですとシートのデータ通りに吐き出されてしまいます。
>出力されたデータに指定した文字が含まれていた場合に
>その文字を指定した文字に変換したいのですが
>どのように追記すればよいのでしょうか。
>ご存知の方どうぞ教えてください。
GetWriteFileというファンクションプロシジャーも
掲載してください。
でないとこっちで想像して作らなければなりませんから・・・。
Sub main()
Dim Z As Long
Dim ingFFF As Long
Dim intEEE As Integer
Dim vntAAA As Variant
Dim vntData As Variant
Dim vntCCC As Variant
Dim vntBBB As Variant
Dim strDDD As String
'出力ファイル名を取得
If Not GetWriteFile(vntCCC, ThisWorkbook.Path) Then
strDDD = "マクロがキャンセルされました"
GoTo Wayout
End If
'出力ファイルのOpen
intEEE = FreeFile
Open vntCCC For Output As intEEE
Dim y As Integer
Dim str_tmp As String
'どの位置から処理を行うのか
For y = 9 To 198
'データ行数を取得
str_tmp = ""
'9行目〜198行目の指定された列の情報を返す
With Application
str_tmp = _
Replace(Join(.Transpose( _
.Transpose(Range(Cells(y, 2), Cells(y, 27)))), ",") _
, "書き換え前文字列", "書換え後文字列")
' ここに置換処理する処理前文字列と処理後文字列を記述します
End With
Print #intEEE, str_tmp
Next
'出力ファイルのClose
Close #intEEE
strDDD = "処理が完了しました"
Wayout:
MsgBox strDDD, vbInformation
End Sub
'=====================================================================
Function GetWriteFile(vntCCC As Variant, mypath As Variant) As Boolean
'こんなファンクションプロシジャーですか?
Dim ans As Variant
ChDir mypath
GetWriteFile = False
ans = Application.GetSaveAsFilename("", "テキスト ファイル (*.csv), *.csv")
If TypeName(ans) <> "Boolean" Then
vntCCC = ans
GetWriteFile = True
End If
End Function
試してみてください
|
|