Excel VBA のエラー 5 でトラブルです
'下記のVBAで---------で囲った部分でエラー 5 「プロシージャの呼び出し、または引数が
'不正です。」となります。色々試してみたのですが、何をやってもうまくいきません。
'ご教授頂けないでしょうか
'何卒、宜しくお願い致します。
Sub 月次工数_M()
' 月次工数_M Macro
MsgBox "挿入する「ファイル」を選択してください"
Dim strCdir As String
Dim strFname As String
With CreateObject("WScript.Shell")
'カレントディレクトリ控え
strCdir = CurDir
'カレントネットワークパスの設定
.currentdirectory = "\\fileserver\91_Users\EXCEL"
'ファイルを開くダイアログ表示
strFname = Application.GetOpenFilename("挿入ファイル,*.CSV")
If strFname <> "False" Then
' MsgBox "選択したファイル名は" & strFname & "です。"
Else
MsgBox "キャンセルされました。"
Exit Sub
End If
Dim newbk As String
'新規にブックを追加
Workbooks.Add
'追加したブックの名前を取得
newbk = ActiveWorkbook.Name
Workbooks(newbk).Activate
'カレントディレクトリ復元
.currentdirectory = strCdir
End With
With ActiveSheet.QueryTables.Add(Connection:= _
"TEXT;" & strFname, _
Destination:=Range("$A$1"))
' .CommandType = 0
.Name = "TEXT;" & strFname
.FieldNames = True
.RowNumbers = False
.FillAdjacentFormulas = False
.PreserveFormatting = True
.RefreshOnFileOpen = False
.RefreshStyle = xlInsertDeleteCells
.SavePassword = False
.SaveData = True
.AdjustColumnWidth = True
.RefreshPeriod = 0
.TextFilePromptOnRefresh = False
.TextFilePlatform = 65001
.TextFileStartRow = 1
.TextFileParseType = xlDelimited
.TextFileTextQualifier = xlTextQualifierDoubleQuote
.TextFileConsecutiveDelimiter = False
.TextFileTabDelimiter = False
.TextFileSemicolonDelimiter = False
.TextFileCommaDelimiter = True
.TextFileSpaceDelimiter = False
.TextFileColumnDataTypes = Array(1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1)
.TextFileTrailingMinusNumbers = True
.Refresh BackgroundQuery:=False
End With
Dim wk As Variant 'シートの名前を付ける
wk = Application.InputBox("新しいシート名を入力してください", Type:=2)
If wk <> False Then
ActiveSheet.Name = wk
Else
MsgBox "キャンセルされました。"
Exit Sub
End If
Range("A1").Select
Sheets.Add
MsgBox "選択したシート名は" & wk & "です。"
'----------------------------ここでエラーが発生します------------------------------------------------------
ActiveWorkbook.PivotCaches.Create(SourceType:=xlDatabase, SourceData:= _
wk & "!R1C1:R95C18", Version:=xlPivotTableVersion15).CreatePivotTable _
TableDestination:="Sheet1!R3C1", TableName:="ピボットテーブル2", DefaultVersion _
:=xlPivotTableVersion15
'---------------------------------------------------------------------------------------------------------------------
Sheets("Sheet1").Select
Cells(3, 1).Select
With ActiveSheet.PivotTables("ピボットテーブル2").PivotFields("UserName")
.Orientation = xlRowField
.Position = 1
End With
ActiveSheet.PivotTables("ピボットテーブル2").AddDataField ActiveSheet.PivotTables( _
"ピボットテーブル2").PivotFields("作業時間"), "合計 / 作業時間", xlSum
ActiveSheet.PivotTables("ピボットテーブル2").CompactLayoutRowHeader = "UserName"
Rows("1:2").Select
Selection.Delete Shift:=xlUp
Range("C16").Select
Sheets("Sheet1").Select
Sheets("Sheet1").Name = "名別"
補足
そうです。シートモジュールに記入しています。 しかしながら、sheet1に記入してsheet2を削除するので関係ないのでは・・・。 具体的には、sheet1をコピーしてsheet1(2)を修正シートと変更して そのシートを削除するのですが・・・。 sheet1のコードもコピーされていますので、実際実行されるのは修正シートと言うことになりますか???! ためしてみます。