• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:シート1の氏名をシート2に反映)

シート1の氏名をシート2に反映

このQ&Aのポイント
  • シート1の氏名をシート2に反映させるためのVBAコードを作成しましたが、うまく動作しません。
  • コードを他の場所で試してみましたが、期待通りに動作しませんでした。
  • この問題を解決するために、コードに誤りがあるのか、他の方法を試す必要があるかを知りたいです。

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

  • ベストアンサー
  • tom04
  • ベストアンサー率49% (2537/5117)
回答No.3

No.2です。 どうしてもVBAでやりたいというコトですので・・・ 標準モジュールに一旦↓のコードをコピー&ペーストしておいてください。 Sub Sheet2に表示() Dim i As Long, j As Long, k As Long Dim wS1 As Worksheet, wS2 As Worksheet Set wS1 = Worksheets("Sheet1") Set wS2 = Worksheets("Sheet2") Application.ScreenUpdating = False j = wS2.UsedRange.Columns.Count For i = 6 To wS2.Cells(Rows.Count, 1).End(xlUp).Row Step 6 wS2.Cells(i, 2).Resize(3, j).ClearContents Next i On Error Resume Next For i = 3 To wS2.Cells(Rows.Count, 2).End(xlUp).Row Step 6 For j = 2 To wS2.Cells(i, Columns.Count).End(xlToLeft).Column k = WorksheetFunction.Match(wS2.Cells(i, j), wS1.Rows(5), False) wS1.Cells(13, k).Resize(3, 1).Copy wS2.Cells(i, j).Offset(3) Next j Next i Application.ScreenUpdating = True End Sub 次にSheet1のコマンドボタンのコードを↓にして、コマンドボタンをクリック! Private Sub CommandButton1_Click() Call Sheet2に表示 End Sub こんなんではどうでしょうか? ※ 上記コードはお示しの画像通りの配置としていますので、 Sheet1およびSheet2の配置が少し変わっただけでも まったく意味のないコードになってしまいます。m(_ _)m

kuma0220
質問者

お礼

有難うございます。大変助かりました。

その他の回答 (2)

  • tom04
  • ベストアンサー率49% (2537/5117)
回答No.2

こんにちは! おそらく前回回答した者です。 Sheet2の配置が前回のものとはかなり違っていますので、当然前回のコードはかなり変更する必要があります。 VBAで操作する場合、1行・1列ずれただけでも全く意図しない動きになってしまいます。 特に今回のように同列に同じデータが存在する場合 MATCH関数を使用できませんので VBAで行うよりSheet関数の方が簡単で、メンテナンスもやりやすいと思います。 そういうコトで今回は関数での一例です。 Excel2007以降のバージョンをお使いだとして・・・ Sheet2のB6セルに =IFERROR(INDEX(Sheet1!$1:$1048576,MATCH($A6,Sheet1!$D:$D,0),MATCH(B$3,Sheet1!$5:$5,0)),"") という数式を入れ列・行方向にオートフィルでコピー 同様にB12セルに =IFERROR(INDEX(Sheet1!$1:$1048576,MATCH($A12,Sheet1!$D:$D,0),MATCH(B$9,Sheet1!$5:$5,0)),"") B18セルに =IFERROR(INDEX(Sheet1!$1:$1048576,MATCH($A18,Sheet1!$D:$D,0),MATCH(B$15,Sheet1!$5:$5,0)),"") と数式を入れそれぞれオートフィルで列・行方向にオートフィルでコピー! これでなんとかSheet2の方は表示できると思います。 ※ もちろんVBAでもできますが、こちらの方をおススメします。m(_ _)m

kuma0220
質問者

お礼

大変有難うございます。Excel関数でできました。でもなんとかVBAにて処理したいのですがやはり難しいでしょうか。

  • bin-chan
  • ベストアンサー率33% (1403/4213)
回答No.1

> 他で試したのですがうまくいきません。 どううまくいかないの? そもそも「シート1のどれが氏名なのか」がわからない。 例示なら「○○ 太郎」など、わかりやすくしてください。

kuma0220
質問者

お礼

すみません。ありがとうございます。

関連するQ&A