• 締切済み

ペーストすると実行されるマクロを作成したい(初心者

エクセルとは別のソフト(画像解析ソフト等)からデータを クリップボードへコピーし、それを”Sheet1”の「B2」にペーストします。 このペーストした時に「Macro01」というマクロが自動的に実行されるようにしたいのですが、 どのように記述すれば作動するでしょうか? 色んなHP等を探してみたのですが見当たりません。 考えてみたのですが私には考えつきませんでした・・・。 どなたかご教授下さい@@; また、コピーしてくるデータは毎回数値が違います。 ペーストした時に「B3」に入る値のみ変わりませんが、 内容に” ”←この記号が入っているせいか、上手く指定できないようでした。 一文の中で所々、毎回変わらない文字(単語)というのはあります。 よろしくお願いします。

みんなの回答

  • Wendy02
  • ベストアンサー率57% (3570/6232)
回答No.2

こんばんは。 簡単な説明をすると、 Application.OnKey でショートカットキーや右クリックメニュー(Cell)に、マクロ名を置いて、クリップボードから、ペーストさせ、その後に続くようなコードを書けばよいです。 「^v」 (Ctrl + V)以外のほうがよいです。^v で作ると、一般の貼り付けの場合と、特殊な貼り付けの判定を、クリップボードの中で調べなくてはならなくなります。 もし、内容がテキストのみなら、DataObject(UserFormを一旦作成せいすれば、参照設定されますから、UserFormを削除しても残ります) を使って、ClipBoard からテキストを取り出して、それを加工して張り付ければできます。

  • onlyrom
  • ベストアンサー率59% (228/384)
回答No.1

>それを”Sheet1”の「B2」にペーストします >ペーストした時に「B3」に入る値のみ変わりませんが、 B2のみにペーストするのではなくて B2を起点としてペーストするのですね? Sheet1のChangeイベントにコードを書けばいいです。 以下、サンプル '------------------------------------------------ Private Sub Worksheet_Change(ByVal Target As Range)   If Not Intersect(Target, Range("B2")) Is Nothing Then     Call Macro1   End If End Sub '----------------------------------------------------- 以上。

関連するQ&A

  • エクセルのマクロについて

    シートををコピーし、書式だけをペーストするマクロを作りました。 すると、クリップボードの中にコピーした内容が残ってしまっています。 マクロ終了時にクリップボードの中を空にするマクロがあったら教えて下さい。

  • *二つのマクロを両方実行させたいです*(初心者)

    *二つのマクロを両方実行させたいです*(初心者) VLOOKUPのように、二つのSHEETで、それぞれ値が一致するものがあればもうひとつのSHEETのほうに値を自動的に表示させる、という仕組みをマクロで作ってみました。 (尚、今回はその中身の質問ではありません) 下記の二つの式は、それぞれは機能する、ということは確認済みなので、中身には問題ないはずなのですが、 これら二つを同じエクセルファイルに、Macro1,Macro2と設定して、実行しても、Macro2のほうしか実行されません。 1のほうは、実行を押しても作動しません。 尚、Macro2を消去すると、1のほうは正常に実行されます。 このMacro1と2は、一つにまとめても問題ありません。 (何にせよどちらも実行されればどんな形でも構いません) 初心者のため、説明が下手ですが、どなたか教えていただけないでしょうか。 どうすれば、下記の1と2を両方実行することができるのでしょうか。 下記が、私の作った式(Macro1と2です) Sub Macro1() For s = 2 To 70 '処理するSheet1の行数範囲 b = Sheets("Sheet1").Cells(s, 2) 'bにB列の値を代入 For u = 2 To 70 '検索する元データの行数範囲 If Sheets("MASTER").Cells(u, 1) = b Then 'MASTERのA列の値とSheet1のB列が一致した場合 w = Sheets("MASTER").Cells(u, 2) 'wにB列の値を代入 Sheets("Sheet1").Cells(s, 3).Value = w 'Sheet1のC列に値を入力 Exit For '値が見つかったのでForを終了 End If Next Next End Sub Sub Macro2() For s = 2 To 70 '処理するSheet1の行数範囲 b = Sheets("Sheet1").Cells(s, 2) 'bにB列の値を代入 For u = 2 To 70 '検索する元データの行数範囲 If Sheets("MASTER").Cells(u, 1) = b Then 'MASTERのA列の値とSheet1のB列が一致した場合 w = Sheets("MASTER").Cells(u, 2) 'wにB列の値を代入 Sheets("Sheet1").Cells(s, 3).Value = w 'Sheet1のC列に値を入力 Exit For '値が見つかったのでForを終了 End If Next Next End Sub

  • マクロ 同じフォーマットのそれぞれのファイルから データをコピーペーストする方法

    お世話になります。 マクロを使って 共通フォーマットの複数のファイルのデータを 別なエクセルファイルに コピーペーストするやり方を教えていただけないでしょうか。 複数のファイルは共通のフォーマットです。しかし保存名と内容は違っています。フォーマット化されていない部分のデータをコピーし、仮にAというファイルの一部分に貼り付けるというものです。 具体的には 名前:●●●   ←この●●●だけをコピーする ファイルA   名前:□□□   ←●●●データを□□□位置にペースト この作業を繰り返すというものです。 個人用マクロブックにマクロを作ってみたのですが作成したときのファイルのデータまで記録されていて マクロが動いても その時のデータが張り付いてしまって困ります。 ●●●のところを「現在開いているエクセル」とか命令すればいいのでしょうかね・・・。 いいやり方を教えて下さい。

  • EXCELのマクロがわかりません・・・

    現在、A列にデータが並んでいるのですが、 これを7つ区切り(例:A1~A7、A15~A21)にして、 別シートに用意した表に行列を入れ替えて、 貼り付けるマクロを作っているのですが、 なにぶんVBは素人ですので、よくわかりません。 今作ろうとしているマクロは、 「元データ」セルのA1からA7までをコピーして、 「作成データ」セルのB2を起点として、 コピーした内容の行列入れ替えを行い貼り付け、 以後、「元データ」のコピー範囲を7つづつ 下にずらし、「作成データ」の貼り付け起点を 1つづつ下にずらして、「元データ」のA列の 最後までくりかえすものです。 必ず「Range」文で引っかかってしまうのですが、 何か構文的におかしいでしょうか? かなり急ぎですので、 わかる方、よろしくお願いしますっ!! 下に、作成したマクロを貼り付けます。 Sub Macro3() ' ' Macro3 Macro ' マクロ記録日 : 2005/12/5 ユーザー名 : *** Worksheets("元データ").Activate 開始行 = -6 終了行 = 0 ペースト行 = 0 Do 開始行 = 開始行 + 7 終了行 = 終了行 + 7 ペースト行 = ペースト行 + 1 開始セル番号 = "A" & 開始行 終了セル番号 = "A" & 終了行 ペーストセル番号 = "B" & ペースト行 Range("開始セル番号:終了セル番号").Select Selection.Copy Sheets("作成データ").Select Range(ペーストセル番号).Select Selection.PasteSpecial Paste:=xlAll, Operation:=xlNone, SkipBlanks:=False _ , Transpose:=True Loop End Sub

  • Windowsのクリップボードでコピー/ペーストする時複数コピーした中から選択してペーストしたい

    こんにちは クリップボードでコピー/ペーストする時、複数コピーしたものから一つを選んでペーストするやり方がわかりません。今は、例えばAをコピーして、別の場所にAを貼り付け、次にBをコピーしてそれをまた別の場所に貼り付け、再度Aをコピーしてまた貼り付けるという作業をしています。これを、最初にAとBをあらかじめコピーしておき、ペーストする段階でAを選んだりBを選んだりして貼り付けるというやり方に変えたいのです。(私が何をやりたいのか分かっていただけたかな?) よろしくお願いします

  • エクセルマクロ コピーして数値を置き換えてペースト

    下記内容のマクロをご教示願います。 ①「元データ」シートの最下行のデータをコピーして「変換データ」シートの最下行の次行 にペースト ②その際、以下のルールでペースト 0~9.9→1(データが0~9.9の場合、1に置き換える。以下同じ) 10.0~19.9→10 20.0~29.9→20 ・ ・ ・ 90.0~99.9→90 100.0以上→100 ※データは0.1刻み(小数点第1位が「0」の場合は整数で表記)

  • エクセル コピー ペースト 形式 すべて  マクロ

    エクセルの同じシート内で、セルをコピーし、他のセルにペーストするマクロを利用しております。 Worksheets("data").Range("A45").PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _ :=False, Transpose:=False しかし、このマクロでは、ペーストする際に、「形式を選択して貼り付け」の「値」のみが貼り付けられてしまいます。 数式を残した状態でペーストしたいので、「すべて」の状態で貼り付け希望です。 なお、このシートは表示しない状態で使用するため、シートを選んでセルを選択してコピーする方法はできません。(マクロでエラーとなってしまいます。) どうか、よろしくお願いします。

  • PhotoShopでのコピー&ペーストがうまく出来ません。

    PhotoShopで、クリップポードにある画像をペーストしようとすると、前にペーストした画像が貼り付けられてしまいます。 PhotoShopでこぴーした画像はちゃんと貼り付けられるので、どうも、PhotoShop自身が、普通のクリップボードとは別に、PhotoShopだけのクリップボードを使っているみたいです。 どうしたら、他の画像ソフトからクリップボードにコピーした画像をPhotoShopに貼り付けられますか?

  • エクセルのマクロは超初心者のため、難しいことは全く分かりません。

    エクセルのマクロは超初心者のため、難しいことは全く分かりません。 よろしくお願いいたします。  m(_ _)m 同じbook内に複数のsheetがあります。 そのsheetは同じ型式のデータベースなのですが、sheetによって行が違います。 そのsheetのデータを一つのシートにコピー(一番上の先頭行はデータベースの名称でコピーしたくありません) をして一覧でまとめたいのですが、方法がわかりません。 sheet数が多いので、一つずつコピー→ペーストをするのが大変なので…どうぞよろしくお願いします。

  • コピー、ペーストができなくなり困っています。

    コピー、ペーストができなくなり困っています。 思い当たる節としては、jwardのアップデートのポップアップが出たので、 普段から使っていなかった為、プログラムの追加と削除で削除しました。 テキストをコピーし、ペーストすると半角スペース?がペーストされます。 クリップボードの中をみるとコピーは蓄積されているようなのですが、ペーストすると半角スペースと なってしまいます。(たまに普通にコピー、ペーストができる時がありますが条件は分かりません) os:xp sp2です。 ご経験者の方、その他お詳しい方、よろしくお願いします。

専門家に質問してみよう