電子書籍の厳選無料作品が豊富!

以前VBAで検索フォームの質問をさせていただきました。
いただいた回答をもとに試行錯誤した結果、
期待以上のものができあがりとても役立っています。
ありがとうございました。

しかしこのVBA、機能上は申し分ないのですが、
実行した際にMicrosoft Visual Basicのエディターが勝手に起動してしまいます。
自分で使う分には構いませんが、
友人などに渡すときになんとなく格好悪いなーという感じです。

そこで、このエディタが実行時に表に出てこないようにエクセル上で設定したいのですが、
そういったことは可能でしょうか。バージョンはExcel2007、OSはVistaです。

よろしくお願いします。

A 回答 (2件)

状況が良く分からないのですが、なぜ、VBEditor が立ち上がるのでしょうか?


エラーが発生しているのではありませんか?

通常は、きちん書かれたコードなら、VBEditor は立ち上がりません。
エラートラップ(On Error ~)で立ち上がるとしたら、設定が間違っている可能性があります。

VBEditor のツール--オプション--全般--エラートラップ
[エラー発生時に中断] というモードにする

で、エラートラップに関わらず、VBEditor が立ち上がります。
この設定は、エラートラップでエラーの発生場所が分からない時に使う試験モードの設定です。

ですから、実際に使用する時は、[エラー処理対象外のエラーで中断]などを選択しておきます。

また、参考までですが、以下のようにエラートラップは、避けられるものを、安易にトラップしないほうがよいです。ここのカテゴリでは、それが気に入らないという人が多いようですが、システムを組む時などに、一見エラーのないようにみえても、思わぬ反応を示すことがあります。

'//
Private Sub CommandButton1_Click()
  Dim sFndTxt As String
  Dim r As Range
  sFndTxt = TextBox1.Value
  If sFndTxt = "" Then Exit Sub
 '検索場所が決まっているなら、Cells ではなく、Columns(1)等とします。
  Set r = Cells.Find(What:=sFndTxt, LookIn:=xlValues, LookAt:=xlPart, _
  SearchOrder:=xlByColumns)
  If Not r Is Nothing Then
   TextBox2.Value = r.Offset(0, 1).Value
  Else
   TextBox2.Value = ""
   MsgBox sFndTxt & " は見つかりません", vbExclamation
  End If
  Exit Sub
End Sub
    • good
    • 0
この回答へのお礼

ありがとうございます。
どうやら仰る通り、表面上は動いていましたがコードエラーがあったようです。修正はまだ出来ていませんが、試行錯誤しながら完成させたいと思います。

お礼日時:2011/01/11 13:48

VBエディター画面で、上部のメニューから「ツール」、「VBAProjectのプロパティ」で出てきた画面で、「保護」タブから「表示用にロックする」を選択してパスワードを設定したらどうでしょうか。

「エクセルVBAエディタの起動に関して質問」の回答画像1
    • good
    • 0
この回答へのお礼

早い回答ありがとうございました。
まずはエラー修正が必要ですが、友人に渡すときなどはパスワードロックのことも考えたいです。

お礼日時:2011/01/11 13:50

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