• 締切済み

エクセルで作ったVBEを動かすには

質問させていただきます。 会社で図面管理をしたいという事になったので エクセルのVBEを使ってフォーム等それっぽいものを作ってみました。 登録や検索の状態をテストしていざ使えるとなった時、 使う人にどうやって使わせよう・・・? となりまして(汗 テストはコードを開いた状態でF5を押して起動させてやっていましたが 使う人に渡す時、それ以外に普通に使うにはどうしたらいいのでしょうか? 何かボタン等をわかりやすく配置して それを押すと作ったVBEが起動してフォームが表示される なんていう事にはならないものでしょうか? どなたか詳しい方おられましたら是非教えて下さいませ。 お願いします。

みんなの回答

  • stingy
  • ベストアンサー率37% (144/379)
回答No.3

ファイルを開いてすぐ実行でしたら ThisWorkBookの中に ______________________________________________ Private Sub Workbook_Open() UserForm.Show End Sub ______________________________________________ とかですが、 新規ファイルを作成し、UserFormに何もおかない状態で テストしてみてください。 ×ボタンで消して異常がなければ図面管理のフォームがおかしい。 新規ファイルでも無限ループになるならExcelのバージョンの違いでしょうか? どなたか専門家さ~ん。レスないでしょうかぁ?

busukakiku
質問者

お礼

stingyさん何度も回答&お付き合い頂き大変ありがとうございます。 やはりうまくいかない模様です。 たぶん私が上手にできていないことが原因と思われますが もう少し進めてみて、色々な本を漁ってみまする。 それでもだめなら再度質問してみようかと^^; ありがとうございました!

  • stingy
  • ベストアンサー率37% (144/379)
回答No.2

マクロ名に"UserForm.Show"と指示しました? 関係あるかはわかりませんが、標準モジュールにマクロを作って 登録したほうが安全だと思いますよ。    Sub Test()    UserForm.Show    End Sub  登録するマクロ名は"Test" 後はショートカットの作成という手もありますが、 フォームが無限に立ちあがることに関してはなんとも言えません。

busukakiku
質問者

お礼

回答ありがとうございます。 標準モジュール(Module1)に _______________________ Sub test() UserForm.Show End Sub _______________________ としました。 シート2にボタンを作って、それを押した時に発生するイベントとすると フォームが立ちあがるんですが、キャンセルや×ボタンで消しても すぐ再度フォームが立ちあがって無限ループ状態?になるのです;; うまく設定できていないからなのでしょうか・・・。 エクセルを開いたらすぐフォームが表示される等でも結構です。 方法おわかりの方おられましたら是非教えて下さぃ。

  • stingy
  • ベストアンサー率37% (144/379)
回答No.1

Excel2000を使ってます。 ツールバーのフォームを表示し、ボタンを配置すると マクロの登録ができます。 ボタンじゃ味気ない場合、オートシェイプに テキスト追加し、好きな色を付けて コンテキストメニューでマクロの登録をクリック マクロ名を指定してOK。 こんな風にしてます。参考になれば。

busukakiku
質問者

お礼

回答ありがとうございます。 最初のシートにボタンを作って UserForm.Showってしたら フォームが立ちあがってそれはそれでいいのですが、 閉じても無限にフォームが立ちあがっておかしな事になりまして^^; 他にも何か良い方法があればぜひ教えて下さいませませ^^;

関連するQ&A

  • VBE画面を閉じるコード

    alt+F11で、VBE画面を開いていますが、 Private Sub Worksheet_SelectionChange(ByVal Target As Range) End Sub で、どこかのセルをクリックしたら、VBE画面を閉じたいのですが、コードを教えてください。 エクセルのアプリケーションのみ表示させたいです。 添付画像は、 エクセル(上) VBE(下) が開いてますが、VBEをVBAコードを実行して閉じたいです。

  • エラーではないのにVBE画面が開いて中断される

    エラーメッセージが表示されないのに VBE画面に飛ぶことがあります。 他の人が作ったアクセスで、コマンドボタンを押すと、VBE画面が開き、途中でコードが止まります。 まるでその部分にブレークポイントがついてるかのようにVBAが中断されます。 しかし確認してもブレークポイントはついてないし、エラーも発生していません。 そのまま、F5キーでVBAの実行をすると問題なく動きます。 そして再度同じコマンドボタンを押してもエラーは発生しません。 mdbファイルを開いて1回目にコマンドボタンを押した時だけ発生します。 どういうことなのでしょうか?ヴァージョンは2003です。 よろしくお願い致します。

  • Excelの「OptionButton」について

    Excelで新しいシートを開き、VBE画面でユーザーフォームを挿入し、そのフォームにOptionButton1とOptionButton2を配置しました。OptionButton1,2のControlSourceをそれぞれA1、A2にしOptionButton1のValueをTrueにします。 この状態でフォームを表示し最初にOptionButton2をクリックすると両方のオプションボタンがOffになってしまいます。フォームを表示したまま2回目からのクリックではOn、Offがうまく切り替わります。ControlSourceをセットしなければ1回目のクリックでもうまく切り替わるみたいです。作り方がおかしいのでしょうか?

  • VBEが起動した時のイベント

    VBEが起動した時にある処理をしようかと考えています。VBEでF2を押して、VBIDEでクラスをザーッと見ても、該当するイベントが見つけられませんでした。どのようにすれば実現できますが?具体的にやりたいことは、VBEでは、マウスのスクロールが使えないので、フリーソフトで強制的にスクロールさせるソフトを起動させ、VBEにフォーカスが無くなったら普通のスクロール機能とする。VBEにフォーカスが移ればまた、強制スクロールソフトを起動させるってな感じにしたいと思っています。宜しくお願い致します。

  • ユーザーフォームでエクセル2007が強制終了する

    次の事を行うと再現します。 VBEを開き、ユーザーフォームのコードを表示させます(ユーザーフォームのどこかをダブルクリックすれば表示されます) その状態で、ツールバーの△からユーザーフォームを実行し、フォームを閉じずにVBEのコードの画面に映ります。 全角(IMEをONの状態)で何か書き込もうとします。 ツールバーの□をクリックし、ユーザーフォームを終了させようとします。 エクセル(2007)が強制終了します。 逆に全角で打つところを半角でうつと ポンッ、ポンッ、という音がちゃんとなります。 (ユーザーフォームを実行中だからコードになにもかけないよっというエラー音です) この強制終了は、いったいなぜ起こるのでしょうか? OS:XP sp3 メモリ:2G CPU:core2duo E8400 グラボ:GeForce GT 220 エクセル:2007 (12.0.6557.5000)SP2 MSO (12.06554.5001)

  • フォーム2つを並列処理

    フォーム1に配置されたボタンをクリックすると、フォーム2とフォーム3が起動します。 フォーム2、フォーム3共に配置されたテキストボックスを同時に制御したいのですが、 どうしたらいいのかわかりません。 フォーム2のコード途中にテキストボックスに「テスト」と記入するコードがあります。 ----------------------------------------- TextBox1.Text = "テスト" Form2.TextBox1.Text = "テスト" ----------------------------------------- これで実行してみたのですが、Form2には繁栄されるのですが、Form3には繁栄されません。。。

  • EXCEL VBE ユーザフォームのスピンボタンの増減値

    excel2000でVBEにてユーザフォームを作りました。そのフォームの中にスピンボタンがあります。スピンボタンのプロパティsmallchangeにて増減値を変えることができるのは知っているのですが、整数しか選択できないようです。作成した当初はデフォルトの1ずつの増減で問題なかったのですが、0.1ずつ増減させる必要が出てきました。どのようにすればよいのでしょうか。excel97なら以下のサイトに方法がかかれていますが、当方excel2000な上に、記述された内容が理解できません。 http://support.microsoft.com/kb/151498/ja よろしくお願いいたします。

  • 【エクセル2003】マクロ終了後、フォームを閉じたくない。

    ユーザーフォームを挿入し、 Private Sub CommandButton1_Click() ActiveSheet.Delete Sheets.Add End Sub というコードを書き、 図のように配置しています。 やりたいことは、シート上にもコントロールがある状態で、 フォームを実行し、コードを終了させても、フォームは表示させたままにしたいのです。 しかし、図の状態で上記のコードを実行すると、フォームも閉じてしまいます。 コマンドボタンがシート上になければ コードが終わってもフォームは閉じません。 どうすればコマンドボタンも配置しつつ、シートごと削除させ、 フォームを表示したままにすることが可能なのでしょうか? よろしくお願いします。

  • VB.NETからエクセルを起動して、エクセルでVBを閉じたい。

    こんにちは。 先日、エクセルのフォームを最前面に配置したいという 質問をさせて頂いたものでございます。 それで、SetWindowPosのAPIで設定する方法を教えて頂いたのですが、 最前面にする事は出来たのですが、フォームを動かすと ブックはその一つ下に現れてしまい、 ブックを最背面に配置するなどを試みてみたのですが、 どうもうまく行かないので、 エクセルから直に立ち上げることが出来ないようにして VB.NETのフォームを作ってエクセルにデータを送ろうかと思いました。 それで、データを送る方法は何とかなりそうなのですが、 VB.NETのフォームからエクセルを起動して、 次にエクセルからそのフォームを出したり、隠したりしたいのですが、 その場合、VB.NETのフォームのなんと言うハンドルを取得すればよいでしょうか? IDにも色々あるようで、どれを使えばよいのか分からなくなってしまいました。 そのIDはVBのフォームを起動した時に、エクセルと共有するiniファイルなどに、書き込んでおこうかと思っています。 よろしくお願いいたします。m(__)m

  • VBEが閉じてしまいます。

    Sub Sample() Dim mdlName As String mdlName = "test" Debug.Print AllProcName(mdlName) End Sub Function AllProcName(ByVal strModuleName As String) As String Dim mdl As Module Dim lngDecCnt As Long '宣言セクションの行数 Dim strName As String 'プロシージャ名比較用 Dim strProcName As String '全プロシージャ名 Dim lngR As Long 'プロシージャの種類 Dim i As Long DoCmd.OpenModule strModuleName Application.VBE.MainWindow.Visible = False Set mdl = Modules(strModuleName) '宣言セクションの行数格納 lngDecCnt = mdl.CountOfDeclarationLines '最初のプロシージャ名格納 strName = mdl.ProcOfLine(lngDecCnt + 1, lngR) strProcName = strName & vbNewLine '宣言セクションの次行から最終行までループ For i = lngDecCnt + 1 To mdl.CountOfLines '新規プロシージャ名取得 If strName <> mdl.ProcOfLine(i, lngR) Then strName = mdl.ProcOfLine(i, lngR) 'プロシージャ名追加 strProcName = strProcName & strName & vbCrLf End If Next i Set mdl = Nothing AllProcName = strProcName End Function と言うコードをVBE画面でF5で実行すると、VBEが閉じてしまいます。 しかしF8でゆっくりやっていくとVBE画面は閉じません。 なぜ一気にやると閉じてしまうのでしょうか? Application.VBE.MainWindow.Visible = False をコメントアウトすると VBE画面は閉じませんが該当のモジュールが実行後にアクティブになります。 環境はwin8.1、アクセス2010です。

専門家に質問してみよう