VBA入力規則を使用したリストについて

このQ&Aのポイント
  • Excel2010とExcel2000でのVBA入力規則を使用したリストの動作について質問があります。
  • Excel2010ではリストから候補値を選択すると、ロックされたセルには何も設定されません。
  • 一方、Excel2000ではリストで選択した値がセルに設定されますが、VBAで動作する方法を知りたいです。
回答を見る
  • ベストアンサー

VBA 入力規則を使用したリストについて

【動作環境】  Excel2010/Excel2000   あるセルについて、 入力規則のリストを使っています。 ユーザには範囲外の値を入力させたくなく、 手入力を禁止するためにそのセルはロックし、シートを保護しています。 これをExcel2010で実行させた場合、 リストから候補値を選択すると、 セルがロックされている旨のメッセージが表示され、 セルには何も設定されません。 まったく同じことを Excel2000で行うと問題なくリストで選択した値がセルに設定されます。 今回、Excel2000とExcel2010で動作するVBAが要求されており、 どのように回避すればよいか、ご教授願います。

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

  • ベストアンサー
  • hallo-2007
  • ベストアンサー率41% (888/2115)
回答No.1

Excel2010/Excel2000のどちら環境もありませんが >手入力を禁止するためにそのセルはロックし、シートを保護しています。 の状態で >Excel2000で行うと問題なくリストで選択した値がセルに設定されます。 EXCEL2000で値の変更が出来ることをしりませんでした。 セルにロックしてシートの保護なの入力規則のドロップダウンリストでも 値の変更が出来ないことが当たり前だと思っていました。 ちなみにEXCEL2003で確認しても値の変更は出来ませんでした。 ところで 入力規則のセルのロックのチェックをはずした状態でシートの保護をかける では如何でしょうか? シートに保護がかかっているので意図的に入力規則を解除することは Excel2010/Excel2000でも出来ないのではないでしょうか? だからドロップダウンリスト以外の値は入れられないと思うのですが。

cha-chan_0429
質問者

お礼

他のExcelもしくは同一シート内の別セルからもコピペしたいという 要望が出てきて、結局ドロップダウンは不採用になりました。 コピペされると入力規則も上書きされちゃうので・・・ ありがとうございました。

