• ベストアンサー

EXCEL2000 VBA ツールバー および セルの入力制限について

ツールバーの印刷、マクロ、保存、書式の変更をツールバーを消さずに 封じるには、どうしたらよいですか? また、数値・通貨の書式のセルに、数値や通貨以外が入力されているときに VBAがこけてしまうので、制御をかけたいのですが、どのようにすれば よいですか? ご存知の方、教えてください。

質問者が選んだベストアンサー

  • ベストアンサー
  • tamazo-
  • ベストアンサー率60% (35/58)
回答No.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 文を 使います。 制御をどうしたいかによりますので、あとはヘルプを参照してください。

Neigh
質問者

補足

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) '工賃(原価) というような計算式において、数値が入力されていないと 計算ができず、こけてしまいます。

関連するQ&A