人力検索はてな
モバイル版を表示しています。PC版はこちら
i-mobile

簡単なエクセルマクロ(私にとっては簡単でない・・)にご協力くださいませ。

シートが2つあります。
「カテゴリ」「Aシート」という名前です。

「カテゴリ」でコピー(CTRL+C)を選択すると、

「Aシート」の「N2」セルから下方向にコピーした値が順番に貼り付けられるようにしたいのです。

ただ、問題がありまして、N1セルには「カテゴリ」という言葉が入っています。N2から下方向に式がずっと入っています。

「カテゴリシート」でコピーする種類はいつも「値」です。

マクロ実行時に一番初めにN2に貼り付けられ、次に同じマクロを実行したときは、N列の値の入っている一つ下の行に貼り付けていくようにしたいのです。

例(すでにマクロが実行されて、N2には値が入っているとします)

「Aシート」
N
1 カテゴリ(文字列)
2 123456(値)
3 =a+b(式)

この場合、SelectionChangeイベントになるのでしょうか?
マクロを実行し、「カテゴリ」シートのどこかのセルに入っている、22222をコピーしたとすると、
「Aシート」のN3に22222が上書きされるようにしたいのです。

ぜひお教えくださいませ。
よろしくお願いいたします。

●質問者: naranara19
●カテゴリ:コンピュータ 科学・統計資料
✍キーワード:N2 N2 イベント エクセル カテゴリ
○ 状態 :終了
└ 回答数 : 1/1件

▽最新の回答へ

1 ● Mook
●60ポイント ベストアンサー

セルがコピーされたらというイベントはないので、カテゴリシートでセルを選択し、

マクロのショートカットを使用して実行してはどうでしょうか。


標準モジュールに下記を下記、Alt+F8でマクロのウィンドウを開き、下記のマクロを選択して「オプション」を選びます。

ショートカットキーに適当なキー(例えばN)を入力してください。


「カテゴリ」シートでセルを選択し(複数選択してもOK)、Ctl+N(上記でNを指定した場合)を押せば処理が実行されます。

Sub myCopyToN()
 Dim r As Long
 
 If ActiveSheet.Name <> "カテゴリ" Then Exit Sub
 
 With Worksheets("Aシート")
 For Each rg In Selection
 For r = 2 To Rows.Count
 If InStr(.Cells(r, "N").Formula, "=") = 1 Or IsEmpty(.Cells(r, "N")) = True Then
 .Cells(r, "N").Value = rg.Value
 Exit For
 End If
 Next
 Next
 End With
End Sub

http://www.relief.jp/itnote/archives/001492.php

◎質問者からの返答

「セルがコピーされたらというイベントはない」という部分で、わけのわからないことを言って失礼いたしました。

完璧に動作いたしました。

大変感謝します。

すぐに完璧にやっていただいたのに、すごく丁重な文章で、こちらが恐縮してしまいます。

本当にありがとうございました。

感謝します。

関連質問


●質問をもっと探す●



0.人力検索はてなトップ
8.このページを友達に紹介
9.このページの先頭へ
対応機種一覧
お問い合わせ
ヘルプ/お知らせ
ログイン
無料ユーザー登録
はてなトップ