Private Sub ExcelClipOut(ByVal SearchPath As String, ByVal ABC As String, ByVal SheetNo As Integer, ByVal Cnt As Integer)
'必要な変数を宣言する Dim stPrompt As String = String.Empty '.txt のファイルを列挙する For Each stFilePath As String In System.IO.Directory.GetFiles(SearchPath + "\", "*" & ABC & ".csv") stPrompt &= stFilePath & System.Environment.NewLine Next stFilePath 'txtを読む Dim TextData As String Dim Reader As New IO.StreamReader(stPrompt, System.Text.Encoding.GetEncoding(932)) TextData = Reader.ReadToEnd Reader.Close() 'タブ形式でクリップボードへ Dim data As DataObject = New DataObject data.SetData(TextData.Replace(",", vbTab)) Clipboard.SetDataObject(data, True) 'エクセルへ貼り付け If Cnt = 1 Then Excel = CType(CreateObject("Excel.Application"), Excel.Application) ExcelBook = CType(Excel.Workbooks.Add, Excel.Workbook) End If ExcelBook.Worksheets(SheetNo).Activate() ExcelSheet = CType(ExcelBook.Worksheets(SheetNo), Excel.Worksheet) ExcelSheet.Application.Visible = True ExcelSheet.Range("A1").Select() System.Windows.Forms.SendKeys.SendWait("%{E}{P}")
分類:[.NET]
お世話になります。
以下、ご教示をお願いします。
「SearchPath」フォルダより、「*A.csv」のファイルの中身を読んで、
クリップボードにコピーし、EXCELにキー送信で貼り付けることをします。
下のメソッドを使うと、Book毎にEXCELが起動してしまいます。
どのようにしたら、1つのEXCELにBookが複数作成されるのでしょうか?
▼呼び出し▼
ExcelClipOut(SearchPath, "A", 1, 1)
ExcelClipOut(SearchPath, "B", 2, 2)
ExcelClipOut(SearchPath, "C", 3, 3)
▲ここまで▲
Private Sub ExcelClipOut(ByVal SearchPath As String, ByVal ABC As String, ByVal SheetNo As Integer, ByVal Cnt As Integer)
'必要な変数を宣言する
Dim stPrompt As String = String.Empty
'.txt のファイルを列挙する
For Each stFilePath As String In System.IO.Directory.GetFiles(SearchPath + "\", "*" & ABC & ".csv")
stPrompt &= stFilePath & System.Environment.NewLine
Next stFilePath
'txtを読む
Dim TextData As String
Dim Reader As New IO.StreamReader(stPrompt, System.Text.Encoding.GetEncoding(932))
TextData = Reader.ReadToEnd
Reader.Close()
'タブ形式でクリップボードへ
Dim data As DataObject = New DataObject
data.SetData(TextData.Replace(",", vbTab))
Clipboard.SetDataObject(data, True)
'エクセルへ貼り付け
If Cnt = 1 Then
Excel = CType(CreateObject("Excel.Application"), Excel.Application)
ExcelBook = CType(Excel.Workbooks.Add, Excel.Workbook)
End If
ExcelBook.Worksheets(SheetNo).Activate()
ExcelSheet = CType(ExcelBook.Worksheets(SheetNo), Excel.Worksheet)
ExcelSheet.Application.Visible = True
ExcelSheet.Range("A1").Select()
System.Windows.Forms.SendKeys.SendWait("%{E}{P}")
End Sub
以上