• ベストアンサー

VBA コマンドバーを消した後に残る空白部分

end-uの回答

  • end-u
  • ベストアンサー率79% (496/625)
回答No.4

ぁ...CommandButtonにフォーカスを残しておかなければいいので Private Sub btnProtect_Click()   ActiveCell.Select '●   ' アプリケーション全体の処理   Call Module1.offCmdBarAttr   ' シート単位の処理   Call Module1.protectSheet("Sheet1")   ' ブック単位の処理   Call setBookAttribute(False)   Worksheets("Sheet1").Activate End Sub これでもいいかも。

tatapata
質問者

補足

end-uさん、いつもありがとうございます。 いただいた方法で試してみましたが(Activecell.Select)、 私のほうでは解消しませんでした。 現在はダミーでツールバーを表示させておく方法で、 回避していますが、できればきれいに解決したいものです。 ScreenUpdatingを無効にしておかないと、一瞬でもユーザー 情報が表示されてしまうため、なんとか解決しないといけないの ですが…。 お手数をおかけしますが、引き続きお願いできたらと思います。

関連するQ&A

  • VBA 保存方法を教えて下さい

    Private Sub Workbook_BeforeClose(Cancel As Boolean) If MsgBox("×ボタンは使用できません。" & vbCr & _ "よろしいですか?", vbInformation + vbOKOnly) = vbOK Then Cancel = True End If End Sub 上記の様にEXCELワークブックに記述しましたが、 別に設置した「保存終了ボタン」で終了できなくなってしまいました。 Workbook_BeforeClose が邪魔しているようです。 どうすれば解決できるでしょうか? 「保存終了ボタン」に記述しているコードは下記です。 Sub 保存終了() ActiveWorkbook.Save CommandBars("Worksheet Menu Bar").Enabled = True Application.CommandBars("Standard").Visible = True Application.CommandBars("Formatting").Visible = True Application.CommandBars("Drawing").Visible = True With Application .DisplayFormulaBar = True .ShowWindowsInTaskbar = True End With Application.WindowState = xlMaximized Application.Quit MsgBox "終了します" End Sub 宜しくお願いします。

  • エクセル95のVBAマクロに詳しい方!

    エクセルの画面からメニューバー等のすべてのバーを標示させないようにするには下記の記述ということを教わりました。(有難う御座いました) 試したところ97、2000ではこれで完璧でした。 ところが95ではエラーになってしまうのです。ファイルはもちろん95形式で保存してあります。 どなたか、95に詳しい方、対処法をご教示ください。 Sub コマンドバー非表示() For Each myCB In Application.CommandBars myCB.Enabled = False Next myCB End Sub

  • エクセルVBAでコンパイルエラー

    すみません、どうしても腑に落ちないので質問させてください。 わたしが書いて配布したBOOKのコマンドバーを非表示にするコードなのですが、エクセル2000で、myCB のところでコンパイルエラーになるという連絡がありました。 その方は数台PCをお持ちですべての端末でそうなるとのことです。 しかし、下記コードはこれまで2000でも2003でも2007でも何度も試しており、これまでそのようなことはありませんでした。 Private Sub ALLBARS_Hide()   Dim myCB As CommandBar   For Each myCB In Application.CommandBars     myCB.Enabled = False   Next myCB End Sub どういった原因が考えられるでしょうか? なお、上記コードはAuto_OpenからCallされます。

  • VBA を使用してexcel起動時に 右クリックメニューの行削除や列削除を無効にしようとするとエラーが出ることがある。

    お世話になります。 VBA を使用してexcel起動時に 右クリックメニューの行削除や列削除を無効して、下記VBAを作成しました。 しかしながら、起動時(実行時)に 「実行時エラー 5 プロシージャの呼び出し、または引数が不正です。」が出ることがあります。 でないときもあるのですが、 デバック時にとまるところは、毎回変わり(1)~(5)のどれかで止まります。 使用したい環境はexcel2007,excel2003で正常に動くようにしたいのですが、何卒よろしくお願いします。 *************ソース********************* Private Sub Workbook_Open() InsertEnabled False End Sub Private Sub Workbook_BeforeClose(Cancel As Boolean) InsertEnabled True End Sub Private Sub InsertEnabled(flg As Boolean) With Application (1) Application.CommandBars("Worksheet Menu Bar").Controls("挿入(&I)").Enabled = flg (2) Application.CommandBars("Cell").Controls("挿入(&I)...").Enabled = flg (3)Application.CommandBars("Cell").Controls("削除(&D)...").Enabled = flg (4)Application.CommandBars("Row").Controls("挿入(&I)").Enabled = flg (5)Application.CommandBars("Row").Controls("削除(&D)").Enabled = flg .CommandBars.FindControl(, 296).Enabled = flg .CommandBars.FindControl(, 293).Enabled = flg End With End Sub

  • Excel2003でブックごとにコピー&ペースト不可の制限

    過去の記事なども調べ 下記でアプリケーション単位での設定はわかりました。 しかし全ブックに影響がでるのはこまるのでこれをブック単位に設定することはできますでしょうか。 お願いします! ▽ソース Sub Auto_Open() Call DisEnableKeys1 Call DisEnableKeys2 End Sub Sub DisEnableKeys1() Dim eFlg As Boolean eFlg = False 'サブルーチンにしてトグルも可能 With Workbook .CommandBars("Worksheet Menu Bar").Controls("編集(&E)").Controls("貼り付け(&P)").Enabled = eFlg .CommandBars("Cell").FindControl(, 22).Enabled = eFlg If eFlg = False Then .OnKey "^v", "DummyMacro1" Else .OnKey "^v" End If End With End Sub Sub DisEnableKeys2() Dim eFlg As Boolean eFlg = False 'サブルーチンにしてトグルも可能 With Workbook .CommandBars("Worksheet Menu Bar").Controls("編集(&E)").Controls("コピー(&C)").Enabled = eFlg .CommandBars("Cell").FindControl(, 19).Enabled = eFlg If eFlg = False Then .OnKey "^c", "DummyMacro2" Else .OnKey "^c" End If End With End Sub Sub DummyMacro1() MsgBox "貼り付けは禁止されています。", vbInformation End Sub Sub DummyMacro2() MsgBox "コピーは禁止されています。", vbInformation End Sub

  • エクセル2007にコマンドバーはないのですか?

    Sub コマンドバー作成() Dim myBar As CommandBar Set myBar = CommandBars.Add(Name:="test") myBar.Visible = True End Sub これをしても何も起きないのですが、2007はコマンドバーがないのでしょうか? 2003の時はコマンドバーが作成されました。

  • Excel 数式バーを非表示にしたい(VBA)

    ツール-オプション-表示-数式バーのチェックを外せば 数式バーを非表示にできますが、VBAでやりたいと思います。 次の様に記述してみましたが、書式バーの「数式バー(F)」のボタンが非表示になるだけで数式バー自体は非表示になりません。 Private Sub Workbook_Open() Application.CommandBars("formatting").Controls(23).Visible = False End Sub 次の様に記述してみても今度は「数式バー(F)」のボタンが操作不可になるだけで数式バー自体は非表示になりません。 Private Sub Workbook_Open() Application.CommandBars("formatting").Controls(23).Enabled = False End Sub 他にも試すのですが、エラーになったりで答えに辿り着けず・・ どなたかヒントだけでもお願いします。

  • エクセル2003で作成したVBAを2007で使用したい

    エクセル2003で下記のようなVBAを作成していました。 作成した物を使用者が印刷設定を変更できないように ブックを開くと同時に印刷ボタンなどを非表示にしていたのですが・・・ 2007でも使用出来るようにしたいと思ったのですが 2007ではこのままではエラーが出てしまうようです。 2007はまったく扱ったことがないのでどのようにすればよいかわかりません。 どなたかご教授いただけたらと思います。 Private Sub Workbook_Open() Application.DisplayStatusBar = False 'ステータスバー非表示 'ブックを開く時ページ設定と印刷を非表示 On Error Resume Next Application.CommandBars("Worksheet Menu Bar").Controls("ファイル(&F)") _ .Controls("ページ設定(&U)...").Enabled = False Application.CommandBars("Worksheet Menu Bar").Controls("ファイル(&F)") _ .Controls("印刷(&P)...").Enabled = False Application.CommandBars("Worksheet Menu Bar").Controls("ファイル(&F)") _ .Controls("印刷プレビュー(&V)").Enabled = False Application.CommandBars("Worksheet Menu Bar").Controls("ファイル(&F)") _ .Controls("印刷範囲(&T)").Enabled = False Application.CommandBars("Standard").Enabled = False End Sub

  • エクセル2003 自作ツールバー(コマンドバー)の選択戻り値取得方法

    ツールバーのショートカットを自作して 入力を楽にしようと考えております。 ツールバーには、直接入力するリストを表示させ そのリストの中から選んで、セルに記入させると 言うマクロを作ろうとしているのですが、 選択された、リストの戻り値を取れないため、 苦戦しております。 戻り値の取得方法とかあるのでしょうか? 宜しくお願いいたします。 コードを以下に記します。 Option Explicit Option Base 1 Dim myCB As CommandBar Dim myCBCtrl As CommandBarButton Dim myData() As String Dim n As Integer, i As Integer ---------------------------------------------------------------- Sub AddCmdBarBtn() Call 配列 On Error Resume Next CommandBars("MyMacro2").Delete Set myCB = Application.CommandBars.Add(Name:="MyMacro2", _ Position:=msoBarPopup, Temporary:=True) For i = 1 To 5 Set myCBCtrl = myCB.Controls.Add(Type:=msoControlButton) With myCBCtrl .Caption = myData(i) .OnAction = "ツールバーマクロ" End With Next i myCB.ShowPopup End Sub ---------------------------------------------------------------- Private Sub ツールバーマクロ() ActiveCell.Value = myCB.Controls.Item.Caption<<<此処を上手く処理できません(泣) End Sub ---------------------------------------------------------------- Private Sub 配列() ReDim myData(5) For n = 1 To 5 myData(n) = "名前" & n Next n End Sub ---------------------------------------------------------------- このマクロを右クリックイベントで使って行きたいと考えている のですが。

  • エクセルVBAでShapesまたはDrawingObjects

    シート上のフォームなどを表示/非表示するためtest04を書きましたが、「実行時エラー438 オブジェクトはこのプロパティまたはメッソッドをサポートしていません」となります。 しかし、Test05のように同じことをForNextで回せばうまくいきます。 また、Test06のようにShapesをDrawingObjectsに書き換えただけでもうまくいきます。 では、Test04がエラーになるのはなぜでしょうか? Sub test04() With ActiveSheet.Shapes If .Visible = False Then .Visible = True Else .Visible = False End If End With End Sub Sub test05() For Each sp In ActiveSheet.Shapes If sp.Visible = False Then sp.Visible = True Else sp.Visible = False End If Next End Sub Sub test06() With ActiveSheet.DrawingObjects If .Visible = False Then .Visible = True Else .Visible = False End If End With End Sub