• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:エクセルVBA セルの値、書式を貼り付けしたい)

エクセルVBAでセルの値と書式を貼り付けする方法

このQ&Aのポイント
  • エクセルVBAを使用して、指定の条件に基づいてセルの値と書式を貼り付ける方法について教えてください。
  • 具体的には、Worksheets("KAIGAIFUNIN") に名前がある人をWorksheets("ALL") で検索し、該当する名前の横のセルに赴任地と滞在年数をコピーして貼り付けたいです。
  • また、セルの書式(書体、文字サイズ、文字の色、セルの塗りつぶし)もそのまま反映させたいですが、R1C1形式に変換する方法を教えてください。

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

  • ベストアンサー
  • ushi2015
  • ベストアンサー率51% (241/468)
回答No.1

こんにちは R1C1形式、A1形式は関係無いのでは? Sub 海外赴任者チェック()   Dim A   As Worksheet   Dim B   As Worksheet   Dim tateA As Long   Dim tateB As Long      Set A = Workbooks("名簿.xls").Worksheets("ALL")   Set B = Workbooks("名簿.xls").Worksheets("KAIGAIFUNIN")      For tateA = 2 To 400     tateB = 2     Do Until B.Cells(tateB, 1) = ""       If B.Cells(tateB, 1) = A.Cells(tateA, 1) Then         B.Cells(tateB, 2).Copy A.Cells(tateA, 5) '赴任先の入力         B.Cells(tateB, 3).Copy A.Cells(tateA, 6) '赴任年数の入力         Exit Do       End If       tateB = tateB + 1     Loop   Next End Sub

kasetsu
質問者

お礼

返事が遅くなりまして、すみません。 悩んでいた事が簡単に解決できました!! どうもありがとうございました。m(_ _)m

その他の回答 (1)

  • SI299792
  • ベストアンサー率47% (780/1631)
回答No.2

IFの中を B.Cells(tateB, 2).Resize(1, 2).Copy A.Cells(tateA, 5) にすれば、コピーは1回で済みます。

kasetsu
質問者

お礼

返事が遅くなりまして、すみません。 お忙しいところご回答いただき、ありがとうございました。m(_ _)m Resizeは知らなかったので参考になりました。

関連するQ&A

専門家に質問してみよう