各行にさまざまな会社情報 (名前、住所、Web サイト、電話など) が含まれているデータベースがあります。各行には、3 つの連絡先とそれに対応する役職も含まれています。ヘッダーは、CEO 名、CEO 役職、名前 2、役職 2、名前 3、役職 3 です。問題は、CRM にインポートするときに、行ごとに 1 つの連絡先しか取得されないことです。元の行を複製し (会社情報はすべて維持)、各行に 1 つの連絡先名を設定する必要があるようです。これを実現できるようにしてください。本当にありがとうございます。
答え1
Excelマクロに基づいて、やりたいことを行うことができます。開発タブをオンにするExcel 2013 で、「相対参照を使用する」をオンにしてマクロを記録し、company、name2、title2 を新しい行に移動するループを作成します。次に、name3 と title3 に対して同じ操作を再度実行します。
マクロの手順は次のとおりです。
- 行ヘッダーがある場合はA2に移動します
- マクロの記録を開始する
- 3行目を強調表示した状態で行を挿入する
- 上から会社名をコピーして新しい行に貼り付けます
- name2、title 2を切り取って新しい行に貼り付けます
- 再度新しい行を挿入する
- かわいい名前3とタイトルを新しい行に貼り付けます
- 次にセルを a5 に移動します。
- これがマクロを繰り返すための終了ポイントになります。
記録されたマクロは次のようになります。
Sub Macro2()
'
' Macro2 Macro
'
'
ActiveCell.Offset(1, 0).Rows("1:1").EntireRow.Select
Selection.Insert Shift:=xlDown, CopyOrigin:=xlFormatFromLeftOrAbove
ActiveCell.Offset(-1, 0).Range("A1").Select
Selection.Copy
ActiveCell.Offset(1, 0).Range("A1").Select
ActiveSheet.Paste
ActiveCell.Offset(-1, 3).Range("A1").Select
Application.CutCopyMode = False
Selection.Cut
ActiveCell.Offset(1, -2).Range("A1").Select
ActiveSheet.Paste
ActiveCell.Offset(-1, 3).Range("A1").Select
Selection.Cut
ActiveCell.Offset(1, -2).Range("A1").Select
ActiveSheet.Paste
ActiveCell.Offset(1, 0).Rows("1:1").EntireRow.Select
Selection.Insert Shift:=xlDown, CopyOrigin:=xlFormatFromLeftOrAbove
ActiveCell.Offset(-1, 0).Range("A1").Select
Selection.Copy
ActiveCell.Offset(1, 0).Range("A1").Select
ActiveSheet.Paste
ActiveCell.Offset(-2, 5).Range("A1").Select
Application.CutCopyMode = False
Selection.Cut
ActiveCell.Offset(2, -4).Range("A1").Select
ActiveSheet.Paste
ActiveCell.Offset(-2, 5).Range("A1").Select
Selection.Cut
ActiveCell.Offset(2, -4).Range("A1").Select
ActiveSheet.Paste
ActiveCell.Offset(1, -2).Range("A1").Select
End Sub
複数回繰り返す必要がある場合は、別のマクロこのマクロを必要な回数だけ呼び出します。
Sub Test()
Call Macro2(3) 'run macro 3 times
End Sub