[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]
『デザインモードをマクロで』(純丸)
デザインモードのオンオフをマクロで操作するって可能ですか? 可能でしたらコードをご教授下さい。 (純丸)(o^-')b
表示>ツールバー>ユーザー設定で 任意のツールバーにデザインモードボタンをドロップ、 ボタンを「テキストのみ表示」にしてアクセラレータキーを既存の データ(D)と重複しないように名前の部分をカスタマイズ。 例えば、デザインモード(&D)→デザインモード(&M)とすれば、 アクセラレータキーはAlt+Mになります。 その上で、 SendKeys "%m",true ただ、この方法では、Onにした時点でマクロがBreakしちゃうので 別のブックから実行してもマクロでOff(デザインモード解除)に はできません。(ただし、デザインモードOffのブックから再度 SendKeysを実行すれば解除は出来ます) 具体的にはどんな制御をしたいのでしょう? (みやほりん)(-_∂)b
Onにするとリセット信号が入って、マクロがリセットされちゃうから あまり意味がないですね。 BJ
Sub StOff() Application.CommandBars.FindControl(ID:=1605).Reset MsgBox 123 End Sub
Sub Ston() Application.CommandBars.FindControl(ID:=1605).Execute MsgBox 123 '← 動かない End Sub
こうすれば動くみたいです。 追加11:23
Sub Ston() Application.OnTime Now(), "aaa" Application.CommandBars.FindControl(ID:=1605).Execute End Sub
Sub aaa() DoEvents MsgBox 123 End Sub
夕べ質問をUPした後、布団の中で、なんてお馬鹿な質問を してしまったのだろうと反省しました。 なぜなら、デザインモードの解除をイベントで実行するのは 不可能だと気が付いたから。(汗)
質問した事情はですね、Aブックに下記のイベントがあります。
Private Sub Workbook_Activate() Application.ActivePrinter = "OKI MICROLINE 8350SE on LPT1:" End Sub
Private Sub Workbook_Deactivate() Application.ActivePrinter = CreateObject("Excel.Application").ActivePrinter End Sub
この時、Aブックのシートのセル範囲をコピーして、別のブックの シートに貼り付けようとしても出来ない。上記のDeactivateイベントで クリップボードがクリアされてしまうらしい。 従って、デザインモードにしてコピペをする訳ですが、どうかすると Aブックに戻った時、デザインモードの解除を忘れてしまう。
そこで、Activateイベントで、デザインモードの解除をしようと考え、 質問におよびました。これが不可能なのは当然。
みやほりんさん、BJさん、ありがとうございました。 いろいろと考えて見ます。 (純丸)(o^-')b
Cutcopymodeをフラグにすれば出来そうです。 Private Sub Workbook_Deactivate() If Application.CutCopyMode Then exit sub Application.ActivePrinter = CreateObject("Excel.Application").ActivePrinter End Sub (みやほりん)(-_∂)b
みやさん、ありがとうでした。おかげで問題点が1つ解決しました。 CutCopyModeって値の取得も出来たのですね。全然、考えつかんかった。 (純丸)(o^-')b
[ 一覧(最新更新順) ]
YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki.
Modified by kazu.