プロが教えるわが家の防犯対策術!

ツールバーの印刷、マクロ、保存、書式の変更をツールバーを消さずに
封じるには、どうしたらよいですか?

また、数値・通貨の書式のセルに、数値や通貨以外が入力されているときに
VBAがこけてしまうので、制御をかけたいのですが、どのようにすれば
よいですか?

ご存知の方、教えてください。

A 回答 (1件)

ツールバーですか?「書式」も質問に入っているので


メニューバーの話と理解しました。
メニューバーから、ファイル(F)の保存・上書き保存・印刷、書式、ツール(T)のマクロを選べなくする1つの方法です。

Sub auto_open()
'
Dim tmpCBar As CommandBar
Dim tmpCMenu As CommandBarControl

Set tmpCBar = Application.CommandBars("Worksheet Menu Bar")
Set tmpCMenu = tmpCBar.Controls("ファイル(&F)")
With tmpCMenu
.Controls("上書き保存(&S)").Enabled = False
.Controls("名前を付けて保存(&A)...").Enabled = False
.Controls("印刷(&P)...").Enabled = False
End With
tmpCBar.Controls("書式(&O)").Enabled = False
Set tmpCMenu = tmpCBar.Controls("ツール(&T)")
With tmpCMenu
.Controls("マクロ(&M)").Enabled = False
End With
'
End Sub

Sub auto_close()
'
Application.CommandBars("Worksheet Menu Bar").Reset
'
End Sub

あと、VBAがこけるのを制御するときは、on error 文を
使います。
制御をどうしたいかによりますので、あとはヘルプを参照してください。

この回答への補足

VBAがこけ場合、exit sub をしたいのです。

どこでこけるかというと
acount(0) = Format(Cells(i + 1, 6).Value) * Format(Cells(i + 1, 7).Value)
acount(1) = acount(0) + acount(1) '原価*数量=部品原価
acount(2) = Format(Cells(i, 6).Value) * Format(Cells(i, 7).Value)
acount(3) = acount(2) + acount(3) '売上単価*数量=部品代
acount(4) = Format(Cells(i, 9).Value)
acount(5) = acount(4) + acount(5) '工賃(売上)
acount(6) = Format(Cells(i + 1, 9).Value)
acount(7) = acount(6) + acount(7) '工賃(原価)

というような計算式において、数値が入力されていないと
計算ができず、こけてしまいます。

補足日時:2002/02/23 21:47
    • good
    • 0

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