- ベストアンサー
Excel2007のマクロについての質問です。
Excel2007のマクロについての質問です。 利用者情報を、複数枚のシートに渡って作っています。 1枚目のシートの内容の一部を2枚目に複写するに際して、 「1枚目のA5のセルの内容を2枚目のA5に表示させる」 という内容のマクロを組みたいのですが、 カーソル位置をどこに置いておいてもその内容を実行させるには どういう内容のマクロを組んだらいいでしょうか? (現状のやり方ですと、カーソルを置いた位置で実行してしまうので、 表示がずれてしまいます) 内容が分かりにくかったらすみません。 よろしくお願いします。
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
作成例: sub macro2() worksheets("利用者情報(他社含)").range(selection.areas(1).address).value = worksheets("利用者情報(社外秘)").range(selection.areas(1).address).value end sub 作成例: Sub macro3() Dim h As Range For Each h In Selection.Areas Worksheets("利用者情報(他社含)").Range(h.Address).Value = Worksheets("利用者情報(社外秘)").Range(h.Address).Value Next End Sub あなたの質問: >「1枚目のA5のセルの内容を2枚目のA5に表示させる」 >という内容のマクロを組みたいのですが、 >カーソル位置をどこに置いておいてもその内容を実行させるには >どういう内容のマクロを組んだらいいでしょうか? どこのセルを選んでいても,A5をA5に表示させるマクロを実行したい,と書かれています。 あなたの返答: >構文エラーが出てしまったりしてうまくいきませんでした。 エラー? まさか,回答したマクロをただコピーしていきなり実行してエラーが出たのですか? シート名とか,ちゃんとあなたのブックに合わせて書き換えて実行しないと当然エラーになりますよ。
その他の回答 (2)
- nattocurry
- ベストアンサー率31% (587/1853)
(現状のやり方ですと、カーソルを置いた位置で実行してしまうので、表示がずれてしまいます) その「現状のやり方」を提示してみてはどうでしょうか?
お礼
ありがとうございます。 現状(というかこれまでの方法)の式を貼り付けます。 ----- Sub Macro1() ' ' Macro1 Macro ' ' Sheets("利用者情報(社外秘)").Select Selection.Copy Sheets("利用者情報(他社含)").Select ActiveSheet.Paste Link:=True End Sub ------ という感じです。 前のページのものをリンク貼り付けする、というマクロにしてみてますが、 これだと、実行するセルが選択しているものに限られてしまうので、 どこのセルでマクロを実行しても、当該セルにマクロが実行されるように コマンドを入れたいのです。
- keithin
- ベストアンサー率66% (5278/7941)
>1枚目のA5のセルの内容を2枚目のA5に表示させる たとえば sub macro1() worksheets("Sheet2").range("A5").value = worksheets("Sheet1").range("A5").value end sub などのように。
お礼
ありがとうございます。 教えていただいたように入力してみたのですが、 構文エラーが出てしまったりしてうまくいきませんでした。
お礼
度々お手数おかけしました。 最初にいただいた式は、一応こちらのブックに合わせて書き換えたんですが、 何故か駄目だったのです。 Sub macro3の方法で完璧にできました。 大変助かりました。ありがとうございました。