• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:再質問:エクセルであるセルに数字を入力すると他のセルのデーターから文字が入力 )

エクセルでセルに数字を入力すると他のセルのデータから文字が入力される方法

このQ&Aのポイント
  • エクセルで特定のセルに数字を入力すると、他のセルのデータから該当する番号の文字が自動的に入力される方法について教えてください。
  • 具体的な例として、Sheet1のA列に1を入力すると、Sheet2のA列から該当する番号の文字が自動的にSheet1のC列に入力されるようにしたいです。
  • また、Sheet1のC列が増えた場合には、マクロをどのように変更すれば良いでしょうか?

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

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

質問の理解が一番難しいですね。 A、C列に入力した場合、それぞれで検索する場所を変えています。 Private Sub Worksheet_Change(ByVal Target As Excel.Range)   Dim rg As Range 'セル   Dim rgfnd As Range '見つけたセル   On Error GoTo ErrorHandler   Application.EnableEvents = False   For Each rg In Target     'Sheet1のA列なら     If rg.Column = 1 Or rg.Column = 3 Then       'Sheet2を検索       If rg.Column = 1 Then         'A列に入力した場合         Set rgfnd = Worksheets("Sheet2").Range("A:A").Find(rg.Text)       Else         'C列に入力した場合         Set rgfnd = Worksheets("Sheet2").Range("C:C").Find(rg.Text)       End If       If Not rgfnd Is Nothing Then         '見つかったら書き換える         rg = rgfnd.Offset(0, 1).Text         Set rgfnd = Nothing       Else         rg = rg.Text & ":nothing"       End If     End If   Next   Application.EnableEvents = True   Exit Sub ErrorHandler:   'エラー対応   Application.EnableEvents = True End Sub

71063
質問者

お礼

お休みの中の回答、大変ありがとうございました いつも何回もの補足の回答にも大変感謝しております 出来ました、ほんとにいろんなことが出来ることにいつも 驚きです、ありがとうございます 今後ともよろしくお願いします

その他の回答 (3)

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

この回答では、Offsetがキーワードで、 VBAを使ったり勉強するには、オブジェクトブラウザは必須と思い追加しましたが、 >以後のヘルプ内容に回答内容が出ません?  ●ヘルプ自体が表示されない(使えない)のであれば、   コントロールパネル→アプリケーションの追加と削除でセットアップする必要があります。   マニュアルに載っていると思います。  ●ヘルプは表示されるが、回答した内容が表示されない・・・   Offset プロパティのRangeを選択すると    Offset プロパティ (Range オブジェクト)    が表示されます。余分な部分を少しカットしています。

71063
質問者

補足

いつも何も分かっていない質問で申し訳ありません いつもの丁寧な回答で助かります、私の理解不足でヘルプ回答内容は表示されていました マクロのことになりますが、私の説明内容が悪くて申し訳ないのですが ANo.#2の回答では、sheet1のA列に入力するとsheet2のB・D列の該当内容が、sheet1のA・C列に同時に表示出来るようになっています、これも便利なことに思います ただ、こうではなく再質問の意図は 操作(1):sheet1のA列に入力するとsheet2のB列の該当内容が、sheet1のA列に表示 操作(2):sheet1のC列に入力するとsheet2のD列の該当内容が、sheet1のC列に表示 のように別々の列に入力しても該当内容が表示出来たらいいなと思っています こんなことも出来るでしょうか いつもご無理の補足ばかりして申し訳ありません よろしくお願いします

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

最初の回答に1行追加します。 If Not rgfnd Is Nothing Then   '見つかったら書き換える   rg = rgfnd.Offset(0, 1).Text   '*** 最初の回答にこの行を追加 ***   rg.Offset(0, 2) = rgfnd.Offset(0, 3).Text   Set rgfnd = Nothing Else   rg = rg.Text & ":nothing" End If VBE画面で、表示→オブジェクトブラウザで双眼鏡のアイコンの左の窓に OFFSET と入力して、 双眼鏡のアイコンを押すと検索結果が出てきます。  ライブラリ=Excel、クラス=Range、メンバ=Offset を選択して右クリック→ヘルプ expression.Offset(RowOffset, ColumnOffset)  RowOffset   オフセットする範囲の行数 (正、負、または 0) を指定します。         正の値は下方向、負の値は上方向のオフセットを表します。既定値は 0 です。  ColumnOffset オフセットする範囲の列数 (正、負、または 0) を指定します。         正の値は右方向、負の値は左方向のオフセットを表します。既定値は 0 です。 (ヘルプをセットアップしてあれば表示されます)

71063
質問者

補足

回答ありがとうございました もう少しわからないところを教えてください 最後のところの >右クリック→ヘルプ 以後のヘルプ内容に回答内容が出ません? >(ヘルプをセットアップしてあれば表示されます) のことが? いつもご無理の補足ばかりして申し訳ありません よろしくお願いします

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

質問のように表示するなら下のようにします。 この場合は当然、VLOOLUPでできますが・・・。  C1: =VLOOKUP(A1,Sheet2!$A$1:$D$3,4,FALSE) のように。算式を使いたくない? 途中のIfの箇所  If Not rgfnd Is Nothing Then    '見つかったら書き換える    rg.Offset(0, 2) = rgfnd.Offset(0, 3).Text    Set rgfnd = Nothing  Else    rg.Offset(0, 2) = "nothing"  End If

71063
質問者

補足

nishi6さんからの回答大変感謝しております ありがとうございます 質問例の表示がくずれたままで送付して申し訳ありません でした、下がくずれを直したものです 例 sheet1   A B C  1 1   A1→A1を入力するとsheet2に入力されている         データーC列から、該当する番号を判断   ↑     して、「ああ」とセル内に表示する   1を入力するとsheet2に入力されているデーターA列   から、該当する番号を判断して、「東京」とセル内に   表示する sheet1 の変換後   A B C  1 東京  ああ に変換したいのですが、いつもお手数ばかりおかけして申し訳ありませんが ご教授おねがいします