
No.3ベストアンサー
- 回答日時:
変数をとればよいです。
>range("A:H " & activecell.row).select
楽なのか面倒なのかは知りませんが、1行ずつ確認するということが、マクロの基本ですよね。
オブジェクトのプロパティに、直接、他のオブジェクトを入れることには、多少の問題があります。必ずしも、そのプロパティの中で、二重のプロパティを受け付けるとは限らないから、そういう癖は、ワンランク上を目指すなら辞めて、変数を使いこなすことですね。
--
Dim i As Long
i = ActiveCell.Row '←オブジェクトからプロパティを取るのは一回で済みます。
Range("A" & i, "H" & i).Select '←VBAの機能で、型のキャスティングが働いいます。(イレギュラー)
キャスティング
"A" & i → 数値が文字化している
これを、Range(Cells(i,1), Cells(i,8)) にしたら、キャスティングはなくなりますが、今度は、RangeのプロパティとCellsとは、結びつきがありませんので、RangeとCells をWith ActiveSheet で、結ばなくてはなりません。
また、With Worksheets("Sheet1") として、シートを特定化すれば、エラーが発生してしまいます。なるべく、一本、筋を通してあげなくてはならいわけです。特殊な選択をする時に、一本で通してあげないと、上手く行かないことがあります。
--
私自身は、こんな書き方をしています。真似る必要はありません。
ActiveCell.EntireRow.Range("A1:H1").Select
長いコードの時に、位置関係を明示的に残しておくためです。
簡単なようでいて、その中でしていることはむつかしい物が存在していることがあります。
なお、識別子(Range, Cellsなど、VBEditor上で色が変わるところ)は、大文字・小文字は区分けしてください。それをおろそかにしていると、長い間には失敗をすることがあります。他の言語に精通している人なら、なおさらなのです。VBAは、その点曖昧なのです。必ずしも、最初の識別子が、必ずしも大文字でないこともあります。以下は、武藤玄氏のサイトで、私は、全面的に賛成しているわけではありませんが、参考になる部分が多いです。変数のプレフィックスは、積極的に使用することはありませんが、変数の2バイト文字は辞めましょう。
参考URL:http://home.att.ne.jp/zeta/gen/excel/c04p15.htm
No.1
- 回答日時:
cells(activecell.row, "A").resize(1, 8).select
とか。
range("A" & activecell.row & ":H" & activecell.row).select
とか。
ごく丁寧に書くと(参考に異なる2つの書き方を使って書いてあります)
with worksheets("シート名")
.range(.range("A" & activecell.row), .cells(activecell.row "H")).select
end with
とかになります。
application.intersect(range("A:H"), activecell.entirerow).select
とかでも同じ結果を得ますね。
あまりお薦めしませんが一応参考に
range("A" & activecell.row , "H" & activecell.row).select
とかでも,可能は可能です。
#この書きぶりで楽しようとして失敗して寄せられるご相談は結構多いです。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) データのある範囲を選択するVBAについて 2 2022/09/03 00:20
- Excel(エクセル) エクセルVBA 複数行にまたがっている選択を判定するには 2 2023/05/21 21:54
- Excel(エクセル) マクロ セルの選択 5 2022/08/12 22:47
- Excel(エクセル) VBA オリジナル関数で選択セルの合計を作成したい 3 2023/03/19 19:45
- Excel(エクセル) excelVBAについて。 8 2022/12/11 13:47
- Excel(エクセル) ExcelVBAについて。 2 2022/12/10 20:08
- Excel(エクセル) マクロだと数式が表示される 2 2022/09/10 14:48
- その他(Microsoft Office) 選択行の列範囲に二重線を引く 3 2022/06/08 12:21
- Excel(エクセル) 一つのセルに複数の関数を入力する方法 4 2022/09/30 13:42
- Visual Basic(VBA) A列の最終行に合わせて範囲をコピー 2 2022/09/04 19:10
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
入力データをマクロで消去した...
-
EXCELのセルへ、デジタル時計を...
-
Excel VBA --- コマンドボタ...
-
エクセルVBAでセルに入力したパ...
-
エクセルでマクロ実行中に任意...
-
ローマ字→カタカナへ変換(エク...
-
コマンドボタンがあるかどうか...
-
Accessのコマンドボタンの立体...
-
複数ファイルにある特定のシー...
-
マクロボタンを作ってのマクロ...
-
Wordで「原稿用紙○枚」を換算す...
-
Excel:コマンドボタンの移動
-
PPTのコマンドボタンがクリック...
-
エクセルで複数のシートをまと...
-
スクロールしてもボタンを常に...
-
Wordの画面を左右にスクロール...
-
エクセルでマクロボタンを動か...
-
エクセルのマクロ機能で前のシ...
-
押したボタンの位置取得(共通の...
-
=CELL("filename")で取得したフ...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
入力データをマクロで消去した...
-
VBScriptでExcel(2019)上のデー...
-
VBAアクティブセル行で列範囲選択
-
python fbprophetについて
-
マクロ・複数シートに適用する...
-
VBA OLEObject テキストボック...
-
ローマ字→カタカナへ変換(エク...
-
エクセルVBAでセルに入力したパ...
-
コマンドボタンを押すたびに大...
-
Excel:コマンドボタンの移動
-
スクロールしてもボタンを常に...
-
マクロ 実行ボタンを押さずに...
-
excelに貼り付けた数値が勝手に...
-
Excelを開いた時に表示さ...
-
押したボタンの位置取得(共通の...
-
Excel VBA のdebug(F8キー) が...
-
エラーになってないのにVBA...
-
PPTのコマンドボタンがクリック...
-
EXCELのセルへ、デジタル時計を...
-
複数ファイルにある特定のシー...
おすすめ情報