- ベストアンサー
エクセル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
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
こんにちは。 一応、Microsoft 側では、Office 2007 のFluent UIのカスタマイズする方法は発表されました。 『2007 Office Fluent リボンをカスタマイズする (開発者向け)(1/3、2/3、3/3)』 http://msdn.microsoft.com/ja-jp/library/aa338202.aspx 当初、COM だけだと聞いていましたが、その後、ツールも発表されましたので、なんとかなると思います。 メニューというよりも、リボンをカスタマイズすることでしょうから、それなりにツールがあると便利かもしれません。Custom UI Editor Toolが出ていますから、それで、マークアップを加筆するか変更すればよいと思います。 Custom UI Editor Tool(英語) http://openxmldeveloper.org/articles/CustomUIeditor.aspx msi をインストールしてください。(単に、zip を開かないで直接編集できる程度のものですから、マニュアルで、メモ帳あたりでも可能です) Office 2007 リボンのカスタマイズ 初心者忘備録 特定の機能を利用禁止にする http://www.ka-net.org/ribbon/ri21.html コントロール名はこのぐらいではないかと思います。 FilePrint FilePrintQuick FilePrintPreview コントロール名は、以下をダウンロードして、内容を確認してください。 2007 Office System Document: Lists of Control IDs http://www.microsoft.com/downloads/details.aspx?familyid=4329d9e9-4d11-46a5-898d-23e4f331e9ae&displaylang=en#filelist
その他の回答 (2)
- imogasi
- ベストアンサー率27% (4737/17069)
2007のメニューバーなど2003以前と大幅に変わったのはご存知でしょう。リボンとタブの仕組み。ファイルが無く第1レベルはオフィスボタンになっている。メニューの階層構造が変わったわけだ。 だったらこの質問のコードは変えないといけないのは常識では。 ーー もうひとつ、2007でも >Application.CommandBars("Worksheet Menu Bar").Controls のCommandBars("X")ーControls(Y)の記述が使えるかどうかだが http://officetanaka.net/excel/excel2007/028.htm http://pc.nikkeibp.co.jp/article/NPC/20060727/244547/ http://www.ka-net.org/office/of02.html
お礼
ありがとうございます。 帰ってからコードを調べて 再度作成し直してみます。
- merlionXX
- ベストアンサー率48% (1930/4007)
2007にはこれまでのようなマニューバーがないからでしょう。 マクロでバージョンを確認して分岐したらどうでしょう? 今、てもとに2007がないので試せませんが。 Private Sub Workbook_Open() With Application If Val(.Version) > 11 Then 'excel2007以上なら .DisplayFullScreen = False '全画面表示 Else 'そうでないなら今までのコマンド .DisplayStatusBar = False 'ステータスバー非表示 On Error Resume Next .CommandBars("Worksheet Menu Bar").Controls("ファイル(&F)") _ .Controls("ページ設定(&U)...").Enabled = False .CommandBars("Worksheet Menu Bar").Controls("ファイル(&F)") _ .Controls("印刷(&P)...").Enabled = False .CommandBars("Worksheet Menu Bar").Controls("ファイル(&F)") _ .Controls("印刷プレビュー(&V)").Enabled = False .CommandBars("Worksheet Menu Bar").Controls("ファイル(&F)") _ .Controls("印刷範囲(&T)").Enabled = False .CommandBars("Standard").Enabled = False End If End With End Sub
お礼
早速ありがとうございます。 帰って早速試してみたいと思います。
お礼
ありがとうございます。 やりたかった内容まで記載していただいて助かります! 教えていただいたものを参考にして 再度作成してみたいと思います。