Excel VBA質問箱 IV

当質問箱は、有志のボランティア精神のおかげで成り立っています。
問題が解決したら、必ずお礼をしましょうね。
本サイトの基本方針をまとめました。こちら をご一読ください。

投稿種別の選択が必要です。ご注意ください。
迷惑投稿防止のため、URLの入力を制限しています。ご了承ください。


52012 / 76736 ←次へ | 前へ→

【29572】Re:オプションボタン
質問  Komo  - 05/10/8(土) 0:04 -

引用なし
パスワード
   ▼Jaka さん:

出来の悪い生徒で申し訳ありません。
でも、本当にありがとうございます。もう少し勉強させてください。

>たぶん、簡単な間違いだと思うんですが、シート上に
>表示 → ツールバー → コントロールツールボックス(アクティブXコントロール)
>のOptionButtonを使っていますか?

ここで間違っていました。→UserForm1の「ツールボックス」のオプションボタンを使っていました。コントロールツールボックスの意味が分かりませんでした。というか、思い過ごしていました。またこれに関して、全く知識がありませんでした。恥ずかしい次第ですが。・・・ユーザーフォームを使わない理由があるのでしょうね。

>また、私の確認用コードは標準モジュールで良いです。

はい、順調に確認できました。ありがとうございます。「プションボタン1・・・3など順調に選択したボタンの表示がMsgBoxに出てきます。

>りんさんのコードで、Private Sub CommandButton1_Click()の方は、
>シートのCommandButtonでも、ユーザーフォーム上のCommandButtonのどちらでからでも動きました。

りんさんのコードを再度させていただきました。シートのコマンドボタンからOKでした。また、ユーザーフォーム上のCommandButtonも順調に動きました。(でも、ユーザーフォームを出すために、UserForm1.Show のコマンドボタンを作る必要がありますね)
コントロールツールボックスやユーザフォーム上のツールボックスの用途やシート上の
フォームの使い分けなどをこれから勉強しなくては・・・と思いました。


>今一歩、どういった状態で使用しているのか、OptionButtonの種類等が解らないので、リストボックスを使った物を作ってみました。

大変ありがとうございます。

>シート上に、アクティブXコントロールの「ListBox」1つ。
>リスト作成用、シート選択用にアクティブXコントロールの「CommandButton」2つ。

ここのListBoxやCommandButtonは・・・→表示 → ツールバー → コントロールツールボックスのやり方で問題ないですね。

>が、"Sheet1"にあるとして、
>下記コードは、ボタン等があるSheet1のシートモジュールに。

はい、やりました。
結果は、MsgBoxに「Book1が、開いていません。」となりました(CommandButton 2つとも)。ListBoxは何ら変化ないです。
また、一寸どこかで間違っていますね。また明日挑戦してみます。分からなかったらまた聞かせていただきたいと思います。

>
>*************
>Const 対象ブック名 As String = "Book1" '←対象ブック名に変更してください。

対象ブック名に変更・・・?これはどういう意味なんでしょうか?


>'シートリスト作成
>Private Sub CommandButton1_Click()
>  Dim Wb As Workbook, Sh As Worksheet
>  For Each Wb In Workbooks
>    If Wb.Name = 対象ブック名 Then
>     With ThisWorkbook.Worksheets("Sheet1").OLEObjects("ListBox1").Object
>       .Clear
>       For Each Sh In Wb.Worksheets
>         .AddItem Sh.Name
>       Next
>     End With
>     Exit Sub
>    End If
>  Next
>  MsgBox 対象ブック名 & "が、開いてません。"
>End Sub
>
>'ブックとシート選択
>Private Sub CommandButton2_Click()
>  Dim WB2 As Workbook, ShName As String
>  On Error Resume Next
>  Set WB2 = Workbooks(対象ブック名)
>  Err.Clear
>  On Error GoTo 0
>  If Not WB2 Is Nothing Then
>    With ThisWorkbook.Worksheets("Sheet1").OLEObjects("ListBox1").Object
>      If .ListIndex < 0 Then
>        Set WB2 = Nothing
>        Exit Sub
>      End If
>      ShName = .List(.ListIndex)
>    End With
>    Workbooks(対象ブック名).Sheets(ShName).Activate
>    ActiveWindow.WindowState = xlNormal
>    Set WB2 = Nothing
>    Exit Sub
>  End If
>  MsgBox 対象ブック名 & "が、開いてません。"
>End Sub

それから、再度お聞きしたい事が在ります。
10月3日の
貴殿のご指摘いただいた下の内容は、あえて変更する必要は無いですね。
Flgの意味が分から無いもので又、勉強させていただきます。
コードはしっかりと残しておいて、又の機会に質問させていただきたく
考えています。

(10月3日の貴殿からのご解答です)
こんにちは。
部分的にしか見てないけれど...。
こうしたらどうでしょうか?

>  '対応するシート名が無いとエラーになるので注意
>  wb.Worksheets(wsn).Activate
   ↓
  Dim WBK As Worksheet, Flg As Boolean
  For Each WBK In wb.Worksheets
    If WBK.Name = wsn Then
      Flg = True
      Exit For
    End If
  Next
  If Flg = True Then
    wb.Worksheets(wsn).Activate
  Else
    msgbox wsn& "シートがありません。"
  End If

Jakeさんに長々とご指導いただきありがとうございます。
感謝しています。特に今回は「コントロールツールボックス」に触れ少し理解ができた事は大きな収穫だったと思っています。
失礼します。

0 hits

【29119】オプションボタン ハッチ 05/9/25(日) 13:48 質問
【29124】Re:オプションボタン りん 05/9/25(日) 18:44 回答
【29158】Re:オプションボタン ハッチ 05/9/26(月) 21:23 お礼
【29165】Re:オプションボタン りん 05/9/27(火) 8:17 発言
【29226】Re:オプションボタン ハッチ 05/9/28(水) 1:27 お礼
【29325】Re:オプションボタン Komo 05/9/30(金) 19:30 質問
【29368】Re:オプションボタン Jaka 05/10/3(月) 15:47 回答
【29433】Re:オプションボタン Komo 05/10/4(火) 20:21 質問
【29446】Re:オプションボタン Jaka 05/10/5(水) 11:10 発言
【29456】Re:オプションボタン Komo 05/10/5(水) 19:54 質問
【29492】Re:オプションボタン Jaka 05/10/6(木) 12:51 回答
【29518】Re:オプションボタン Komo 05/10/6(木) 20:49 質問
【29524】Re:オプションボタン ハッチ 05/10/6(木) 21:44 質問
【29557】Re:オプションボタン Jaka 05/10/7(金) 15:16 回答
【29566】Re:オプションボタン ハッチ 05/10/7(金) 19:53 お礼
【29572】Re:オプションボタン Komo 05/10/8(土) 0:04 質問
【29613】Re:オプションボタン りん 05/10/9(日) 12:35 発言
【29666】勘違いしてました。(勘違いしたまま、開い... Jaka 05/10/11(火) 10:17 発言
【45328】今ごろですが。 Jaka 06/12/19(火) 16:29 発言

52012 / 76736 ←次へ | 前へ→
ページ:  ┃  記事番号:
2610219
(SS)C-BOARD v3.8 is Free