ログインしてさらにmixiを楽しもう

コメントを投稿して情報交換!
更新通知を受け取って、最新情報をゲット!

EXCEL VBAコミュの【質問】SendKeysの画面遷移非表示の方法を教えて下さい!

  • mixiチェック
  • このエントリーをはてなブックマークに追加
VBAをはじめて日が浅いので常識だったらごめんなさい。
どうしても分からないので誰か教えて下さい。
よろしくお願いしますm(_ _)m
標記の件で、両面印刷をSendKeysで設定したのですが画面がシャカシャカ動いているさまをなんとか非表示にできないでしょうか?式の前後にScreenUpdatingをはさんでみたのですが、ScreenUpdatingは非表示にするというよりも画面遷移を一時停止させてしまうため、SendKeyが機能しなくなってしまいます。
なにぶん初心者のため的外れ&うまく説明しきれてませんがなにとぞよろしくお願いします♪

【参考】(今の式)

Sub 両面印刷()

SendKeys "%F"
SendKeys "P"
SendKeys "%R"
SendKeys "標準設定"
SendKeys "^({PGDN})"
SendKeys "%Y"
SendKeys "({DOWN})"
SendKeys "({ENTER})"
SendKeys "({ESC})", True
ActiveSheet.PrintOut from:=1, To:=Range("CK3")


End Sub

コメント(12)

Sendkeyなので・・・うーん・・・

ウィンドウの左上角をクリックすると、「移動」が選べると
思うので(キーボードではAlt-↓)、上下左右キーをsendし、最初に可視範囲から追い出すのは如何でしょう。
>お二方
早速のご回答ありがとうございます。
お二方ともVBAに卓越した知識があるようなので非常に心強いです。よろしくお願いいたします。

>Sedvicious さん
はい、会社のプリンターでこの式を組み込んだアプリを用いて全国で使用いたします。会社のプリンターは全国で1万台は超えます。ただ、総務部によると当社では大きく分けて2種類のプリンターを使用しており、PrintOutの機能に頼った式だとどうしてもプリンターの機種名まで式に組み込まなければならず、ひとつのボタンで全国のプリンターで使用しなければならない現状を考えると苦肉の策でSendkeyを用いなければならない状況です・・・ただ、調査したところ2台のプリンターのダイアログボックスの「標準設定」は全社基準で統一されているので
いったん標準設定にデフォルト設定をしたのち、両面印刷までカーソルを変更し、Eacでボックスを閉じた後にPrintOutで文字を認識しているセルまでを印刷しています(だらだらとすみません)

> “ぼ”さん
ウィンドウの左上角をクリックしての移動とはどんなことでしょうか?窓をそのままドラッグしてつまみだす感じでしょうか?お教え願いますm(_ _)m
>CCC-ありす(多分)さん
ご返答ありがとうございます。
ダイアログボックス自体は最大化しているわけではないので「これはいける!!!」ということで、早速お教えいただいた方法で式を組んで試したところ…
上司に「動きがおもしろすぎだろ!」と言われて却下をされてしまいました(^^;)
画面遷移を隠すための苦肉の策ではございましたが実際にやってみると画面がツツツーって下に動くさまは確かにコミカルな感じがあるのが否めませんでした。

やはりSendkeyを用いると他の機能とどうしても相性があわないのかなぁ???
sendkeyはアクティブウィンドウに対して有効なので、最小化
するとアクティブが変わってしまいます。そこで、画面の隅に
逃がすというのを考えたのですが・・・。

展開範囲の規模を考慮すると、レジストリの書換により、
プリンタのデフォルト設定を変えてから印刷、レジストリを
戻すという方法もありそうですが・・・検証が面倒そうです

もしくは、実台数は1台のプリンタに対し、プリンタを複数
インストールし、それぞれの名前と標準設定を変えておいて、
名前で使い分けるという方法もあるかな・・・
例えば、LBPXXXと、LBPXXX両面という2つの
プリンタがダイアログから選べるけど、実機は1台という
環境を作ってしまうとか・・・
初めまして。
今日登録させて頂いたばかりの”一世”と申します。

構文の一番始めに

Application.ScreenUpdating = False

を挿入すると画面更新を中止出来ると思いますよ。
一世さん

トピ本文中に

>ScreenUpdatingは非表示にするというよりも画面遷移を
>一時停止させてしまうため、SendKeyが機能しなくなって
>しまいます。

とあります。
本文を良く読んでいない証拠ですね。(-_-;)
申し訳ありません。

でも、sendkeyってそういう性格を持っていたんですね。
勉強になりました!

ログインすると、みんなのコメントがもっと見れるよ

mixiユーザー
ログインしてコメントしよう!

EXCEL VBA 更新情報

EXCEL VBAのメンバーはこんなコミュニティにも参加しています

星印の数は、共通して参加しているメンバーが多いほど増えます。