dポイントプレゼントキャンペーン実施中!

VBAはほとんど使った事ないのですが、どうかご教示いただけますでしょうか?

Excelのsheet上にボタンを配置し、最後に選択されたセルの行だけを移動するマクロを
書きたかったのですが、うまくいきません。

Sub ボタン1969_Click()
Cells(340, Selection.Column).Select
End Sub

どこかのセルを選択されていれば、列をそのままに上下移動として指定した行に移動してくれる
のですが、線や図形等のオブジェクトが選択されているとエラーが出てしまいます。
ESCキーを送る等の方法も試みたのですが、思うように動作しませんでした。

上記の説明では分かりづらいかもしれませんが、どうかよろしくお願い致します。

A 回答 (3件)

こういうことでしょうか?



If TypeName(Selection) = "Range" Then
 Cells(340, Selection.Column).Select
Else
 Cells(340, ActiveCell.Column).Select
End If

これは、基本技ですが、教えもらわないと、テキストにはたぶん出てこないと思います。

p.s. ActiveCell、というものは、そのオブジェクト (Worksheet,Workbook,Application)に存在しています。Applicationは、事実上一つしか実体はありませんが、WorksheetもWorkbookも複数ありますから、複数のActiveCellが存在することになります。
    • good
    • 0

こんにちは



Selectionを
ActiveWindow.RangeSelection
または
ActiveWindow.ActiveCell

に変える。
でどうでしょう。
    • good
    • 0

まず、マクロの自動記録を覚えましょう。


エクセル上での操作を、VBAに自動で変換してくれます。
分からなかったら、また質問してください。
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!