[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]
『カーソルの位置より下に2行右に5列挿入したい』(困った)
マクロの記録の「相対参照」ボタンを使えばマクロの記録で作成出来ると思います。
C6セルをアクティブにした状態で、マクロの記録を開始します。 記録終了ボタン(■)の隣にある、相対参照ボタンが押されている状態にして下さい。↑右側に有るボタン。この図は、押されていない状態です。 下に2行・右に5列の範囲(C6:G7の範囲)を選択して 右クリック→挿入 記録終了
です。
完成したコードと 相対参照ボタンを押してない状態で記録したコードを見比べて貰うと 違いも分かりやすいと思います。
(HANA)
HANA様
ありがとうございます。
やってみたのですが???です。
Sub Macro1()
Range("C6:G7").Select
Selection.Insert Shift:=xlDown
End Sub
自動記録ではこの様なコードでした。
挿入位置はC6ばかりではないので使えません。
わたしが考え違いをしているのでしょうか?
その結果では >記録終了ボタン(■)の隣にある、相対参照ボタンが押されている状態にして下さい。 が実行されていません。
1.相対参照ボタンの位置は確認出来ていますか?
2.クリックするたびに凹んだ状態と、そうでない状態が切り替わりますが
それは確認出来ますか?
3.凹んだ状態にして
Range("C6:G7").Select
Selection.Insert Shift:=xlDown
の動作を記録にとって下さい。
現在とは、違ったコードが出来上がります。
1→3の内、確認できない所が有る場合は どの部分で止まっているか教えて下さい。
(HANA)
HANA様 混乱しています。 該当するブックで行うと相対参照ボタンが押されているか不明です。 それで新たに新しくダミーのデータで試そうとしたら記録のボタンが出ません。 なぜ???
>相対参照ボタンが押されているか不明です。 これはどう言った状況でしょう? 「クリックしても、表示が変わらないので分からない」 と言う事なのでしょうか・・・?
相対参照ボタンは、押すたびに切り替わります。
C6セルをアクティブに。 C6:G7セルを選択して 挿入。 相対参照ボタンを押す。 C6セルをアクティブに。 C6:G7セルを選択して 挿入。
を一連で記録にとってみて下さい。
先に載せてくれたコードと、違う方が「相対参照で記録されているコードになります。
>記録のボタンが出ません。 マクロの記録を開始してから、 メニューの表示(V)→ツールバー(T)を開いてみて下さい。 「記録終了」と言うツールバーが有ると思いますので それを 表示 してみて下さい。
(HANA)
HANA様
ボタンが出ました。
自動記録で取れました。何となく分かってきました。
ActiveCell.Offset(7, 1).Range("A1").Select
色々試して 記録で出来たコードと 記録をとった時の操作 マクロを実行した時の結果 を確認してみて下さい。
相対参照ボタンも使える様に成ると 記録マクロだけでも出来ることが増えますので やってみてもらえると良いと思います。
また、せっかくですので タイトルの件に関して マクロが出来たらのせてみて下さい。
(HANA)
HANA様 やっとできました。 業務をしながらははかどりません。 後一つ良いですか?、選択した状態になるのですが・・
Sub Macro2()
ActiveCell.Offset(1, 0).Range("A1:E2").Select
Selection.Insert Shift:=xlDown
End Sub
>業務をしながらははかどりません。 慣れるとそれでも、手早く出来るように成ると思いますので それまではこつこつやってみて下さい。
>選択した状態になるのですが・・ ○○.Select で 選択しているので 選択した状態で終わって仕舞いますよね。。。
手作業でやっても 選択した状態で終わると思います。 最初のセル(C6セル)をアクティブにして終わりたいなら 再度、C6セルを選択しますよね?
記録して貰うと
Sub MacroH3()
ActiveCell.Range("A1:E2").Select
Selection.Insert Shift:=xlDown
ActiveCell.Select
End Sub
こうなります。
アクティブにしたいセルがどこか有るなら、 それも含めて記録にとってみて下さい。 (相対参照ボタンが押されている状態で記録して下さい。)
その他の考え方としては「セレクトしなければよい」んです。
ActiveCell.Range("A1:E2") このセル範囲を選択して、
選択したセル範囲を.Insert Shift:=xlDown
ですから、
.Insert Shift:=xlDown するセル範囲は ActiveCell.Range("A1:E2") ですよね。
って事で、Select Selection を無くして、続けて
ActiveCell.Range("A1:E2").Insert Shift:=xlDown
と書くと、挿入だけがされると思います。
マクロの記録は、やった動作をそのまま記録にしてくれますので 本来選択する必要のない所でも 一旦 .Select され その後 Selection.・・・ と続きます。 そう言われて操作を思い返して見ると「選択」してますものね。
多くの場合、今回の様に短くすることが出来ますので 今後、マクロの記録を使う様な事が有る時には 修正の方もやってみてもらえると良いと思います。
(HANA)
HANA様 おはようございます。お世話になります。 自動記録はよく使うのですが、どれが必要か不要かよく分かりません。 消して動かなければ、アッこれは要るんだ!といった具合に使っています。 セレクト・アクティブも似ているような・・・違っているような・・・ 今回のコレ→Offset(1, 0) 重要な気がしても消しても大丈夫なんだと思いいじっています。 そして必要な時もあるかも知れないけど今回は要らないなと思いました。 Select・Selectionも然りでした。 今後もお世話になると思いますがお会いした時はよろしくお願いします。 (困った)
>消して動かなければ、アッこれは要るんだ!といった具合に使っています。 基本的にはそれで良いと思います。
プロパティなんかは、「その時たまたま上手く行った」なんて事が割と有ると思いますので ヘルプで確認してから 何を残すのか等 決めて貰うのが良いと思いますが。
>セレクト・アクティブも似ているような・・・違っているような・・・ マクロから離れて考えて見るとどうですか? 例えば、A1:C10の範囲を選択します。 その時のアクティブセルは。。。?
単独セルを選択する場合、選択したセルがアクティブセルなので両者が一致しますが 複数セルを選択した場合、選択しているセル番地とアクティブなセル番地は異なって来ます。
Select・Selection は、積極的に無くして行ってみて下さい。 マクロの記録から色々削って、たくさん怒られて下さい。 参考書を見る時にも、下地が有ってから見るのと 何もない状態で見るのでは 受け止められる情報量が変わってくると思います。
(HANA)
[ 一覧(最新更新順) ]
YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki.
Modified by kazu.