私は VBA で行う必要があるこの仕事を持っています。IDE を開いてそこからコードを実行すると、すべて期待どおりに動作し、データを txt ファイルから新しい一時ワークブックにロードし、ワークシートにコピーして貼り付け、一時ファイルを閉じますワークブック。
ただし、Ctr+Sft+L などのショートカットを使用して実行すると、一時ワークブックにデータが読み込まれ、アクティブ化され、そこで実行が停止されます。データはワークシートに貼り付けられません。どうすればこれを修正できますか?
コードは次のとおりです。
Sub Load_Text()
Dim wsSheet As Worksheet
InsertWorkSheet ("Data")
Set wsSheet = ThisWorkbook.Sheets("Data")
Workbooks.OpenText Filename:="C:\Documents and Settings\w059\Desktop\20121107_Report.txt", _
Origin:=xlMSDOS, StartRow:=1, DataType:=xlDelimited, TextQualifier:=xlDoubleQuote, _
ConsecutiveDelimiter:=False, Tab:=False, Semicolon:=True, Comma:=False, _
Space:=False, Other:=False, FieldInfo:=Array(Array(1, 1), Array(2, 1), Array(3, 1), _
Array(4, 1), Array(5, 1), Array(6, 1), Array(7, 1)), TrailingMinusNumbers:=True
ActiveWorkbook.Worksheets(1).Cells.Copy wsSheet.Range("A1")
ActiveWorkbook.Close True
End Sub
Public Sub InsertWorkSheet(name As String)
Dim wsSheet As Worksheet
On Error Resume Next
Set wsSheet = ThisWorkbook.Sheets(name)
If wsSheet Is Nothing Then
ThisWorkbook.Sheets.Add After:=Sheets(Sheets.Count)
ThisWorkbook.Sheets(Sheets.Count).name = name
End If
End Sub