現在、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
よろしくお願いいたします。
A 回答 (2件)
- 最新から表示
- 回答順に表示
No.2
- 回答日時:
ぁ、すみません。
ひょっとしたら読み違っちゃってますか。>これをvbsファイル内でパスワードを渡して実行するように出来ないでしょうか?
InputBoxなどでパスワード入力して渡す、という事ですか?
その場合は
Option Explicit
Call main
Sub main()
Dim XL
Dim pc
Dim x
x = InputBox("pass?")
If Len(x) =0 Then
WScript.Quit
End If
Set XL = CreateObject("excel.application")
XL.Visible = True
With XL.Workbooks.Open("C:\temp\temp.xls")
For Each pc In .PivotCaches
pc.Connection = "ODBC;DSN=データソース名;UID=ユーザ名;PWD=" & x & ";"
pc.Refresh
Next
End With
'XL.Quit
Set XL = Nothing
End Sub
こんな感じでどうでしょうか。
一度、PivotCachesのConnectionプロパティを調べてみて下さい。そこに
"PWD=" & x & ";"
..などのようにパスワード文字列の指定を追加すれば良いように思います。
No.1
- 回答日時:
oracleの環境はないのでExcelでのODBC接続時の一般的なアドバイスと受け取ってください。
まず、何点か確認です。
1)VBSコードにパスワードを埋め込むという運用方法は問題ないですか?
2)該当ExcelBookを開いて、手動で更新する場合はどうしてますか?(パスワード手入力か)
手動では自動更新できるのに、VBSではパスワードを求められるという話なら、ちょっとわかりません。
現状、(2)の手動更新時にパスワードを入力しているなら、
その後にピボットテーブル右クリック[オプション]で
外部データオプション:「パスワードを保存する」にチェックを入れておくと次回以降パスワード入力を回避できます。
#セキュリティ上、問題ないならDSN設定のほうでパスワード保存しておいても良いかもしれませんが。
VBSコードにパスワードを書き込んでおいても良いならコード制御可能だと思いますが、
おまりおすすめはしません。
それでも構わない場合は補足ください。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Excel(エクセル) excel ピポットテーブルの更新について 1 2022/05/13 16:12
- Microsoft ASP C#からvbsを実行したい 5 2022/11/24 17:31
- Visual Basic(VBA) このVBAでExcelアプリケーションを作成は必要ですか? 3 2023/07/19 21:13
- Visual Basic(VBA) DisplayAlertsブロパティで ”実行時エラー424オブジェクトが必要です” 5 2022/05/15 18:02
- Excel(エクセル) EXCELの外部データ取得ができない 1 2023/03/23 09:03
- Excel(エクセル) Excelでデータを抽出するに良い方法 9 2023/02/06 12:42
- Visual Basic(VBA) VBS Bookを閉じるコード 1 2023/02/16 17:31
- その他(プログラミング・Web制作) VBSでExcelファイル起動時、重複しても開くのを止めたい 1 2022/10/01 23:20
- その他(Microsoft Office) エクセルのマクロについて教えてください。 5 2023/01/21 09:39
- Visual Basic(VBA) VBA Bookの表示、非表示 1 2022/09/16 20:44
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
メールをパスワードつきで送る方法
-
Excelのセルにユーザー名...
-
YouTubeが毎回ログインしないと...
-
大学定期試験過去問サイト「過...
-
メールを返信したら、英語のメ...
-
LINE TCBというところからLINE...
-
メールのマナー編
-
インスタの捨て垢で友達のスト...
-
メールアドレスで上付きのハイフン
-
エクセルで複数ファイルに同一...
-
「@」(アットマーク)の無いメ...
-
メールアドレス 上バーの入力...
-
CSVファイルを添付するときにパ...
-
URLとメールアドレス
-
メールエラー
-
メールアドレスから個人を特定...
-
高一男子です 僕が絶対に悪いん...
-
Outlookで、メールを他...
-
インスタグラムでブロックされ...
-
ワードに入力したメールアドレ...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
Excelのセルにユーザー名...
-
メールをパスワードつきで送る方法
-
LINE TCBというところからLINE...
-
メールアドレス 上バーの入力...
-
大学定期試験過去問サイト「過...
-
メールエラー
-
メールのマナー編
-
メールアドレスで上付きのハイフン
-
インスタの捨て垢で友達のスト...
-
インスタのアイコンについてるN...
-
メールを返信したら、英語のメ...
-
steam版 apexのログアウト方法...
-
ビーリアルのユーザー名を変え...
-
メールアドレスから個人を特定...
-
携帯電話を解約してもSMSの受信...
-
「@」(アットマーク)の無いメ...
-
YouTubeが毎回ログインしないと...
-
解約済みの iPadについて 解約...
-
カカオで退会せずに、アプリだ...
-
CSVファイルを添付するときにパ...
おすすめ情報