• 締切済み

エクセル2000のタブオーダについて

いつもすみません フォームでタブオーダを使用した際に チェックボックスとテキストボックスを設定した場合 3行目のチェックボックスにレを入力した際、テキストボックスに ONと表示されたいのですが、どうすればできるのでしょうか?

みんなの回答

  • nishi6
  • ベストアンサー率67% (869/1280)
回答No.2

>フォームでチェックボックス名は一つでデータの分だけ表示する方法 『チェックボックス名は一つ』ということは、コントロール配列だと思いますが、VBAにはその機能はありません。 VBAでVBのコントロール配列のような機能を作ったり、コレクションを定義して一括で処理もできますが、複雑になるので質問の内容をExcel2000VBAの標準的な機能で対応してみました。 まず、ユーザーフォーム1にListBox1とTextBox1を配置します。 下記コードをユーザーフォーム1のコードウインドウに貼り付けます。 (fmMultiSelectExtended → fmMultiSelectSingle にすると、複数選択できなくなります。) 質問にある複数のチェックボックスをリストボックス内のリストとして考えています。 データが何件あってもリストボックス内で表示できるので、ある意味楽かもしれません。 こんな意味の質問でした? ご参考に。 Private Sub ListBox1_Change()   'インデックスは0から始まるので3番目は『2』   '選択されていればSelectedがTRUE   If ListBox1.Selected(2) = True Then     TextBox1.Text = "ON"   Else     TextBox1.Text = ""   End If End Sub Private Sub UserForm_Initialize()   Dim myList As Variant 'ListBox1のリスト定義用配列   'myListは例です   myList = Array("東京", "神田", "秋葉原", "御徒町", "上野", "鶯谷", "日暮里", "西日暮里")   With ListBox1     .List = myList             'リストボックスの内容を登録     .ListStyle = fmListStyleOption     'リストにチェックボックスを表示する     .MultiSelect = fmMultiSelectExtended  '複数選択可にする     '色などの設定を変更     .BackColor = UserForm1.BackColor    '背景色をフォームの色にする     .BorderColor = UserForm1.BorderColor  '境界線をフォームの色にする     .BorderStyle = fmBorderStyleNone    '境界線を引かない     .SpecialEffect = fmSpecialEffectFlat  'フラットにする   End With End Sub

  • nishi6
  • ベストアンサー率67% (869/1280)
回答No.1

『3行目のチェックボックスに』というのはよくわかりませんが、 ユーザーフォームにCheckBox1とTextBox1があって、CheckBox1をクリックすると、テキストボックスの表示が変わる例です。CheckBox1_Click→CheckBox1_Change としても同じ結果が得られるでしょう。タブオーダーは余り関係ない? Private Sub CheckBox1_Click()   If CheckBox1.Value = True Then     TextBox1 = "ON"   Else     TextBox1 = "OFF" '質問にはないが、OFFを表示する例   End If End Sub

syusama
質問者

補足

回答ありがとうございました。 質問が少し変だったかもしれませんね。 すみません。 フォームでチェックボックス名は一つでデータの分だけ表示する 方法があると思いますがその時、チェックボックスが何行目に レ(チェック)を入れたかたを知りたいのです。 確か、何かの関数できくと変数が返って来たと思います。 その関数を忘れてしまいました。 よろしくお願いします。

