
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で質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
microsoft office for mac につ...
-
エクセルの式がわかる方がおら...
-
office2019 のoutlookは2025年1...
-
Microsoft Officeを2台目のPCに...
-
大学のレポート A4で1枚レポー...
-
パソコンWindows11 Office2021...
-
Office2021を別のPCにインスト...
-
Microsoft365、ページ設定がで...
-
マイクロソフト オフィスのサポ...
-
エクセル 日付順に並べてかえた...
-
Microsoft Office
-
Officeを開くたびの「再起動メ...
-
Office2024インストール後の疑問点
-
パソコンを買い替える際、前の...
-
officeソフトについて教えてく...
-
Excel テーブル内の空白行の削除
-
Microsoft365について
-
表の作成について
-
officeソフト 本名変更
-
Excelで〇のついたものを抽出し...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
入力データをマクロで消去した...
-
VBAアクティブセル行で列範囲選択
-
VBScriptでExcel(2019)上のデー...
-
rangeオブジェクトについて
-
VBA OLEObject テキストボック...
-
マクロ・複数シートに適用する...
-
ローマ字→カタカナへ変換(エク...
-
コマンドボタンを押すたびに大...
-
エクセルVBAでセルに入力したパ...
-
スクロールしてもボタンを常に...
-
excelに貼り付けた数値が勝手に...
-
複数ファイルにある特定のシー...
-
Excel:コマンドボタンの移動
-
マクロ 実行ボタンを押さずに...
-
Excel VBA のdebug(F8キー) が...
-
EXCELのセルへ、デジタル時計を...
-
エラーになってないのにVBA...
-
Excelを開いた時に表示さ...
-
Wordの画面を左右にスクロール...
-
PPTのコマンドボタンがクリック...
おすすめ情報