|
▼KOCCI さん:
こんにちは
ワークシートの出力範囲をCOPYすると、データがクリップボードに
転送されます。クリップボード内の区切りはTABコードです。
-----------------------
あ い う え
A B C D
このTABを "@" に置換し、さらに行末の改行コードを "<改行>"に置換すると
↓のような文字列ができあがります。
-----------------------
"あ"@"い"@"う"@"え"
"A"@"B"@"C"@"D"
Sub Try1()
Const z = """"
Const zCrLfz = z & vbCrLf & z
Const CLSID_DataObject = "1C3B4210-F441-11CE-B9EA-00AA006B1A69"
Dim ss As String
ActiveSheet.UsedRange.Copy
With GetObject("new:" & CLSID_DataObject)
.GetFromClipboard
ss = .Gettext
End With
ss = Replace(z & ss, vbTab, """@""")
ss = Replace(ss, vbCrLf, zCrLfz)
ss = Left$(ss, Len(ss) - 1)
Dim io As Integer
Dim myText As String: myText = "D:\(Data)\Try1.txt"
io = FreeFile()
Open myText For Output As io
Print #io, ss;
Close io
End Sub
|
|