こんばんわ。
rangeオブジェクトの行数と列数を出したいのですが、やりかた教えていただけませんでしょうか。
以下のように、方法1と方法2を試しましたが、「オブジェクトが必要です」というエラーになります(;;)ついでに、以下2つがなぜだめかも後学のために教えてください(;;)
よろしくお願いします。
方法1--
dim rng as range
set rng = range(cells(1,1),cells(2,2))
with rng
msgbox .columns(.columns.count).column
end with
方法2--
dim rng as range
set rng = range(cells(1,2),cells(2,2))
msgbox ubound(range,1)
--
エクセル2003
No.2ベストアンサー
- 回答日時:
こんにちは。
Excel VBAは、特殊な部分があって、ローカルモジュールは、イベント・ドリブン型などの明確な目的がなければ、標準モジュールを使うことになります。標準モジュールなら、最初のコードは通ります。以下は、掲示板掲載の時に、失敗が少ない書き方で、モジュールの違いの認識があれば、必ずしも、With ActiveSheet ~ End With は必要ではありません。
2番目のマクロは、Range型のオブジェクトからは配列は取得出来ません。
なお、「rangeオブジェクトの行数と列数を出したいのです」という目的では、Test1 の意味は違います。範囲の最終列を知りたいという意味だと思います。
その目的なら、基本的には、rng.Columns.Count, rng.Rows.Count
です。
'-------------------------------------------
Sub Test1()
Dim rng As Range
With ActiveSheet
Set rng = .Range(.Cells(1, 1), .Cells(2, 2))
End With
With rng
MsgBox .Columns(.Columns.Count).Column
End With
End Sub
'-------------------------------------------
Sub Test2()
Dim rng As Range
With ActiveSheet
Set rng = .Range(.Cells(1, 2), .Cells(2, 2))
End With
MsgBox UBound(rng.Value, 1)
MsgBox UBound(rng.Value, 2)
End Sub
No.3
- 回答日時:
こんな表現でもいいのかな???
Public Sub f()
Dim r As Range
Set r = Range(Cells(10, 10), Cells(20, 20))
Debug.Print r.Column + r.Columns.Count - 1
Debug.Print r.Row + r.Rows.Count - 1
End Sub
実行結果
20
20
No.1
- 回答日時:
モジュールでレンジを指定しているから、どのシートのセルかを特定できないのではないかと推測します。
Sheets(1).Activate
のようにActivateメソッドを使えば反応するでしょう。元ソースでシート2を操作し、シート1に戻るようにするコードは以下のようになります。
Public Sub cell_check()
Dim rng As Range
Sheets(2).Activate
Set rng = Range(Cells(1, 1), Cells(2, 2))
With rng
MsgBox .Columns(.Columns.Count).Column
End With
Sheets(1).Activate
End Sub
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) findメソッドの変数について 6 2023/06/23 08:01
- Visual Basic(VBA) VBAで教えて頂きたいのですが? 1 2022/04/29 02:36
- Visual Basic(VBA) オブジェクトが見つかりません 1 2023/06/24 19:43
- Visual Basic(VBA) エラーコード1004 6 2022/06/09 14:12
- Visual Basic(VBA) エクセルVBA(実行時エラー438)の対処法を教えてもらえないでしょうか 3 2023/04/22 13:43
- Visual Basic(VBA) まとめシートから集計シートへA列のコードが一致したら1行コピーするマクロをネット上で見つけました。こ 1 2022/08/30 14:11
- Visual Basic(VBA) Sheet3から2つの条件でオートフィルターで抽出した個数をSheet2へ入力するマクロで、一つ目の 4 2023/01/12 23:40
- Excel(エクセル) VBAで組み合わせ算出やCOUNTIFSの処理を高速化したいです。 4 2022/04/07 02:38
- Visual Basic(VBA) 【VBA】Excelの特定範囲のセルを画像で保存したい 2 2023/01/25 13:06
- Visual Basic(VBA) 【ご教示ください】VBAの記述方法がわかりません。 2 2022/08/12 21:28
関連するカテゴリからQ&Aを探す
おすすめ情報
- ・漫画をレンタルでお得に読める!
- ・【大喜利】【投稿~11/22】このサンタクロースは偽物だと気付いた理由とは?
- ・お風呂の温度、何℃にしてますか?
- ・とっておきの「まかない飯」を教えて下さい!
- ・2024年のうちにやっておきたいこと、ここで宣言しませんか?
- ・いけず言葉しりとり
- ・土曜の昼、学校帰りの昼メシの思い出
- ・忘れられない激○○料理
- ・あなたにとってのゴールデンタイムはいつですか?
- ・とっておきの「夜食」教えて下さい
- ・これまでで一番「情けなかったとき」はいつですか?
- ・プリン+醤油=ウニみたいな組み合わせメニューを教えて!
- ・タイムマシーンがあったら、過去と未来どちらに行く?
- ・遅刻の「言い訳」選手権
- ・好きな和訳タイトルを教えてください
- ・うちのカレーにはこれが入ってる!って食材ありますか?
- ・おすすめのモーニング・朝食メニューを教えて!
- ・「覚え間違い」を教えてください!
- ・とっておきの手土産を教えて
- ・「平成」を感じるもの
- ・秘密基地、どこに作った?
- ・【お題】NEW演歌
- ・カンパ〜イ!←最初の1杯目、なに頼む?
- ・一回も披露したことのない豆知識
- ・これ何て呼びますか
- ・初めて自分の家と他人の家が違う、と意識した時
- ・「これはヤバかったな」という遅刻エピソード
- ・これ何て呼びますか Part2
- ・許せない心理テスト
- ・この人頭いいなと思ったエピソード
- ・牛、豚、鶏、どれか一つ食べられなくなるとしたら?
- ・好きなおでんの具材ドラフト会議しましょう
- ・餃子を食べるとき、何をつけますか?
- ・あなたの「必」の書き順を教えてください
- ・ギリギリ行けるお一人様のライン
- ・10代と話して驚いたこと
- ・大人になっても苦手な食べ物、ありますか?
- ・14歳の自分に衝撃の事実を告げてください
- ・家・車以外で、人生で一番奮発した買い物
- ・人生最悪の忘れ物
- ・あなたの習慣について教えてください!!
- ・都道府県穴埋めゲーム
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
VBAで特定の文字が入った行をコ...
-
Excel マクロについて詳しい方...
-
Excelのマクロについて教えてく...
-
VBAのエラー表示の対処法について
-
VBAのループ処理について教えて...
-
VBA 別ブックからコピペしたい...
-
エクセルVBAで特定のセルの値を...
-
VBAでセルの書式を変えずに文字...
-
【VBA】値を変更しながら連続で...
-
Excel_VBAについて質疑です。(...
-
Excelのマクロについて教えてく...
-
修正依頼:【VBA】 結合セルに...
-
Excelのマクロについて教えてく...
-
エクセルでCDOを使ったメール送...
-
Excelのマクロについて教えてく...
-
Excelのマクロについて教えてく...
-
Visualbasicの現状について教え...
-
Excelのマクロについて教えてく...
-
Excelのマクロについて教えてく...
-
WindowsのOutlook を VBA から...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
入力データをマクロで消去した...
-
VBScriptでExcel(2019)上のデー...
-
python fbprophetについて
-
VBAアクティブセル行で列範囲選択
-
VBA OLEObject テキストボック...
-
rangeオブジェクトについて
-
マクロ・複数シートに適用する...
-
ローマ字→カタカナへ変換(エク...
-
エクセルVBAでセルに入力したパ...
-
マクロ 実行ボタンを押さずに...
-
Excel:コマンドボタンの移動
-
excelに貼り付けた数値が勝手に...
-
コマンドボタンを押すたびに大...
-
スクロールしてもボタンを常に...
-
Excel VBA のdebug(F8キー) が...
-
EXCELのセルへ、デジタル時計を...
-
押したボタンの位置取得(共通の...
-
Excelを開いた時に表示さ...
-
エラーになってないのにVBA...
-
Accessのコマンドボタンの立体...
おすすめ情報