[[20100107090805]] 『メニューバーの非表示について』(らいち) ページの最後に飛ぶ

[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]

 

『メニューバーの非表示について』(らいち)

 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.