• ベストアンサー

空欄を埋めるマクロ

office2003 ABCをDEFの様に埋めるマクロを教えてください。CFは同じです。 DEF 1,2行マクロ: =A1        =B1       =C1 =IF(A2="",D1,A2) =IF(B2="",E1,B2) =IF(C2="",F1,C2) 現在、DEFを一番下まで手作業で引っ張っています。 これを自動化したいのです。 1行目からデータです。データは沢山あります。列がずれて見にくいです。 A   B      C          D  E       F 6764 三洋電機   監理ポスト     6764 三洋電機   監理ポスト           監理ポスト     6764 三洋電機   監理ポスト 6777 santec 新規買停止     6777 santec 新規買停止           一般信用新規買停止 6777 santec 一般信用新規買停止           代用掛目規制:0%  6777 santec 代用掛目規制:0% 6793 山水電気   新規買停止     6793 山水電気   新規買停止           新規売停止     6793 山水電気   新規売停止           代用掛目規制:0%  6793 山水電気   代用掛目規制:0%           一般信用新規買停止 6793 山水電気   一般信用新規買停止 6811 クオンツ   一般信用新規買停止 6811 クオンツ   一般信用新規買停止           代用掛目規制:40%  6811 クオンツ   代用掛目規制:40% よろしくお願いします。

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

  • ベストアンサー
  • n-jun
  • ベストアンサー率33% (959/2873)
回答No.3

ANo.1です >ABC列のデータをDEF列の様に 表示できるように書いたのですが、値にするという事でしょうか? であれば、 Sub try()  Dim r As Range  With ActiveSheet   Set r = .Range(.[C2], .Cells(Rows.Count, 3).End(xlUp))  End With  With r.Offset(, -2).Resize(, 2)    .SpecialCells(xlCellTypeBlanks).Formula = "=A1"    .Value = .Value  End With End Sub こっちの方がいいのでしょうか?

esd827
質問者

お礼

458個のデータで確認しました。希望通りの結果が得られました。 ありがとう御座いました。

その他の回答 (3)

  • n-jun
  • ベストアンサー率33% (959/2873)
回答No.4

ANo.1です >ABC列のデータをDEF列の様に記述するマクロを教えてください。 もしDEF列がダミーで提示されているのでなければ、 Sub try2()  Dim r As Range  With ActiveSheet    Set r = .Range(.[C2], .Cells(Rows.Count, 3).End(xlUp))    .Range("D1:F1").Value = .Range("A1:C1").Value  End With  With r.Offset(, 1).Resize(, 3)    .Formula = "=IF(A2="""",D1,A2)"    .Value = .Value  End With End Sub こっちでしょうか。

esd827
質問者

お礼

458個のデータで確認しました。希望通りの結果が得られました。ANo.3回答と同じ結果が得られました。ありがとう御座いました。

  • merlionXX
  • ベストアンサー率48% (1930/4007)
回答No.2

esd827さん、新年おめでとうございます。 質問の意味を正しく理解しているかどうか自信がありませんが、 ABC列のデータをDEF列の様に記述するマクロということは、DEF列はあくまでサンプルで、ABC列を加工すればいいのでしょうか? それであれば以下をお試し下さい。 Sub test01() Dim x As Long, i As Long x = Cells(Rows.Count, "C").End(xlUp).Row For i = 1 To x If Cells(i, "A") = "" Then Cells(i, "A") = Cells(i - 1, "A") Cells(i, "B") = Cells(i - 1, "B") End If Next i End Sub

esd827
質問者

お礼

ありがとう御座いました。

esd827
質問者

補足

458個のデータで確認しました。希望通りの結果が得られました。 ありがとう御座いました。

  • n-jun
  • ベストアンサー率33% (959/2873)
回答No.1

With ActiveSheet    With .Range(.[C2], .Cells(Rows.Count, 3).End(xlUp))       .Offset(, -2).SpecialCells(xlCellTypeBlanks).Formula = "=A1"       .Offset(, -1).SpecialCells(xlCellTypeBlanks).Formula = "=B1"    End With End With こんな感じですか?

esd827
質問者

補足

私の質問の仕方が悪かったですね。 Q: ABC列のデータをDEF列の様に記述するマクロを教えてください。 よろしくお願いします。

関連するQ&A

専門家に質問してみよう