Excel VBA質問箱 IV

当質問箱は、有志のボランティア精神のおかげで成り立っています。
問題が解決したら、必ずお礼をしましょうね。
本サイトの基本方針をまとめました。こちら をご一読ください。

投稿種別の選択が必要です。ご注意ください。
迷惑投稿防止のため、URLの入力を制限しています。ご了承ください。


7721 / 13644 ツリー ←次へ | 前へ→

【37252】書式なしコピー t29x0479 06/4/27(木) 9:37 質問[未読]
【37253】Re:書式なしコピー Statis 06/4/27(木) 9:49 発言[未読]
【37254】Re:書式なしコピー t29x0479 06/4/27(木) 9:51 質問[未読]
【37256】Re:書式なしコピー Statis 06/4/27(木) 11:03 発言[未読]
【37255】Re:書式なしコピー Kein 06/4/27(木) 10:36 回答[未読]

【37252】書式なしコピー
質問  t29x0479  - 06/4/27(木) 9:37 -

引用なし
パスワード
   書式なしで、数式を下にコピーするとき、いつもマウスで右クリックして範囲を選び、書式なしコピーをしています。

この操作をマクロにしたいのですが、操作をキーボードマクロで記録すると、

Selection.AutoFill Destination:=Range("B1:B29"), Type:=xlFillValues

のようになりました。範囲のところが毎回変わるので、現在選択している範囲に対して実行したいのですが、どのようにしたらいいのでしょうか?

あと、下にコピーだけでなく、右にコピーもやりたいです。

もし、ご存じのかたがいらっしゃいましたら、教えていただきたいと思います。

【37253】Re:書式なしコピー
発言  Statis  - 06/4/27(木) 9:49 -

引用なし
パスワード
   ▼t29x0479 さん:
>書式なしで、数式を下にコピーするとき、いつもマウスで右クリックして範囲を選び、書式なしコピーをしています。
>
>この操作をマクロにしたいのですが、操作をキーボードマクロで記録すると、
>
>Selection.AutoFill Destination:=Range("B1:B29"), Type:=xlFillValues
>
>のようになりました。範囲のところが毎回変わるので、現在選択している範囲に対して実行したいのですが、どのようにしたらいいのでしょうか?
範囲とは「Range("B1:B29")」のとこですか?
「Selection」の位置は「Range("B1")」で変更ありませんか?

>あと、下にコピーだけでなく、右にコピーもやりたいです。
マクロの記録で出来ますよね?(上記が判れば)

【37254】Re:書式なしコピー
質問  t29x0479  - 06/4/27(木) 9:51 -

引用なし
パスワード
   先頭セルのB1も最後のセルのB29も毎回変わります。

選択範囲から自動で範囲を取得するようにしたいと思っています。

よろしくお願い致します。

▼Statis さん:
>▼t29x0479 さん:
>>書式なしで、数式を下にコピーするとき、いつもマウスで右クリックして範囲を選び、書式なしコピーをしています。
>>
>>この操作をマクロにしたいのですが、操作をキーボードマクロで記録すると、
>>
>>Selection.AutoFill Destination:=Range("B1:B29"), Type:=xlFillValues
>>
>>のようになりました。範囲のところが毎回変わるので、現在選択している範囲に対して実行したいのですが、どのようにしたらいいのでしょうか?
>範囲とは「Range("B1:B29")」のとこですか?
>「Selection」の位置は「Range("B1")」で変更ありませんか?
>
>>あと、下にコピーだけでなく、右にコピーもやりたいです。
>マクロの記録で出来ますよね?(上記が判れば)

【37255】Re:書式なしコピー
回答  Kein  - 06/4/27(木) 10:36 -

引用なし
パスワード
   右クリックイベントを使えば良いでしょう。コードは以下のようになります。
数式が入力されているセルを選択し(もちろん入力後に選択しても可)
そのままコピーしたい範囲を選択すると、数式のあるセルが全選択範囲の
先頭(つまりアクティブセル)になります。その状態で全選択範囲内の任意
の位置で右クリックすると、自動的にフィルコピーできます。

Private Sub Worksheet_BeforeRightClick(ByVal Target As Range, _
Cancel As Boolean)
  If ActiveCell.HasFormula = False Then Exit Sub
  If Target.Count < 2 Then Exit Sub
  Cancel = True
  ActiveCell.AutoFill Target, xlFillValues
End Sub

【37256】Re:書式なしコピー
発言  Statis  - 06/4/27(木) 11:03 -

引用なし
パスワード
   こんにちは

>先頭セルのB1も最後のセルのB29も毎回変わります。
わざわざマクロを組む必要性が無いような気がしますが。
なぜなら、最初に「AutoFill」したいセルを選んで範囲分Fillするだけですから。
Fillする範囲が何かの条件で決められているのなら話し間違いますが。

7721 / 13644 ツリー ←次へ | 前へ→
ページ:  ┃  記事番号:
2610219
(SS)C-BOARD v3.8 is Free