アプリ版:「スタンプのみでお礼する」機能のリリースについて

Excel2010を利用しています。
正規表現の置換でスペースをタブに変更したいです。
下記で試しましたが、タブへは置換できず「\t」という文字がそのまま表示されてしまいます。
どのようにすれば解決しますでしょうか?

Dim reg
Dim pat As String
Set reg = CreateObject("VBScript.RegExp")
With reg
.pattern = "(\d+?)[ | ]"
.ignoreCase = True
.Global = True
End With

fnsave = "テキスト.txt"
numff = FreeFile
Open fnsave For Output As #numff
Dim i As Integer

For i = 2 To 10
temp = Cells(i, "BW")
temp = reg.Replace(temp, "$1\t")
Print #numff, temp
Next

Close #numff

A 回答 (1件)

下記コードで試してみると、うまくいっている様です。

ご参考まで。

temp = reg.Replace(temp, "$1" & vbTab) とか、
temp = reg.Replace(temp, "$1" & chr(9)) でも。

Debug.Printとしても成否が分からないので、クリップボードにコピーして確認してみました。

'Microsoft Forms 2.0 Object Libraryを参照設定
Sub test()
Dim reg
Dim pat As String
Dim temp As String
Dim CB As New DataObject

Set reg = CreateObject("VBScript.RegExp")
With reg
.Pattern = "(\d+?)[ | ]"
.ignoreCase = True
.Global = True
End With

temp = "123 45 67 9"
temp = reg.Replace(temp, "$1" & vbTab)
With CB
.SetText temp
.PutInClipboard
End With
'TABが視認できるテキストエディターに貼り付けてみる
End Sub
    • good
    • 1
この回答へのお礼

できました!
本当にありがとうございました。

タブは\tだけと思い込んでいました。
頭が固すぎました。

お礼日時:2013/07/10 15:22

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人はこんなQ&Aも見ています