
こんにちは。
一枚のsheet1のA5からE5の1行分を、別のsheet2に転記したいと思っています。
条件としては、ボタンで、sheet1で入力したC5の値をsheet2のD列から探し、探した値の右横にsheet1のA5からE5の1行分を転記したいと思っています。
イメージとしては、ある顧客にたいし、問い合わせのあった内容を、その都度データベースとして別シートに蓄積していく感じです。
ただ、sheet2のD列には、顧客の名前、Eから K列には、顧客の基本情報を入れてあるので、L列から5列ずつを1回分の問合せ内容として、sheet1に入力したものを転記、蓄積したいと考えています。
どのようなマクロをかいたらよいか、ご教授願えますでしょうか。
よろしくお願いいたします。
No.2
- 回答日時:
こんにちは。
とても簡単ではありますがこんなのでも動くかと思います。
----------------------------------------------------------------------------------------------------
Sub aaa()
'//---シート名を指定-----------
Const SNM1 = "Sheet1"
Const SNM2 = "Sheet2"
'//----------------------------
Dim strKSK As String
Dim dblRETU As Double
Dim dblHARU As Double
'//一致する社名を検索
strKSK = Sheets(SNM1).Range("C5")
intRETU = Application.WorksheetFunction.Match(strKSK, Sheets(SNM2).Range("D:D"), 0)
'//データを貼り付ける列を取得
Sheets(SNM2).Range("D" & intRETU).Select
Selection.End(xlToRight).Select
intHARU = ActiveCell.Column + 1
'//貼り付け
Sheets(SNM1).Range("A5:E5").Copy
Sheets(SNM2).Cells(intRETU, intHARU).Select
ActiveSheet.Paste
End Sub
----------------------------------------------------------------------------------------------------
ちなみに「 '//データを貼り付ける列を取得」では連続するデータの最終列番号を取得していますので途中に空白などが存在する場合にはうまく動きません。
こちらも認識違いなどあるかもしれないので何かありましたら補足下さい。

ありがとうございます!行けそうな感じがします。ただ、空白がある場合もあるので、もし空白がある場合があればどのようにさせていただいたらよろしいでしょうか?
マクロを勉強し始めたばかりで、やっとボタンで印刷したり、特定のところにアクティブセルを移動したりと覚えたばかりで。お恥ずかしいことです。
たまに、うっていると、コンパイルエラーとか出たりして、赤くなっていますが、無視して大丈夫でしょうか?
No.1
- 回答日時:
こんにちは
自作なさるなら、おおむね以下の手順で可能だと思います。
作らない場合は、どなたか親切な方が作ってくださるのを待てばよろしいかと思います。
1)顧客リストとなっている列(D列)から対象となる行を特定する
ワークシート関数のMATCHなどを利用してもよいですし、リストを順にループで照合していってもできるはずです。
2)対象行の右端の列を求める
対象行の右側に随時追加していくものと仮定すれば、現在使われている最大列を取得する必要があります。
ご存知とは思いますが
Cells(対象行, Columns.Count).End(xlToLeft).Column
のような形で求めることが可能です。
3)書き込み開始する列を求める
L(12)、Q(17)・・・という5列おきの列が書き込みの最初の列となりますので、2)で求めた列より大きな列数で該当する列を計算します。(5で除して2余る列)
4)行と列を決定できたので、必要なデータ(シート1のA5~E5)を求めた位置にコピーします。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
Excelで並び替え後にア行...
-
Excel2017 フィルタ昇順並びがA...
-
【マクロ】【画像あり】関数が...
-
エクセルで行の高さ及び列幅の...
-
【マクロ】並び替えの範囲が、...
-
EXCELで日付を比べ3か月以内の...
-
エクセル 複数行ある同一商品...
-
VBA 配列で型がエラーになります。
-
文字列を比較し、相違するフォ...
-
VBA 複数行の検索及び抽出
-
Excel 最小二乗法 二次関数
-
average関数の範囲指定について
-
行の一番右のデータセルと同じ...
-
プルダウンに【なし、平均、デ...
-
急ぎ!色のついたセルを非表示...
-
【Excel】数式の参照範囲を可変...
-
エクセルのマクロで別のシート...
-
EXCEL 最終行のデータを他のセ...
-
時間の重複チェック
-
行一括削除を早く行う、こんな...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
Excel2017 フィルタ昇順並びがA...
-
Excelで並び替え後にア行...
-
エクセルで行の高さ及び列幅の...
-
【マクロ】【画像あり】関数が...
-
【マクロ】並び替えの範囲が、...
-
基準日以前のデータを範囲を指...
-
【Excel VBA】指定した行の最大...
-
エクセルの時刻のカウントが出...
-
EXCELで日付を比べ3か月以内の...
-
急ぎ!色のついたセルを非表示...
-
エクセル関数について
-
プルダウンに【なし、平均、デ...
-
EXCEL 最終行のデータを他のセ...
-
文字列を比較し、相違するフォ...
-
excel / ピポッド 日数を出したい
-
VBA 配列で型がエラーになります。
-
【Excel】数式の参照範囲を可変...
-
VBA 複数行の検索及び抽出
-
オートフィルタ後のデータから...
-
時間の重複チェック
おすすめ情報
また、値だけを貼り付けらる場合は何らかの指定をしないといけないかと思いますが、ご教授願えますでしょうか。
よろしくお願いいたします。