[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]
『メニューバーの非表示について』(らいち)
VBAを使って、メニューバーを非表示にしているのですが VBAを組んだファイルを開いたまま、VBAを組んでいないファイルを 開くと、VBAを組んでいないファイルまでメニューバーが非表示と なってしまいます。
また、その状態でVBAを組んでいないファイルの右上の「×」印で 閉じようとすると、閉じることが出来ずにVBAを組んだファイルに 切り替わると共に、メニューバーも表示されるようになり、困ってます。
非常に判り難い説明で申し訳ありませんが、ご指導をお願いします。
VBAが組まれているブックのThisworkbookモジュールに
Private Sub Workbook_WindowActivate(ByVal Wn As Window) Application.CommandBars("Worksheet Menu Bar").Enabled = False End Sub
Private Sub Workbook_WindowDeactivate(ByVal Wn As Window) Application.CommandBars("Worksheet Menu Bar").Enabled = True End Sub
としてみてはどうでしょうか? そのブックがアクティブの時だけメニューバーを非表示にして 他のブックがアクティブの時は表示します。 (momo)
おー!出来ました!!momoさん、いつも有難う御座います。(らいち)
喜んだのもつかの間、問題が発生してしまいました・・・(らいち) メニューバー表示は解決しましたが、そのVBAを組んだファイルで 表内のデータをコピーして、新規bookを開き、形式選択で書式と 値を貼り付けた後、指定した名称で保存するというVBAでエラーが 発生しました。下記にVBAコードを記載しますので、どこを修正すれば 良いかをご指導願います。
エラー内容: 「実行時エラー:1004 RangeクラスのPasteSpecialメソッドが 失敗しました。」
エラー箇所: .Range("B2").PasteSpecial Paste:=xlFormats, Operation:=xlNone, SkipBlanks:=False, Transpose:=False
VBAコード: Private Sub タグ作成_Click() Dim InPt As Long Dim c As Object Dim myKey As String Dim SaveName As String Dim wb As Workbook, wkbk As Workbook Set wb = ThisWorkbook InPt = Application.InputBox(prompt:="No.を入力して下さい。", Type:=1) If InPt = False Then Exit Sub Application.ScreenUpdating = False ActiveSheet.Unprotect myKey = InPt With ActiveSheet.Range("$c$5:$c$3000") Set c = .Find(What:=myKey, LookIn:=xlValues, lookat:=xlWhole, _ SearchOrder:=xlByColumns, MatchByte:=False) If c Is Nothing Then MsgBox "No." & InPt & "は登録されていません。" Else ThisWorkbook.Sheets("タグ").Visible = True Sheets("タグ").Activate With wb.ActiveSheet .Range("c3").Value = InPt .Range("B2:C16").Copy End With Set wkbk = Workbooks.Add With wkbk.ActiveSheet .Range("B2").PasteSpecial Paste:=xlFormats, Operation:=xlNone, SkipBlanks:=False, Transpose:=False .Range("B2").PasteSpecial Paste:=xlValues, Operation:=xlNone, SkipBlanks:=False, Transpose:=False .Columns("A:A").ColumnWidth = 0.5 .Columns("B:B").ColumnWidth = 10 .Columns("C:C").ColumnWidth = 50 .Columns("d:d").ColumnWidth = 0.5 .Rows("1:1").RowHeight = 5 .Rows("17:17").RowHeight = 5 .Columns("E:IV").EntireColumn.Hidden = True .Rows("18:65536").EntireRow.Hidden = True End With With ActiveWindow .DisplayGridlines = False .DisplayHeadings = False .DisplayOutline = False .DisplayZeros = False .DisplayHorizontalScrollBar = False .DisplayVerticalScrollBar = False .DisplayWorkbookTabs = False End With SaveName = "C:\Documents and Settings\123\デスクトップ\" & InPt & "タグ.xls" Application.DisplayAlerts = False ActiveSheet.Range("c3").Locked = True ActiveSheet.Protect password:="1234" ActiveSheet.Protect DrawingObjects:=True, Contents:=True, Scenarios:=True ActiveWorkbook.SaveAs Filename:=SaveName, FileFormat:=xlNormal, password:="", WriteResPassword:="", ReadOnlyRecommended:=False, CreateBackup:=False wkbk.Close False Sheets("タグ").Activate Selection.ClearContents ThisWorkbook.Sheets("タグ").Visible = xlSheetVeryHidden Sheets("台帳").Activate MsgBox "タグ作成しました。" Set wb = Nothing Set wkbk = Nothing End If End With ActiveSheet.Protect DrawingObjects:=True, Contents:=True, Scenarios:=True End Sub
VBAが組まれているブックのThisworkbookモジュールに
Private Sub Workbook_WindowActivate(ByVal Wn As Window) Application.CommandBars("Worksheet Menu Bar").Enabled = False End Sub
Private Sub Workbook_WindowDeactivate(ByVal Wn As Window) Application.CommandBars("Worksheet Menu Bar").Enabled = True End Sub
上記のコードを消すと、新たな問題は解決するのですが、肝心のメニュー バー非表示の機能がなくなってしまいます。 上記のコードを入れる前後で、新規bookに手動でコピペしたところ、 入れる前までは「形式を選択して貼り付け」で「値」と「書式」を選択 出来たのですが、入れた後では「リンク貼り付け」の表示となり、「値」 と「書式」の選択が出来ませんでした。 何とかなりませんでしょうか。(らいち)
[ 一覧(最新更新順) ]
YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki.
Modified by kazu.