質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
Windows 10

Windows 10は、マイクロソフト社がリリースしたOSです。Modern UIを標準画面にした8.1から、10では再びデスクトップ主体に戻され、UIも変更されています。PCやスマホ、タブレットなど様々なデバイスに幅広く対応していることが特徴です。

VBA

VBAはオブジェクト指向プログラミング言語のひとつで、マクロを作成によりExcelなどのOffice業務を自動化することができます。

Access

Accessはマイクロソフトによるリレーショナルデータベース管理システムです。オブジェクト指向のアプリケーション作成に対応しており、テーブルや編集をはじめ、クエリ生成、入力フォーム作成、レポート作成など一通りの機能を備えています。

Q&A

解決済

2回答

4045閲覧

タスクスケジューラを使いAccess VBAからExcel起動をしようとすると失敗する

SakuraBeans

総合スコア2

Windows 10

Windows 10は、マイクロソフト社がリリースしたOSです。Modern UIを標準画面にした8.1から、10では再びデスクトップ主体に戻され、UIも変更されています。PCやスマホ、タブレットなど様々なデバイスに幅広く対応していることが特徴です。

VBA

VBAはオブジェクト指向プログラミング言語のひとつで、マクロを作成によりExcelなどのOffice業務を自動化することができます。

Access

Accessはマイクロソフトによるリレーショナルデータベース管理システムです。オブジェクト指向のアプリケーション作成に対応しており、テーブルや編集をはじめ、クエリ生成、入力フォーム作成、レポート作成など一通りの機能を備えています。

0グッド

1クリップ

投稿2022/01/13 10:39

編集2022/01/13 11:32

AccessVBAを使用し、データベースから抽出したデータをExcelに出力するプログラムを作りました。(Office2016)
通常起動(Accessからモジュール実行)では使用できるのですが、
タスクスケジューラで「ユーザーがログオンしているかどうかに関わらず実行する」-「最上位の特権で実行する」だと Set xlapp = CreateObject("Excel.Application")で失敗します。
※ログオンしているときのみ実行だと正常動作
※ユーザは管理者権限をもっています
※テキストファイルにログを出力し、下記で止まっていることを確認済。
Set xlapp = CreateObject("Excel.Application.16") 

回避策を知りたいのですが、ご教授いただけますでしょうか。
よろしくお願いいたします。

'Public Function OutputExcel()
Dim xlapp As Object
Dim path, wbook, sheetName As String
Dim SerchStartDate As Date

Set xlapp = CreateObject("Excel.Application.16") SerchStartDate = Date - 1 path = "\\ネットワークドライブの指定パス\" wbook = "Excelファイル名.xlsx" wbook = path & wbook 'テンプレートファイルオープン xlapp.Workbooks.Open (wbook)  ←エラー xlapp.Application.DisplayAlerts = False xlapp.ActiveWorkbook.SaveAs FileName:=wbook xlapp.Application.DisplayAlerts = True xlapp.Quit

Exit Function

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答2

0

ベストアンサー

タスクスケジューラからExcelが開けない
http://heppokosehuntouki.blog.fc2.com/blog-entry-4.html

↑のブログ内容が質問内容と似ているかなぁ。
2014/10/24 01:24 にUPされていたブログ記事なので現在と状況が違うかもしれませんが、
(OSやOfficeのバージョンが違うので)

上記ブログの中で気になったキーワード

Office製品は無人のオートメーション作業はサポートしていない

をキーワードにしてGoogleで検索してみると

無人 RPA 環境での自動OfficeのMicrosoft 365に関する考慮事項
https://docs.microsoft.com/ja-jp/office/client-developer/integration/considerations-unattended-automation-office-microsoft-365-for-unattended-rpa

[アーティクル] 2021/09/25
最近の情報も出てきたので、何か参考になれば。
と思って、流し読みしてみたけど、なんか質問とは違うかな
※本質からそれて、よけいに混乱させてしまったらスミマセン・・・・

投稿2022/01/18 04:55

編集2022/01/18 05:00
ken3memo

総合スコア132

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

SakuraBeans

2022/01/18 23:54

ken3memoさま ありがとうございます! 参考にさせていただき確認作業してみたいと思います! 本日実施後に改めて状況記載させていただきます。 よろしくお願いいたします。
SakuraBeans

