アプリ版:「スタンプのみでお礼する」機能のリリースについて

Excel2010でリボンの展開、最小化をマクロでユーザーフォームにはりつけたコマンドボタンから実行したい。
基礎的な勉強を全くしていないので、うまく説明できるか自信がないが質問内容は以下の通りです。
リボンの展開、最小化は、「コントロールキーとF1キーを同時に押す、をコードにすればよい」というのをみつけました。
そこでシートにボタンを張り付けて次のマクロで展開、最小化ができました。
Sub ボタン1_Click()
Application.SendKeys Keys:="^{f1}", Wait:=True
End Sub
しかし、これはユーザーフォームのコマンドボタンでは動きません。
Private Sub CommandButton1_Click()
Application.SendKeys Keys:="^{f1}", Wait:=True
End Sub
「Private Sub 」だからかと思うが、その先がわかりません。
ちなみに似たような動作で、全画面表示で次のようなものはどちらでも使えます。
Sub ボタン2_Click()
If Application.DisplayFullScreen = True Then
Application.DisplayFullScreen = False
Else
Application.DisplayFullScreen = True
End If
End Sub
この場合はユーザーフォームにはりつけても動きます。
ど素人にお知恵を貸してください。

A 回答 (2件)

今、ヘルプを確認しましたら、


 SHOW.TOOLBAR(ツールバー, 表示,……)
でした。

TOOLBARS ではなく、TOOLBARでしたので、以下のように訂正します。

----
Sub HiddenRibbon()
 リボンを隠す
' Application.DisplayFullScreen = False '全表示していると動かないという話も聞きました。ダメな場合は、ここも外してください。
  Application.ExecuteExcel4Macro "SHOW.TOOLBAR(""RIBBON"",FALSE)"
End Sub

Sub ShowRibbon()
 リボンの再表示
  Application.ExecuteExcel4Macro "SHOW.TOOLBAR(""RIBBON"",TRUE)"
End Sub


> Application.SendKeys Keys:="^{f1}", Wait:=True
なお、UserFormからは動かないのは、UserFormが、アクティブになっているからだと思います。OSが、64bit では動きませんが、標準的な環境なら、以下のようにすれば動くはずです。

Private Sub CommandButton1_Click()
 AppActivate Application.Name
 CreateObject("Wscript.Shell").SendKeys "^{F1}", True
End Sub
    • good
    • 0
この回答へのお礼

できました。
前段、修正したら動きました。しかし、やりたかったことはリボンだけを隠す、FullScreenの動作と少し違います
そこで後段、これで希望どおりの動きになりました。
なおこの場合、UsewrFormのShowModalをFalseにする必要がありTrueのままでは動きませんでした。
再三のご教示ありがとうございました。

お礼日時:2011/02/18 10:50

>Excel2010でリボンの展開、最小化をマクロでユーザーフォームにはりつけたコマンドボタンから実行したい。



というのでしたら、Excel 2010では試してはいませんが、これで動くはずですが……。

Sub HiddenRibbon()
 リボンを隠す
  Application.ExecuteExcel4Macro ("SHOW.TOOLBARS(""RIBBON"",FALSE)")
End Sub
Sub ShowRibbon()
 リボンの再表示
  Application.ExecuteExcel4Macro ("SHOW.TOOLBARS(""RIBBON"",TRUE)")
End Sub
    • good
    • 0
この回答へのお礼

申し訳ありません。やり方が悪いのかこれでは動きませんでした。

お礼日時:2011/02/18 06:59

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!