• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:入力規則のリストで、データが変わったら値コピーをする)

リストの入力規則で会社名を伏字にしながら値コピーする方法

このQ&Aのポイント
  • リストの入力規則を使用して番号を選択すると、伏字にした会社名を表示する方法について説明します。
  • Sheet2には住所や電話番号、会社名などの住所録が入っています。Sheet2のA1列にはユニークな通し番号が振られています。
  • Sheet1のA1から始まる列にリストの入力規則を設定し、選択された番号に応じて会社名を伏字にして表示する方法を教えてください。

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

  • ベストアンサー
  • KURUMITO
  • ベストアンサー率42% (1835/4283)
回答No.4

通常の手段ではC1セルに=B1と入力すればよいのですが、C1セルを書き換えるなどの操作をすればセルの式は消えて機能が無くなりますね。関数などを使って対応することはできないでしょう。 マクロを作って対応することになるでしょう。 「シート見出し」で該当のシートを右クリックし「コードの表示」を選択します。 右側の白い画面に下記のコードを入力します。 Private Sub Worksheet_Change(ByVal Target As Range) If Target.Column = 1 Then a = Target.Row Cells(a, 3) = Cells(a, 2) End If End Sub シートの画面に戻って、A列での入力規則のリストのデータを変更することでB列にはVLOOKUP関数で会社名が表示されることでしょうが、C列にはそれと同じ会社名が表示されます。もちろん変更も可能ですし、A列のデータが変わればそれに伴ってC列の値を変わります。

spicca2
質問者

補足

こんにちわ。 回答ありがとうございます! 試しにやってみたのですが、全く動きません; せっかく教えていただいたのにすみません。。 (Sheet1に書き込んでいることは確認しました) ちなみにExcel2003です。

その他の回答 (4)

  • KURUMITO
  • ベストアンサー率42% (1835/4283)
回答No.5

A列でデータをリストから選択すればB列にはVLOOKUP関数でデータが自動的に表示されるようになっていますね。その場合にC列にはB列のデータがコピーされるようにマクロがなっています。B列にデータがなく空の場合には何も起こりません。もう一度確認してください。 コード自体に誤りがないことを確認しています。

spicca2
質問者

補足

こんにちわ。 もう一度コピーをしてやってみたところ、できました! なんでできなかったか謎です; みなさまご意見、ご回答ありがとうございました!

noname#99913
noname#99913
回答No.3

Sheet2のB列に会社名、C列に伏字の会社名を入力しておきます。(別に他の列でもかまいませんが、今はそれで説明します) Sheet1の B1に=VLOOKUP(A1,Sheet2!A:C,2,FALSE) C1に=VLOOKUP(A1,Sheet2!A:C,3,FALSE) と入力する。 つまり、そのつど伏字にするのではなくて、初めから伏字のデータを作っておき、それをVLOOKUP関数で引っぱってくるわけです。

spicca2
質問者

補足

こんにちわ。 >そのつど伏字にするのではなくて このやり方もあるのですね。。 ありがとうございます。

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

エクセルは行と列での「学」です。行・列を明示し、模擬実例を挙げて質問してください。 >リストの入力規則で番号が変わったら(A1セル)、会社名(B1)を、C1のセルに値コピーをするというのがはッきりしない。 >リストの入力規則で番号が変わったら 入力規則は番号を変える機能ではありません。文章の書き方がおかしい。 番号ー会社名の対応が変わると、入力規則のリストに影響し(変更をしなければならないので)入力規則のリストを変更するため・・ と言った意味か。 変わったら捉えるのはVBAの世界。変わった行をどう捉えるのか。 >会社名(B1)を、C1のセルに値コピーをする とどういう風にVLOOKUP関数の検索表(Sheet1に有るようだ)の修正に 役立つのか? >会社名を伏字にしたいと思っています もVBAでやれば (1)1文字 (2)固定位置 (3)乱数で1-2文字位置を決める などなら、ややこしいが組めそうだ。 しかし意味が有る(消えると類推が出来にくい)文字を●で置き換えるとなると、人間の総合判断に頼ったほうがよいでしょうね。

spicca2
質問者

補足

こんにちわ。 回答ありがとうございます。 書き方がおかしくてすみません。 B1セルにはVlookupで引っ張ってきた会社名をそのまま表示し、 C1には、伏字にした会社名を載せたいと思っています。 (B1のセルをそのままにしておくのは、元の会社名がわかるように) 例) A1 1111       →入力規則のリスト(Sheet2には範囲の名前で定義) B1 株式会社ほげほげ →Sheet2よりVlookupで引っ張ってきた計算式 C1 株式会社ほげほげ →値コピー このあと、手入力でC1を伏字にしたいと思っています。

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

>データが変わったら値コピーをする VBAの力をかりると簡単にできますが、その前に >この会社名を1文字ずつ伏字にしなければなりません。 これはどういう意味でしょうか? 例えば、VLOOKUP関数で得られた会社名の「会社」と言う文字を「*」に置き換える とかいうのであれば =SUBSTITUTE(VLOOKUP関数,"会社","*") とかにすれば、結果が得られると思いますが。

spicca2
質問者

補足

こんにちわ。 >例えば、VLOOKUP関数で得られた会社名の「会社」と言う文字を「*」に置き換える 伏字にするのは質問でも書いたとおり、手入力でやろうと思っています。 会社名は例えば 株式会社ほげほげ ↓ 株式会社ほ●ほ● というようにするので・・・。 前株や後株があるので、ここは無理をせず、手入力で変更したいと思っています。 (Sheet1には会社名は1つしか出さないため)

関連するQ&A

専門家に質問してみよう