プロが教えるわが家の防犯対策術!

http://detail.chiebukuro.yahoo.co.jp/qa/question …

このページと全く同じ質問です。

マルチページのページ指定で

Valueではなく、Captionで指定したいのですが
Forループで検索をかけるしかないでしょうか?

一発で指定できる方法があれば教えてください。

質問者からの補足コメント

  • うまくいきました。

    ありがとうございます。

    No.1の回答に寄せられた補足コメントです。 補足日時:2016/02/19 14:33

A 回答 (1件)

ページの指定は Value によりますが


ページの Caption ではなく Name を使えば
ループしなくても ページのインデックスを取得できます。

MultiPage1.Value = MultiPage1.Pages("1ページ目のPage名").Index

とか。

プロパティで Caption と Name を同じに変更しておけば
直観的には Caption で指定したような感じになるでしょう。
ただし、オブジェクト名に使えない文字が含まれる場合は
この手は使えませんが。
その場合でも、デフォルトのページ名から
内容の分かりやすい名前に変更しておくことをおすすめします。


プロパティの設定方法が
ユーザーフォーム と シート で異なっていますが
マルチページ は、そのどちらにありますか?
この回答への補足あり
    • good
    • 0

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

このQ&Aを見た人はこんなQ&Aも見ています

このQ&Aを見た人が検索しているワード

このQ&Aと関連する良く見られている質問

QVBA:ユーザーフォームのマルチページに色を付けたい。

ユーザーフォームのマルチページに色を付けたいのですが思うようにいきません。
プロパティでbackcolorの設定をするとタブの右側が変わるだけです。
良い方法はないでしょうか。

Aベストアンサー

まず、各ページに大きいFrameを配置

Frameの
BackColorを指定
BorderStyle=0
Caption=""

ページ毎のコントロールはFrameの中に配置します。
これで何とかなる?

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

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

Aベストアンサー

Valueプロパティを使ってください。
月曜日のインデックスが 0 であれば、

Me.MultiPage1.Value = Weekday(Date, vbMonday) - 1

というコードを記述すればいいです。

QExcel VBAでのMultipageの選択

フォーム上に配置したマルチページ(ページタブは3つ有ります)のうち、任意のページをアクティブもしくは選択する方法が分かりません。
例えば、1つ目のページをアクティブにするには、どの様なコードを書けば良いのでしょうか?いろいろ本などで調べましたが、見つかりませんでした。
エクセルのバージョンは97です。よろしくお願いします。

Aベストアンサー

どもども田吾作7です。

MultiPage1.Value=ページのインデックス値

これでページは切り替わります。

でわでわ

QUserForm.showでマルチページ1を見出し

UserForm.showでフォームがでたときマルチページ1~4のうちページ1を見出しに表示したいのですが
どなたか解る方よろしくお願いします。

Aベストアンサー

デザイン画面で表示しているページが実行時に表示されるので
ページ1を選択しておきましょう。


私もこの作業を結構忘れる事があるので下記のコードを必ず入れています。

UserFormの初期化イベント

Private Sub UserForm_Initialize()
  Me.MultiPage1.Value = 0
End Sub

page1は0、page2なら1といった具合です。

それでは。

Qエクセル VBA ユーザーフォームを閉じる

ユーザーフォームを開く時は
UserForm1.Showですが
閉じる時は?
UserForm1.Close
だとコンパイルエラーになります。
End
にするしかないですか?

Aベストアンサー

Unload Me とか Unload UserForm1 でユーザーフォームを閉じることができます。

Qユーザーフォームを表示中にシートの操作をさせるには

ユーザーフォームを表示中にシートの操作をさせる事はできるのでしょうか。
セルへの入力、画面のスクロールなどは、ユーザーフォームからマクロを実行させたり、.hideでユーザーフォームを一時的に隠すなどすればいいのでしょうが、そういう手段をとらないでユーザーフォームを表示中にシートの操作をさせる事はできるのでしょうか。

Aベストアンサー

ユーザフォームの
ShowModalプロパティを
falseにすればよいかと。

Qエクセルのラベルの値(文字列)を垂直方向で中央揃えにするには?

エクセルのVBAでユーザーフォームの中に
テキストボックスとラベルがあります。

ラベルの縦幅とテキストボックスの縦幅は
同じです。(文字1行分くらい)