関連するQ&A

  • VBAで入力規則のリスト参照元の値取得

    エクセル2007を使っています。 VBAツールを作っており、その処理で使われる一機能として 「任意のセルに設定されている入力規則のリストの元の値をVBAで取得する」処理を コード中に書きたいと思っております。 ■質問概要  「入力規則のリスト」が設定されている任意のセルを選択したときに、そのセルに設定されている  「入力規則のリスト」の「元の値」をVBAで取得する方法について教えてください。  ※取得した値は配列型の変数に代入するものとします ■想定イメージ  たとえば、次のようなブックで使うことを想定しております(画像参照)  ※実際はもっとデータ量が多いブックで使う予定です  ・「リスト元の値」というシートで「選択言語」という名前でリストを定義化  ・「通常操作するシート」では値を入力したいセルに対し、「入力規則のリスト」の「元の値」を   「=選択言語」で設定  VBAではこの「通常操作するシート」の入力欄のセルを選択している時に「選択言語」で定義されている  データをすべて取得し配列型変数に代入するという動作をさせたいと思っています。     この方法について教えてくださいますようお願いします。

  • EXCEL VBAで、EXCELの入力規則でリストに設定された内容をすべて取得したい

    EXCEL2003を使っています。 EXCELシートのあるセルに対し、入力規則が以下のように設定されています。 ・入力値の種類:「リスト」 ・データ:複数の値を直接設定(「りんご,みかん,もも」のような形式) このとき、リストに設定されているすべての値をVBAで取得したいと思っています。 入力規則で設定されている内容を取得する方法をご存知の方、ご教示いただけますでしょうか。 そもそも入力規則で設定されている内容を取得することは可能なのでしょうか。 よろしくお願いいたします。

  • Excelの入力規則でリストの値を選択できません。

    Excelの入力規則でリストの値を選択できません。 環境:WinXP Excel2003 表内のセルに入力規則でリストを設定しました。 リストは場所指定ではなく、入力規則タブのリスト欄にカンマで区切って直接値を入力しています。 リストの内容はメールアドレス用のドメインです。 ("@docomo.ne.jp,@softbank.ne.jp"というふうにドメインをリストにしています) 表は下記のような作りになっています。 A1セル:アカウント 直接入力 A2セル:ドメイン ドロップダウンリストから選択 ドロップダウンリストは正常に表示されるのですが、値を選択してもセルには何も表示されません。 試しにリストの値を"a,b,c"に変更したら正常に選択・表示されました。 ※添付画像のような状態から値を選択してもセルには何も表示されません 値が選択できないのは何が原因でしょうか? ご教示宜しくお願い致します。

  • excelの入力規則リストで重複不可にするには

    エクセルの入力規則でリストを利用して【プルダウンメニュー】を作成しています。 リストのデータを重複して選択できないようにするにはど のようにすればいいでしょうか? 例をあげるとしして 仮にA、b、Cの3つのセルに入力規則のリストを設定していずれも元の値が 『リンゴ』『みかん』『バナナ』とした場合。 Aのセルでリンゴを選択した時BやCのセルでリンゴを選択できないようにするに します。 VBAは全く分からないのでできれば関数で やる方法をご教授頂ければと思います。 宜しくお願いします

  • VBAで入力規則 エラーでも入れたい

    Excel2003を使っています。 Range("B1").Validation.Add Type:=xlValidateList, AlertStyle:=xlValidAlertStop, Operator:=xlBetween, Formula1:="=INDIRECT(A1)" これを使って「=INDIRECT(A1)」を入力規則のリストとして、セルのA1が空欄の状態で入れたいのですが、実行時エラー1004となってしまいます。 セルのA1には複数ある定義された名前のどれか一つが入るようにします。そして、そのどれか一つが入っていれば、エラーは起こることなく入力規則は設定されます。 ただ、A1は後々この資料を使うときに打ち込みたいため、VBAを走らせている段階では空欄のままにしておきたいのです。 これ、VBAを使わず直接入力規則を設定するときも、A1が空欄だと「元の値はエラーと判断されます。続けますか?」というメッセージが出ますよね? たぶん、これが原因だと思いますが、直接入れるときはそのメッセージを「はい」で強行することができます。 これをVBAで入れるときにもできないものかなと思っています。 VBAで強行して設定する方法はないものでしょうか? ちなみに「On Error Resume Next」をつけてみましたが、その場合はエラーは出ないものの入力規則も設定されませんでした・・・。

  • 入力規則の可変リストを作りたい(EXCEL)

    エクセルの初心者です。どなたか教えてください。 添付を見てください。 ●入力リストに「名前」、「申込時期」、「月」、「コース」があります。 ●参照リストにある「申込時期」、「月」、「コース」をそれぞれ入力規則のリストにして 入力リストの名前以外は選択にさせたいのです。 例えば、申込時期の第一期を入力規則のリストから選択すると、月のセルは 自動で7月~9月が設定できるようにしたいです。 都合により、VBAを書くのではなく、関数で実現したいと思ってるんですが これはできないのでしょうか?

  • 【Excel】データの入力規則のリストが作られない

    Excel2007利用です。 入力したい文字をリスト形式で選択する場合、「データの入力規則」→「リスト」→「元の値」であらかじめ入力しておいた項目のセルをまとめて選択し、最後にOKボタンを押しますが、実際やってみると、右横にリスト表示は最初の一つの項目のみしかなされてません。 また「元の値」は、リスト化する項目を選択するものだと思いますが、リスト表示されるセルを指定したい場合、このタスク内ではどの機能で操作するのでしょうか?

  • Excelのセルをリストから入力

    Excel2000ユーザーです。 任意のセルをリストからデータ入力(選択)するように設定した場合、リストに含まれない値を入力する方法はありますか? ■現状 [データ]→[入力規則]で入力規則プロパティ画面を表示し、 「入力規則の種類」:リスト 「元の値」:リストに含めるデータ 「ドロップダウンメニューから選択する」にチェック と設定しています。

  • Excel2010の入力規則:リスト、@

    Excel2010の入力規則のリストで、最初の文字に「@」を入力し、セルから選択してもなぜか、空白になってしまいます。 「@」を表示するにはどうしたらいいでしょうか? 回答よろしくお願いします。

  • Excelの入力規則のリストにカンマを表示したい

    Excelの「データの入力規則」でリストにカンマ(,)を表示したいです。 手順としてはメニューの「データ」-「入力規則」を選択し、 表示された画面で「設定」タブを選択し「入力値の種類」で「リスト」を 選択します。 その後、「元の値」でカンマ(,)が含まれたシートのセル範囲を選択すれば 表示されますが、直に値を「元の値」に指定する場合にカンマ(,)をエスケープする方法が分かりません。 お分かりの方は教えてください。

専門家に質問してみよう