• 締切済み

ExcelVBAでマルチページ→VBA画面切替

お世話になっています。 ExcelVBAでマルチページを利用して、ユーザーフォームを作成中です。 ユーザーフォームはExcelの作業画面が非表示でマルチページのみ表示されるようにしています。 作成後は管理を別の担当者に任せるのですが、それとともに一般ユーザーにも配布して利用してもらう予定です。 管理者によりコードのメンテナンスは行われますが、一般ユーザーにはコードを閲覧及び編集できなくしたいです。 今は「×ボタン無効」「終了ボタンくっりっくの場合のみ終了」「コードは[Ctrl]+[Pause]のショートカットキー押下で見られる」という状況です。 パスワードを設定し、限られた人のみが閲覧及び編集できるようにしたいのですがどうしたらいいでしょうか? また、ショートカットキーでVBA画面を表示させるとエラーになるのですが(マクロを停止させてるからでしょうか?)、これを回避する方法はありますか? お手数ですがご教授いただけますと幸いです。 よろしくお願い致します。

みんなの回答

  • x-1919
  • ベストアンサー率52% (91/173)
回答No.1

VB Editor メニュー [ツール]-[VBA Project のプロパティ] を選択してプロパティを表示させる。 [保護] のタブを選択し、[プロジェクトを表示用にロックする] にチェックを入れ、パスワードを入力。 こうすると VB Editor までは表示されるが、プロジェクトの中身を開こうとするとパスワードを求められるようになる。 ショートカットキーで VB Editor を表示させるとエラーになる件は、どういう状況なのか不明なので回答は割愛させていただきます。

minminwamidori
質問者

お礼

ありがとうございました。参考にさせていただきます。