そのテキストボックスの左隣にラベルを置いて、
項目名的なものを表示させたいと思うのですが
ラベルの値が上に寄っているので、垂直方向に
中央揃えさせたいのですが、設定の仕方が
分からず困っています。

ちなみにエクセルはXPで、VBAは詳しくありません。
詳しくないけど調べながらちょっとずついろいろ
作業しています。

どうぞよろしくお願いします。

Aベストアンサー

文字の上下中央設定は、確かにできませんね。
代案ですが、次のような操作はいかがでしょうか。

1.双方を選択した状態でプロパティを表示し、AutuSize の値を True にする。
2.前回のようにコントロールの位置を上下中央で揃える。
3.各コントロールの長さ(幅)や文字サイズを調整する。

QEXCEL VBAで計算値を四捨五入、切り上げ、切捨てする方法

ネットで探してみたのですが、計算結果を四捨五入して特定のセルを
返すにはどうしたらいいのでしょうか?

Sub hokangosa()

Dim ZPS As Double
Dim ZPOS As Double
Dim DMN As Double
MsgBox (" >>> 補間誤差自動計算 <<< ")
MsgBox (" >>> 初期値入力します <<< ")
ZPS = InputBox(">>> ステップを入力してください<<<")
ZPOS = Sheet1.Cells(22, 4).Value
DMN = ZPOS / ZPS
Sheet1.Cells(23, 6).Value = DMN
End Sub

ここでDMNの値を四捨五入したいです。

またこれとは別に切上げ、切捨ても教えていただけるとありがたいです。

Aベストアンサー

DMN = Application.WorksheetFunction.Round(ZPOS / ZPS, 0)
で、四捨五入
DMN = Application.RoundDown(ZPOS / ZPS, 0)
で切り捨て
DMN = Application.RoundUp(ZPOS / ZPS, 0)
で切り上げです。

引数で、対象桁を変更できます。

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

エクセル2000使用
ユーザーフォーム(UserForm1):マルチページ(MultiPage1)でページを5つ
作成。各ページにはテキストボックスとコマンドボタンを配置。
テキストボックスに値入力後、コマンドボタンをクリックするとテキストボック
スの値をクリアするように設定。

テキストボックスに値入力後、コマンド実行前にページを替えた時、テキストボ
ックスの値をクリアしたいのですが、どのようにすればよろしいのでしょうか。

類似する過去の質問を見てもよくわからなかったので、ぜひご回答のほどよろし
くお願い申上げます。

Aベストアンサー

>クリックすると
イベントプロシージュアー利用ですよね。
Private Sub MultiPage1_Change()
MultiPage1.page1.TextBox1 = ""
End Sub
MultiPageのChangeイベントを使いました。
MultiPage1のTextBox1のVALUEに文字を入れておき、実行し、ページをPage2をクリックして、Page1に戻ると、テキストボックスの中身は無くなってました。
これではありふれてますが、質問の真意をカバーしてますでしょうか。

QエクセルVBAでテキストボックスの値の取得と変更について

エクセルのVBAを使ってシート上のテキストボックスのテキストを取得・変更するマクロを作成したいと思っていますがうまく行きませんので、お知恵を拝借したいとおもいます。

環境:WindowsXPでオフィス2002
状況:
エクセルブックa.xlsのシートに「コントロールツールボックス」のテキストボックスを配置(オブジェクト名はTEXTBOX_C)
エクセルブックb.xlsにコードを書き、a.xlsのTEXTBOX_CのプロパティのValueかTextを取りだしたい

試した事:
コントロールを配置したシートに次のマクロ
TEXTBOX_C.Text = "これはコントロールのテキストボックス"
を書くとテキストボックスに文字を入れ込めますが、別のエクセルブックからだと上手く行きません。

また、オートシェイプのテキストボックスの場合は簡単に出きるのですが、コントロールツールボックスではどうしても上手く行きませんので、対象法などご存知の方いらっしゃいましたら教えてください

Aベストアンサー

エクセルを新規に開きました。
そのSheet1に(コントロールツールボックスの)TextBoxを貼りつけました。
そのBook1から、ファイル-開くで別ブックを開きました。
別ブックのMojule1側に下記を書いて
Sub test02()
MsgBox Workbooks("book1").Worksheets("sheet1").textbox1.Text
End Sub
を実行すると、Book1のTextBoxに入れた文字列が表示
されました。
がそんな質問ではないのですか。


このQ&Aを見た人がよく見るQ&A

人気Q&Aランキング