アプリ版:「スタンプのみでお礼する」機能のリリースについて

エクセル2013です

Range("B:C").Delete ' 列「B ~ C」を削除
Range(Columns(2), Columns(3)).Delete ' 列「B ~ C」を削除
Range("D:D").Delete ' 列「D」を削除

ですが

で変数を使って

Range(Columns(17), f).Delete

ですと動作しません。

ウォッチで見るとfには21がセットされています。

17列目から21列目までの5列が列削除される予定です。

どうもRangeとCellsで片方が変数の場合記述がわかりません。

よろしくお願いします。

A 回答 (2件)

ウォッチで見るとfには21がセットされています。



Range(Columns(17), 21).Delete

で動作しないものはどうにもならないでしょう。
そういう仕様なんですから。

Range(Columns(17), Columns(21)).Delete

で動作することはわかりますよね?

Range(Columns(17), Columns(f)).Delete

としましょう。
    • good
    • 1
この回答へのお礼

変数はかこってはいけない
と思っていました。
ありがとうごじました。

お礼日時:2014/07/24 21:35

こんばんは!



>変数を使って
>Range(Columns(17), f).Delete
>ですと動作しません。

>ウォッチで見るとfには21がセットされています。
>17列目から21列目までの5列が列削除される予定です。
を考慮して、単純に

Sub Sample1()
Dim f As Long
f = 21
Range(Columns(17), Columns(f)).Delete
End Sub

みたいな感じではダメですか?m(_ _)m
    • good
    • 0
この回答へのお礼

教えていただいた内容で
思っていたように動作しました。
処理の都度、変数fは変化しますが
きちんと動作しています。
ありがとうございました。

お礼日時:2014/07/24 21:37

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