関連するQ&A

  • VBAでマルチページの表示

    エクセル2002使用です。 ユーザーフォーム(オブジェクト名:UserForm1)に、マルチページ(オブジェクト名:page1)を配置してフォームを作成しました。 Sheet1にコマンドボタンを貼り付け、コマンドボタンをクリックして、標準モジュールを呼び出し、マルチページを標準モジュールから呼び出せるようにしたいのですがうまくいきません。 ’Sheet1 Private Sub CommandButton1_Click() Call フォーム表示 End Sub ’標準モジュール Sub フォーム表示() UserForm1.Show ’?ここのコードをいろいろ試したのですがわかりません。 End Sub この他 UserForm1.ShowPages "page1" とか 変数を入れてみたりしたのですが、うまくいきません。 すいませんが、よろしくお願いします。

  • Excel VBA のマルチページ

    使用環境:Excel2007 VBAのユーザーフォームにMultiPageを配置し各ページにScrollbarを 設定(Vertical)したいと思っています。 各ページに配置まではできましたが、実行しても動かず困っています。 写真やコマンドボタンを多く配置するので、マルチページで対応できたら と考えています。 ヒントとなるコードまたはURLが解れば教えて頂きたいです。 よろしくお願いします。

  • エクセル2003 ユーザーフォーム、マルチページのページ選択の記述

    いつもこちらで勉強させていただいております。 エクセルVBAでユーザーフォームを作成しました。 フォームにはマルチページが有り、ページ数は3枚あります。 で、質問なのですが、フォームを読み込んだときに ページを必ず1ページを表示するようにしたいのですが コードの書き方が判りません。 フォーム作成でページ1を選択しておけば、1ページ目が 表に来るのですが、コードで処理しておけないかなと 思いましてご質問させていただきました。 フォームオブジェクト名:UesrForm1 ページオブジェクト名:Page1 となっております

  • ExcelVBAマルチページのタブオーダーについて

    ExcelVBAでマルチページを使用したユーザーフォームを作りました。 ユーザーフォームを表示させたときにTabキーをクリックすると以下の動作をします。 マルチページのページは8ページです。 <現在の動作> (1)1ページ目の画面内を、タブオーダーで設定した順に動く  ↓ (2)1ページ目のタブで止まる  ↓ (3)Tabキー押下でも進まない マルチページに With Page1 Label1.SetFocus End With とか、勘で入れてみたのですが動きませんでした。 実現させたい動作は以下の通りです。 <こんな感じにしたいです> (1)1ページ目の画面内を、タブオーダーで設定した順に動く  ↓ (2)1ページ目のタブで止まる  ↓ (3)1ページ目の画面内を、タブオーダーで設定した順に動く((1)に戻る) こういうことは実現可能でしょうか? 今は、タブにタブオーダーが進と、そこから先はどこへも勧めない状況です。 どなたかご教授頂けますと幸いです。 よろしくお願い致します。

  • マルチページの初期表示ページを変える(Excel 2007 VBA)

    いつもお世話になります。 マルチページを持っているユーザーフォームを表示したときに、最初に表示するページを状況に応じて切り替えるにはどうしたらいいでしょうか。 たとえば、  月 火 水 木 金 土 日 という7つのページをもったマルチページがあって、フォームを起動したときの曜日のページが一番手前に表示されるようにしたいです。 よろしくお願いします!

  • マルチページで現在開いているページの確認

    Excelユーザーフォームにマルチページを貼り付けて ページを5枚作成しました。 (Pag1,PAge2,Page3,Page4,Page5) ページにはそれぞれボタンが貼り付けてあります。 ボタンを押すとfunctionが起動します。 ここでfunctuinのなかで今Pageの1,2,3,4,5のどれを選択しているか確認したいのですが どのようなロジックになりますか?

  • ExcelVBA パスワードについて

    ユーザーフォームにてメニュー画面を作成しました。 その隅に管理用というコマンドボタンを作成し、クリックすると 管理用フォームが開くという形にしたいのですが 管理用ボタンをクリックしたときにパスワードを入れないと 表示が出来ないようにしたいのですが どうしたらよろしいでしょうか? よろしくお願いします。

  • マルチページのタブを切り替えたとき・・

    エクセル2002使用です。 VBAで、ユーザーフォーム1、ユーザーフォーム2の2つのフォームを作り、ユーザーフォーム1内にマルチページ(page1、page2)をつくりました。マルチページのpage1からpage2にタブを切り替えた時に、ユーザーフォーム2を表示させたいのですが、うまくいきません。 UserForm1のモジュールに記述しています。 Private Sub MultiPage2_Change() Load UserForm2 With UserForm2 .StartUpPosition = 0 .Top = 50 .Left = 20 .Show End With End Sub 原因がわからず困ってます。 よろしくお願い致します。

  • エクセルVBA/マルチページ/ページ切り替え時

    エクセル2000使用 ユーザーフォーム(UserForm1):マルチページ(MultiPage1)でページを5つ 作成。各ページにはテキストボックスとコマンドボタンを配置。 テキストボックスに値入力後、コマンドボタンをクリックするとテキストボック スの値をクリアするように設定。 テキストボックスに値入力後、コマンド実行前にページを替えた時、テキストボ ックスの値をクリアしたいのですが、どのようにすればよろしいのでしょうか。 類似する過去の質問を見てもよくわからなかったので、ぜひご回答のほどよろし くお願い申上げます。

  • Excel VBAでユーザーフォームだけ表示したい

    Excel VBAでユーザーフォームを作成し、ファイルを起動時にSheetを非表示にしてユーザーフォームのみ表示させるようにしました。 そうしたところ、 (1)実行ボタンをクリックすると作成されるExcelファイルも表示されなくなる (2)終了ボタンをクリックするとユーザーフォームを含むExcelファイルだけが閉じるのではなく、Excelのアプリ自体が終了してしまう(実行ボタンで作成したExcelファイルは表示したままにしたいのに閉じてしまう) という現象になってしまいました。 某書籍を参考にしてコードを書いたのですが、なぜかこのようになってしまいました。 ※「★」が書籍に指示があった箇所です。 <ThisWorkbook> Private Sub Workbook_Open() Application.Visible = False '★ myForm.Show '★ myForm.MultiPage1.Value = 0 'マルチページ構成のため End Sub Private Sub UserForm_QueryClose(Cancel As Integer, CloseMode As Integer) '========== [×]ボタン,[Alt]+[F4]キーを無効にする ========== Dim msg As String, title As String msg = "[画面を閉じて終了する]ボタンから終了してください。" title = "終了方法" Dim res As Integer Select Case CloseMode Case vbFormControlMenu res = MsgBox(msg, vbOKOnly + vbCritical, title) Cancel = True End Select ActiveWorkbook.Save '★ Application.Visible = True '★ Application.Quit '★ End Sub 実行したいのは、 (1)ユーザーフォームを含むExcelファイルを起動したときは、起動時にユーザーフォームだけが表示されるようにしたい  ※ワークシートを非表示としたい (2)「実行」ボタンをクリックすると、プログラムが実行されExcelファイルが新規で作成され表示される  ※上記で記載した「★」の部分をコードをコメントアウトしてユーザーフォームから実行ボタンをクリックすると、プログラムが実行され正常にExcelファイルが新規で作成されることは確認済みです。 (3)ユーザーフォームが閉じても、ユーザーフォームのExcelファイルのみ閉じ、新規で作成されたExcelファイルは閉じない。  ※実行ボタンをクリックして新規ファイルを作成しなかったり、他にExcelファイルがなかった場合は、Excelは終了する。 それとあわせて、 (1)を実行できた場合に、再度コードを編集する時はどうしたらExcelの画面が表示できるのか教えて下さい。  ※それとも表示できないのでしょうか? 作成締め切りが迫っていて焦っています。 お知恵のある方どうかお力添え下さい。 よろしくお願い致します。

専門家に質問してみよう