• ベストアンサー

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

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

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

  • ベストアンサー
  • bonaron
  • ベストアンサー率64% (482/745)
回答No.1

Private Sub UserForm_Initialize()   Me.MultiPage1.Value = 0 End Sub > ページオブジェクト名:Page1 これは間違いありませんか? 上記コードは ページオブジェクト名が MultiPage1 の場合です。

tmgolf
質問者

お礼

ご返答ありがとうございます。 オブジェクトの階層が理解できていませんでした。 UserForm1>MultiPage1 になっているんですね。 UserForm1>Pages(コレクション) だと思っていました。 workbook>worksheetsと同じ様に思っていました。 マルチページの選択に valueを使うとは全く知りませんでした。 勉強になります。ありがとうございます。 おかげさまで、問題点についてクリアすることができました。 ありがとうございます。

その他の回答 (1)

  • imogasi
  • ベストアンサー率27% (4737/17068)
回答No.2

#1でご回答は済んでいますが エクセルVBAで 、 UserFormを1つ挿入 そのUserForm上に1つのテキストボックスとマルチページを1つ張り付け。 右クリックして、「新しいページ」をクリックして、ページを3つにした。 Private Sub UserForm_Initialize() s = Array("Page1", "Page2", "Page3") MsgBox "フォームのInitialize実行" With MultiPage1 .Value = 0 End With TextBox1.Text = s(MultiPage1.Value) & "が選択状態" End Sub として実行すると,テキストボックスに「Page1が選択状態」、 .Value = 1 として実行すると「Page2が選択状態」 になることを確認しました。

tmgolf
質問者

お礼

お返事ありがとうございます。 おかげさまで無事解決しました。

関連するQ&A

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

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

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

    エクセル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 原因がわからず困ってます。 よろしくお願い致します。

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

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

  • エクセルVBA ユーザーフォームをオブジェクトとしてセットする書き方?

    いつもご回答頂きありがとうございます。 エクセルVBAでユーザーフォームをオブジェクト変数として セットする書き方を教えていただけないでしょうか? エクセルVBAでAファイルとBファイルがあり AファイルのVBAからBファイルを開いて、データを取得し Aファイルに記入していく。と言うVBAを作成しました。 ただ、BファイルにはopenイベントでBファイルに作成された ユーザーフォームがloadされるようになっていて、 AファイルからBファイルを開けたとき、そのユーザーフォームを 消したいのですが、消す方法が分かりません。 AファイルからBファイルをopenメソッドを用いたあと、ユーザー フォームを消せばいいと思うのですが、書き方が分からず困って おります。 オブジェクトとしてセットして、そのオブジェクトをunloadすれば いいかな?とか思っているのですが、セットの仕方もわからず、、、 宜しくお願いいたします。 それぞれのファイル名を「ファイルA」、「ファイルB」、 ユーザーフォーム名を「UserFormB」としたとき、どのように 書けばよろしいでしょうか?

  • エクセルのユーザーフォームのスクロールについて

    現在、エクセルのユーザーフォームを作成中ですが、 ユーザーフォームに下記のようにコードを書き込み スクロールをさせていますが、 Private Sub UserForm_Initialize()    Me.Height = ActiveWindow.Height  Me.ScrollBars = fmScrollBarsBoth  Me.ScrollHeight = 655 End Sub  このユーザーフォームにマルチページを使用しているせいか、 ユーザーフォームを呼び出す際に、マルチページのトップ位置から スクロールのカーソルの位置が指定されてしまい、 ユーザーフォームのマルチページより上部がスクロールしないと 絶えず見えないようになってしまっている状況です。  ユーザーフォームを呼び出す際に、このユーザーフォームの 上部(一番上)からスクロールのカーソルが設定できるようにするには どのようにすればよいか教えて頂きますでしょうか? よろしくお願いいたします。

  • エクセルVBAのマルチページについて

    こんばんわ! エクセルVBAのマルチページでpage1、page2、page3とあり、page2に変えたら実行させたいと思うのですが、可能でしょうか?(page1やpage3にしても実行せず、page2にすると実行したい。) 可能なようでしたら参考ページもしくはサンプルソースをお願いいたします。 アドバイスの程よろしくお願いいたします。

  • エクセルVBAのマルチページについて

    こんばんわ! エクセルVBAのマルチページでpage1、page2、page3とあり、ページを変えたら実行させたいと思うのですが、可能でしょうか? 可能なようでしたら参考ページもしくはサンプルソースをお願いいたします。 アドバイスの程よろしくお願いいたします。

  • エクセルのユーザーフォームについて

    エクセルのユーザーフォームについて教えてください。 ユーザーフォームにてメニュー画面を作成しました。 ユーザーはメニューからの操作だけでエクセルシートを作成できるようなマクロをつくりました。 ユーザーフォームのコマンドボタンでEXCELを終了させることはできますか? VBAの記述方法も教えてください。

  • エクセルのユーザーフォームについて教えてください。

    エクセルのユーザーフォームでマルチページを作りました。Captionに好きな文字を設定すればタブの表記が変わると思うのですが、テキストボックスの値と連動させて、変更するって出来るのでしょうか? 単純に代入が出来ないようなのですが???Page1.Caption = "いちご" としたら、怒られました。 試行錯誤したのですが?出来ません。 どなたか?詳しい方教えて頂けませんでしょうか? よろしくお願いいたします。

  • エクセルVBAでマルチページの切り替え方法の件で

    エクセルVBAを使用して フォームを作成しているのですが マルチページを利用してpage1上にコマンドボタンを 配置しそのボタンをクリックすることでpage2に切り替わる 仕組みを作りたいと思っているのですが なかなかうまくいきません Private Sub CommandButton102_Click() userform1.page2.Show End Sub ↑のように考えてはみたのですが エクセルに間違ってるといわれてしまいました ご存知の方がいらっしゃいましたらよろしくお願いします

専門家に質問してみよう