| 
    
     |  | ▼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
 
 |  |