関連するQ&A

  • エクセルのユーザーフォームについての質問です。

    エクセルのユーザーフォームについての質問です。 かなりの初心者です。 テキストボックスを3つ、チェックボックスを10個作りました。 チェックボックスは複数チェックすることができます。 コマンドボタンをクリックすると、テキストボックスに入力された値とチェックされた チェックボックスがsheet1に自動入力できるようにしたいです。 たとえば、 テキストボックス1には「あいう」 テキストボックス2には「かきく」 テキストボックス3には「さしす」と入力。 チェックボックス1から10のうち、「1」「2」「3」にチェック。 この状態でコマンドボタンをクリックすると、Sheet1には     A列       B列       C列        D列 1行目 テキスト1    テキスト2    テキスト3     チェックボックス 2行目 あいう      かきく      さしす       1 3行目 あいう      かきく      さしす       2 4行目 あいう      かきく      さしす       3 このように、チェックボックスにチェックがあった数だけ、テキストボックスも コピーされて、次々と下の行に入って行くようにしたいのです。 こんなことができるのでしょうか? できるのなら、コードを教えてください。 お願いします。

  • Accessのチェックボックスをオンにするには

    Access2000でフォームを作成し、テキストボックス1に入力した内容をチェックボックス1にオンの状態で表示させたいのですが、フォームビューでもチェックボックスがオンでもオフでもなくグレイの状態で表示されています。 かりにテキストボックスの入力値が”ABC"を入力したあと チェックボックス1にオンの状態にするには、 どのようなコードになりますか? public sub() if me.テキストボックス1.value = "ABC" then me.チェックボックス.value = ture じゃだめですよね? チェックボックスをオンにする方法と、テキストボックスがNULLだったらオフにする方法を教えていただけませんでしょうか?

  • エクセルVBA チェックBoxとテキストBox

    VBA勉強中の者です。エクセル2010使用 前回も同じような件で質問したのですが、入力フォームを作成中。 数量表の入力ホームなので、出来るだけキーボードのテンキーでの操作が出来るようにと考えております。 チェックボックスのon/off でテキストボックスの入力の可否を出来るようにしています。これが7組あるとします。(チェックボックス1に対してテキストボックス1に数値が入力出来るように) 質問(1) チェックが入っていれば、呼応したテキストボックスへエンターキーで移動。 チェックを入っていなければ、エンターキーで次のチェックボックスへ移動するようにしたいのです。 質問(2) シートへの転記の際は、7組の間に『、』カンマを入れたいのですが、当然チェックのないものは必要ないので、カンマが要らない事になります。初心者の考えでは単純に条件式をその通り数書くことになるのかと思うとゾッとしますが、少しでも条件式を減らす方法があれば、ご教授願います。 分かり難くて、すみません。

  • エクセルのマクロでフォームを起動したときのフォーカス

    はじめまして。 表題の件ですが、 エクセルのマクロでフォームを作成し、 データ入力をしようとしています。 フォームを入力する際 一番最初に 使用するのはテキストボックスなのですが 起動する際 フォーカス位置はボタンで 一回テキストボックスをクリックしないと フォーカスが移動しません。 起動したときにテキストボックスに初期フォーカスを設定する方法を 教えて頂けませんでしょうか。 どうぞよろしくお願い致します。

  • チェックボックス以外の文字を抽出

    入力用フォームAに複数のチェックボックスとひとつのテキストボックスを配置し、 チェックの入っている項目とテキストボックスに入力した文字を 表示用フォームBの「フィールド1」にまとめて表示させています。 以下のようなイメージです。 <入力用フォームA> ■A □B ■C 【あいうえお】 <表示用フォームB> フィールド1【A C あいうえお】 表示用フォームBのフィールド1から、 テキストボックスで入力させた文字だけ(”あいうえお”) 抽出するにはどうしたらいいでしょうか? 入力用フォームAのチェックボックスとテキストボックスを それぞれ別のフィールドにして、 表示用フォームBで&でつなげて表示させるような構造だったら簡単なのでしょうが チェックボックスもテキストボックスも ひとつのフィールドにまとめてしまっているので どうしたらいいか分かりません。 ご教授よろしくお願いいたします!

  • excelの機能について

    いつも大変お世話になっております。 今回の質問は、excel2003の機能について質問させていただきます。 excelを開き、表示⇒ツールバー⇒フォームを選択し、チェックボックスをセル上に書き、このチェックボックスを利用しONした場合にセル上の文字の色を変えることには成功しました。 ここまで出来るまでにも時間がかかったのですが、出来ればチェックボックスがONになった時に必要な部分だけのセルを消す事が出来ないものかと・・・ 今回の質問のような機能の設定方法をご存知のかたがおられましたら教えてください。 宜しくお願い申し上げます。

  • EXCEL VBA テキストボックスを見やすくしたい

    いつもお世話になっております。 EXCEL VBA のユーザーフォーム上の テキストボックスについて教えて下さい。 大きめのテキストボックスを作り 改行を許可して、数十文字を表示させることができたのですが、行と行の間が詰まりすぎていて、見づらいのです。 行間を空ける方法を教えて下さい。

  • エクセルのフォームのチェックボックスについて

    エクセルのフォームのチェックボックスについて あるセルにフォームのチェックボックスを付け、 そのセルに、true・falseの条件設定をしました。 その設定を利用して、条件式書式の設定で、 trueの時にとなりのセルを赤にするようにしました。 以上のような行が1500行あります。 1つ1つ設定するのが困難のため、 マクロが使えるフォームのチェックボックスを使用しようと試みております。 しかし、マクロ内のVBAの記述方法が解りません。(1行だけなら解ります) ご存知の方がおられましたら教えてください。 よろしくお願いいたします。

  • エクセルシートから検索

    カテゴリー違いかもしれませんが エクセルVBAのユーザーフォームを使用して テキストボックスへ入力したデータを指定のシートから検索し、 同じユーザーフォームへ希望のデータ(検索値の同行)を表示させるということはできるのでしょうか。 また、入力した文字と一致したもの全てをということも出来るでしょうか。 例 Aのテキストボックスに、検索したい文字を入れる 一致したデータ全ての行の情報を B以降のフォームへ表示させる 説明がわかりにくいとは思いますが 宜しくお願い致します。

  • Excel フォームでオートコンプリート VBA

    いつも大変お世話になっております。 使用しているものは、Excel2003になります。 今困っているのが、フォーム上でオートコンプリート機能しないことです。 テキストボックスなどに入力したら候補が下に出て欲しいのです。 入力候補として表示したいのは、列です。 例として作成した図の場合、 番号のテキストボックスには、番号の列を自動入力(入力候補表示) 名前のテキストボックスには、名前の列を自動入力(入力候補表示) をしたいと思っています。 オートコンプリート自体、Excelのワークシート上のみ?の機能だと思いますが、 フォーム上では可能でしょうか? できない場合、他の対応策とか無いでしょうか? 回答よろしくお願い致します。

専門家に質問してみよう