- 締切済み
vbs ピボットテーブル更新 ODBC接続
現在、vbsを使用してExcelピボットテーブルを自動更新する仕組みを作成しております。 更新対象のピボットテーブルですが、ODBC接続でoracle(10g)を参照しており、 ピボット更新時にパスワードの入力を求められます。 これをvbsファイル内でパスワードを渡して実行するように出来ないでしょうか? 下記のスクリプトのみだとパスワードにnullが挿入されましたとうエラーがでて更新できません。 '1.1. ファイルコピー 'objFSO.CopyFile szWBTemplate, szWBOutput,True '2.0. ワークブック OPEN objEXCEL.Workbooks.Open szWBTemplate '2.1. エクセル画面を非表示 objEXCEL.DisplayAlerts = False objEXCEL.Visible = False objEXCEL.ScreenUpdating = False objEXCEL.Calculation = -4135 WScript.sleep(1000) objEXCEL.ScreenUpdating = True objEXCEL.Calculation = -4105 '2.2. Reflesh Pivot Tables For Each objxlSh in objEXCEL.Worksheets For Each objPvt In objxlSh.PivotTables objPvt.RefreshTable Next Next よろしくお願いいたします。
- みんなの回答 (2)
- 専門家の回答
関連するQ&A
- VBSでExcelのオープン確認
VBSCRIPTでエクセルに書き込むものを作っているのですが・・・ エクセルが開きっぱなしの場合、同じシートが開いて書き込めなかったりなど有りその対策を考えています。 もし開いていたらMsgBoxを出して終了させてしまおうかと思うのですがエクセルが開いているかどうか確認できません・・・ どのようにしたらよいでしょうか? wbCount = objExcel.Workbooks.Count msgbox wbCount myFlag = False for i = 1 to wbCount if objExcel.Workbooks(i).Name = strFilename then myFlag = True Exit for end if next if myFlag = True then msgBox "Open" else msgBox "not Open" end if
- 締切済み
- Visual Basic
- 複数のピボットテーブルのフィルタを一括選択
マクロ(VBA2007)で、作業中の1つのシートにある、複数のピボットテーブルのレポートフィルターを一括で選択しようとしております。以下のマクロでは”ピボットテーブル1”と名前のついたピボットしか操作できませんでした。複数のピボットを一括で選択する方法を教えていただけますか?(メーカー名がA、B、Cとあるフィルターです) ******************* Sub try() Dim pf As PivotField Dim p As PivotItem Set pf = ActiveSheet.PivotTables("ピボットテーブル1").PivotFields("メーカー") pf.Orientation = xlPageField pf.ClearAllFilters For Each p In pf.PivotItems Select Case p.Value Case "A", "C" '表示アイテム名をカンマ区切りで指定 Case Else p.Visible = False End Select Next End Sub *********************** よろしくお願いいたします。
- ベストアンサー
- Visual Basic
- マクロでピボットテーブルを作成
マクロでピボットテーブを作成したいのですが、範囲指定がうまくいきません。 Workbooks.Open Filename:="C:\出庫実績.csv" Range(Selection, Selection.End(xlDown)).Select Range(Selection, Selection.End(xlToRight)).Select ActiveWorkbook.PivotCaches.Add(SourceType:=xlDatabase, SourceData:= _ "出庫実績!R1C1:R458C24").CreatePivotTable TableDestination:="", TableName:= _ "ピボットテーブル1", DefaultVersion:=xlPivotTableVersion10 ActiveSheet.PivotTableWizard TableDestination:=ActiveSheet.Cells(3, 1) ActiveSheet.Cells(3, 1).Select ActiveSheet.PivotTables("ピボットテーブル1").PivotFields("店舗名称").Subtotals = Array( _ False, False, False, False, False, False, False, False, False, False, False, False) ActiveSheet.PivotTables("ピボットテーブル1").AddFields RowFields:="店舗名称" ActiveSheet.PivotTables("ピボットテーブル1").PivotFields("出庫数ケース").Orientation = _ xlDataField 出庫実績csvのデータは日々変わる為、範囲の選択がうまくいかず、ピボットテーブルの合計数が合いません。よろしくお願いします。
- 締切済み
- Visual Basic
- Excelマクロ ピボットテーブル シート名指定
お世話になります。 マクロでピボットテーブルを作成しようと思い、一連の動作をマクロ記録しましたところ下記のコードが記録されました。動作は問題ないのですが、ピボットテーブルが作成されるシート名や場所が指定できません。 出来れば、ピボットテーブルを作成するシート名は"ピボット"にして一番右端に配置したいのですが下下記のコードのどこを直せば(または追加)よいのか、どなたかご教授いただけますでしょうか? ActiveWorkbook.PivotCaches.Add(SourceType:=xlDatabase, SourceData:= _ "Sheet1!R1C1:R15C4").CreatePivotTable TableDestination:="", TableName:= _ "ピボットテーブル2", DefaultVersion:=xlPivotTableVersion10 ActiveSheet.PivotTableWizard TableDestination:=ActiveSheet.Cells(3, 1) ActiveSheet.Cells(3, 1).Select ActiveSheet.PivotTables("ピボットテーブル2").PivotFields("納品日").Subtotals = Array( _ False, False, False, False, False, False, False, False, False, False, False, False) ActiveSheet.PivotTables("ピボットテーブル2").PivotFields("地区").Subtotals = Array( _ False, False, False, False, False, False, False, False, False, False, False, False) ActiveSheet.PivotTables("ピボットテーブル2").PivotFields("商品").Subtotals = Array( _ False, False, False, False, False, False, False, False, False, False, False, False) ActiveSheet.PivotTables("ピボットテーブル2").AddFields RowFields:=Array("納品日", "地区" _ ), ColumnFields:="商品" ActiveSheet.PivotTables("ピボットテーブル2").PivotFields("出荷数量").Orientation = _ xlDataField ActiveWorkbook.ShowPivotTableFieldList = True よろしくお願い致します。 環境 Windows XP SP3 Excel2003
- ベストアンサー
- その他MS Office製品
- マクロでのピボットテーブルについて
EXCELにてピボットテーブルから抜粋できる表を作ろうと考えています。 sheet1!$A$1 にはピボットテーブルがあり、そこから値を拾い、 x~yの範囲に表を作るマクロです。 変数1~3にはユーザーが指定する項目が入ります。 さらにピボットテーブルの場所を変数としたいのですが、上手く値を拾えません。 (変数にすると#REF!となります) Dim 場所 As String 場所 = "sheet1!$A$1" Worksheets("sheet2").select For x = h to i For y = j to k Cells(x, y) = Application.Evaluate("=getpivotdata(""個数"",場所,""フィールド1"",""" & 変数1 & """,""フィールド2"",""" & 変数2 & """,""フィールド3"",""" & 変数3 & """)") Next Next Cells(x, y) = Application.Evaluate("=getpivotdata(""個数"",sheet1!$A$1,[略] と、すると正しい値が拾えるのですが。 ピボットテーブルの場所を変数にしてもエラーにならないやり方をご教示いただけませんでしょうか。
- 締切済み
- オフィス系ソフト
- Excel 2007 Windows7での不具合
下記のExcel 2007 VBAマクロを Windows XP で組んでいましたが、 Windows 7 に乗り換えたとたん、強制終了してしまいます。 Workbooks.Openのアドレスは、Windows 7用に書き換えました。 何方かご教授願います。 Private Sub CommandButton63_Click() Application.ScreenUpdating = False Dim wb As Workbook wbn1 = ActiveWorkbook.Name For Each wb In Workbooks If wb.Name = wbn1 Then Workbooks.Open "D:\ユーザー\PC18\Documents\※※※※\※※※※.xls" ActiveWindow.WindowState = xlMaximized Workbooks(wbn1).Save Application.DisplayAlerts = False Workbooks(wbn1).Close Else: Application.ScreenUpdating = False End If Next Application.ScreenUpdating = True End Sub
- 締切済み
- Visual Basic
- このVBSの修正点を教えてください。
Dim objExcel 'Excelのオブジェクトを作成する Set objExcel = CreateObject("Excel.Application") 'Excelを見えない形で表示させる。 objExcel.Application.Visible = True 'Excelブック①のパスとシート名を選択 objExcel.Workbooks.Open("C:\Users\user\Desktop\1_作成\銀行借入調達返済\2307-2406銀行借入調達返済 (全社表示).xlsm ") objExcel.Worksheets(objExcel.Worksheets.Count).select '実行するマクロ名を指定。 objExcel.Application.Run "CopyWorksheets_And_Autofill" objExcel.Application.Run "CopyNewBook" Set objExcel = Nothing 保存はANSIで.vbsで保存しました。
- ベストアンサー
- オフィス系ソフト
- VBSでWordの文字色変え
VBSなのですが Wordファイルをドラッグしたら <と>で囲まれた文字の色を変更して保存する というものを考えております が <============= 部分でコンパイルエラー(ステーメントがありません) が発生します 初心者でさっぱりわからないのですが どなたかお助けを! よろしくお願いいたします 以下ソース Dim objWord Dim f Dim m If WScript.Arguments.Count<1 Then m="Hello!" MsgBox m WScript.Quit End If Set objWord=CreateObject("Word.Application") objWord.Visible=True For Each f In WScript.Arguments objWord.Documents.Open f objWord.Selection.Find.ClearFormatting objWord.Selection.Find.Replacement.ClearFormatting objWord.Selection.Find.Replacement.Font.Color = wdColorRed With objWord.Selection.Find .Text = "\<[!\>]@\>" .Replacement.Text = "" .Forward = True .Wrap = wdFindContinue .Format = True .MatchCase = False .MatchWholeWord = False .MatchByte = False .MatchAllWordForms = False .MatchSoundsLike = False .MatchFuzzy = False .MatchWildcards = True End With objWord.Selection.Find.Execute Replace:=wdReplaceAll '<======================= objWord.ActiveDocument.SaveAs f&".doc" objWord.ActiveDocument.Close Next objWord.Quit WScript.Quit
- ベストアンサー
- Visual Basic
- 図形のクリアで実行時の1004エラーになる
指定範囲(I9:CW40)から図形(円・四角形)のクリアをするとエラーになってしまいます。終了をすればクリアはできるのですが。御教授願えませんでしようか?(尚四角形はセルの枠線上に貼り付けるようにしてあります。) Sub 図形のクリア() Application.ScreenUpdating = False Application.Calculation = xlCalculationManual Dim myRng As Range Dim sp As Variant Set myRng = Range("I9:CW40") For Each sp In ActiveSheet.Shapes If Not Intersect(Range(sp.TopLeftCell, sp.BottomRightCell), myRng) Is Nothing Then sp.Delete (ここで実行時1004のエラーになる。) End If Next Set myRng = Nothing Application.ScreenUpdating = True Application.Calculation = xlCalculationAutomatic End Sub
- ベストアンサー
- Visual Basic
- vbsで複数pptxから文字列抽出したい
vbsで複数pptx内の文字列抽出してxls出力する処理で 1つめのpptxのopen~文字列抽出~closeはうまくいくのですが 2つめのpptxをうまくobject生成できません。 デバッグ用コメントで確認すると2つめpptxを瞬時にopen~close したあとにForNextの文字列抽出が動いているようで For文で"オブジェクトがありません"となってしまいます。 どなたか解決方法をご教授願えませんでしょうか。 Sub GrepPpt(objPptFile) Dim sld,shp,rng,find_rng,tbl,find_cell Set objPpt = CreateObject("PowerPoint.Application") objPpt.Visible = True Set filex = objPpt.Presentations.Open(objPptFile) For Each sld In objPpt.ActivePresentation.Slides ←ここで For Each shp In sld.Shapes If shp.HasTextFrame Then For columnx = 0 To keywordsx.Count - 1 Set rng = shp.TextFrame.TextRange Set find_rng = rng.Find(keywordsx(columnx)) If Not find_rng Is Nothing Then arraylstx.add rng & vbTAb & shp.Name & vbTab &~(割愛) Exit For End If Next Else ~(Table検索割愛) End If Next Next filex.Close objPpt.Quit Set objPpt = Nothing End Sub
- 締切済み
- その他([技術者向] コンピューター)