2022/01/20 05:18

本日作業してみたのですが(仮想作成)解消できませんでした。 Office2016で365ではないので、無人RPAに関するご指摘事項も該当しないようにも感じています。。
SakuraBeans

2022/01/20 07:36

ken3memoさま ありがとうございます! まさかと思いつつ、64bit環境であるものの32bitの仮想デスクトップフォルダを作成してみたところ、正常動作ができました! 大変助かりました!
ken3memo

2022/01/20 09:16

まさかでたしたね・・・「ユーザーがログオンしているかどうかに関わらず実行する」-「最上位の特権で実行する」その時に、Office内の何かで使っているんでしょうね。。。う~ん。 フォルダがないなら、ソフト側(Office側)で勝手に自動で作ってくれてもいいのにね。 とにかく、動いて良かったですね。
SakuraBeans

2022/01/20 10:10

ken3memoさま 色々と調べてみたものの、教えていただいた情報には自分では行きつけなかったので、本当に助かりました! ちなみにですが、同プログラムでOutlookに生成したファイルを添付してメールを自動送付しているのですが、そちらのOutlook起動でもエラーがでていたのですが、そちらも仮想デスクトップフォルダを生成したら正常起動できました。 64bitなのに、なぜ32bitのフォルダをみているのか。も謎だらけですが(苦笑 ありがとうございました!
guest

0

おそらく下記と同様の事象かと思います。
タスクスケジューラから起動した際にネットワークドライブが参照できない為にエラーになっているものと思われます。

■ タスクスケジューラでネットワークからのファイルコピーバッチが動かない場合の対処
https://obenkyolab.com/?p=3288

対処方法としては、タスクスケジューラで直接 Access VBA を起動するのではなく、
バッチファイルを用意して、net use ~ コマンドによりネットワークドライブの割り当てを行ってから
Access VBA を起動するようにしたら良いかと思います。

投稿2022/01/13 13:48

cx20

総合スコア4633

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

otn

2022/01/13 14:56

> ※テキストファイルにログを出力し、下記で止まっていることを確認済。 > Set xlapp = CreateObject("Excel.Application.16")  という記述がそもそも間違っているのだろうという推測ですかね。そこは疑わなかった。なるほど。
SakuraBeans

2022/01/13 15:20

cx20さま 早々にありがとうございます! 明日になるのですが、早速こちらで対処してみて結果ご報告します! otnさま >記述がそもそも間違っているのだろうという推測ですかね。そこは疑わなかった。なるほど。 記述が間違っている。or別の記述があるか。などお知恵を拝借したかったです。
otn

2022/01/13 16:53 編集

>記述が間違っている。or別の記述があるか。などお知恵を拝借したかったです。 ということですが、 > テキストファイルにログを出力し、下記で止まっていることを確認済。 という「確認済」という記述が間違っているところまでは質問時点でなんとかしてください。つい、質問の日本語文章は正しい前提で考えちゃうので。 おそらくは、「下記までは期待通り実行されていることを確認済」が正しいと思われます。
SakuraBeans

2022/01/14 06:45

cx20さま バッチファイルをnet useを追記し修正し実行してみましたが、やはり同じところでエラーが発生します。。 そもそもですが、タスクスケジューラに設定しているbat自体もネットワーク上に保存しているものなので ネットワークドライブが認識できていないわけではないようにも感じ。。。 また、ネットワーク探索・プリンタ共有は有効、ゲストログオンも有効にしてみましたが、うまくいきません。。
SakuraBeans

2022/01/14 09:11

otnさま ご指摘ありがとうございます。 次回以降注意します。
cx20

2022/01/15 05:36

> ネットワークドライブが認識できていないわけではないようにも感じ。。。 ネットワークドライブの問題では無さそう、とのこと了解しました。 念のためですが、問題の切り分けの為に、 下記パスと Excel ファイルの配置先をローカルで読み込み可能な場所(C:\TEMP など)に変更してエラーが解消されるか確認してもらっても良いでしょうか? > path = "\\ネットワークドライブの指定パス\" > wbook = "Excelファイル名.xlsx"
SakuraBeans

2022/01/17 04:00

cs20さま お忙しいなか、ありがとうございます。 ローカル(c:\temp)にて実施してみましたが、同一現象でした。。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問