投稿

7月, 2023の投稿を表示しています

システムのシャットダウンは既にスケジュールされています

「システムエラーです: &H800704A6(-2147023706) システムのシャットダウンは既にスケジュールされています」 というエラーメッセージが出ました。 作成したVBAは、IEで2つのページをスクレイピングするマクロでした。 1つ目のページを読み込み終わった後、2つ目のページを開く前、 具体的には Dim objIE As New InternetExplorer もしくは、 Set objIE = CreateObject("InternetExplorer.Application") という行で、IEオブジェクトを作成しようとしたときにエラーが出ます。 このエラーって、マクロで開くページとは別に、 IE で他のページが開かれている状態だと、発生しません。 ここからは推測になりますが、 Quit で IE を終了させても、裏で終了処理が動いており、 完全処理が終了する前に、新たに IEオブジェクトを作成しようとすると、 まだ IE を終了させている途中だからダメだよっていうエラーが出るようです。 他のページが開かれていると、IEのプロセスは終了されず、 残ったままですから、エラーが発生しません。 回避策は…、よくわかりません。15秒くらい待てば大丈夫ですけどね。 あるいは IEを完全に終了させないように、別のページを開いたままにしておくとか、 全ての作業が終わってから IEを終了させるかでしょうか?

VBAでOutlookメールのフォントを変更する

まあ、ぐだぐだと愚痴も書いていきますが、本題から書いておきます Sub FontTest()     Dim myOutlook As Object     Set myOutlook = CreateObject("outlook.application")     Dim myItem As Object     Set myItem = myOutlook.CreateItem(olMailItem)     Dim myDoc As Word.Document     Set myDoc = myItem.GetInspector().WordEditor     myItem.Body = "hogehoge"     myDoc.Content.Font.Name = "Meryo UI"     myItem.Display End Sub こういうのってブログに載せる際の作法とかあるのかな? まあ、よくわからないので気にしないでおきます。 エクセルVBAから新規にOutlookメールを作成するというのは 以前にやったことありまして、 今回、同僚が、私が以前作成したものを改変して作ったけど、 添付ファイルの前後でフォントが違ってしまう、との相談。 正直、なぜそうなったのか原因不明だし、私の環境じゃ その現象の再現もできなかったんですが、 フォントを全部変更しちゃえばいいでしょとか、 軽く答えてみたが、その方法がよくわからなかったわけです。 VBAでOutlookのメール本文を編集しようとすると、 ものすごくめんどくさいんですよね。 メールがテキスト形式なら、bodyを適当に置き換えてやれば済みますけど、 HTML形式やリッチテキスト形式だと、 何が何だかわからない感じになります。 まあ、それはさておき、フォントの変更ですが、 ネットで検索するとなかなか答えが見つからず、 特にリッチテキスト形式のフォント変更の方法が見つけられませんでした。 リッチテキスト形式では変更できないから、 HTML形式にしてstyleタグを付け足せというものと、 一旦HTML形式に変換してフォント変更し...
 ブログというか自分用の備忘録です てきとーにノンジャンルで書こうかなとも思いますが、 とりあえずしばらくはVBAのことを書きます 仕事をしていて、エクセルをよく使わされるわけですが、 その時に、「こんなのひとつひとつ手作業でやるのめんどくさい、 マクロ組んでやればいいんじゃないの?」っていう、 おそらく職場でやらないほうがいいムーヴランキング上位に入ると 思われる、「VBA使えます」アピールをしてしまって、 あれこれと頼まれるようになってしまいました。 正直、VBAについて教室とかで教わったわけでもないし、 書籍とかで勉強したわけでもないので、 ググったりして調べながらポチポチと作成する程度なので、 他の人の参考にはならないし、 それは間違っているとか怒られそうですが、 気にしないで、VBAで気づいたことなどを書いていこうと思います。