
こんばんわ。
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を探す
おすすめ情報
- ・漫画をレンタルでお得に読める!
- ・一番好きなみそ汁の具材は?
- ・泣きながら食べたご飯の思い出
- ・「これはヤバかったな」という遅刻エピソード
- ・初めて自分の家と他人の家が違う、と意識した時
- ・いちばん失敗した人決定戦
- ・思い出すきっかけは 音楽?におい?景色?
- ・あなたなりのストレス発散方法を教えてください!
- ・もし10億円当たったら何に使いますか?
- ・何回やってもうまくいかないことは?
- ・今年はじめたいことは?
- ・あなたの人生で一番ピンチに陥った瞬間は?
- ・初めて見た映画を教えてください!
- ・今の日本に期待することはなんですか?
- ・集中するためにやっていること
- ・テレビやラジオに出たことがある人、いますか?
- ・【お題】斜め上を行くスキー場にありがちなこと
- ・人生でいちばんスベッた瞬間
- ・コーピングについて教えてください
- ・あなたの「プチ贅沢」はなんですか?
- ・コンビニでおにぎりを買うときのスタメンはどの具?
- ・おすすめの美術館・博物館、教えてください!
- ・【お題】大変な警告
- ・洋服何着持ってますか?
- ・みんなの【マイ・ベスト積読2024】を教えてください。
- ・「これいらなくない?」という慣習、教えてください
- ・今から楽しみな予定はありますか?
- ・AIツールの活用方法を教えて
- ・最強の防寒、あったか術を教えてください!
- ・歳とったな〜〜と思ったことは?
- ・モテ期を経験した方いらっしゃいますか?
- ・好きな人を振り向かせるためにしたこと
- ・スマホに会話を聞かれているな!?と思ったことありますか?
- ・それもChatGPT!?と驚いた使用方法を教えてください
- ・見学に行くとしたら【天国】と【地獄】どっち?
- ・これまでで一番「情けなかったとき」はいつですか?
- ・この人頭いいなと思ったエピソード
- ・あなたの「必」の書き順を教えてください
- ・14歳の自分に衝撃の事実を告げてください
- ・人生最悪の忘れ物
- ・あなたの習慣について教えてください!!
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
入力データをマクロで消去した...
-
VBAアクティブセル行で列範囲選択
-
エクセルVBAでセルに入力したパ...
-
ローマ字→カタカナへ変換(エク...
-
マクロ 実行ボタンを押さずに...
-
エクセルのマクロ機能で前のシ...
-
コマンドボタンを押すたびに大...
-
Excel:コマンドボタンの移動
-
excelに貼り付けた数値が勝手に...
-
Excel VBA のdebug(F8キー) が...
-
スクロールしてもボタンを常に...
-
EXCELのセルへ、デジタル時計を...
-
Excelを開いた時に表示さ...
-
エラーになってないのにVBA...
-
ワードからエクセルへ貼り付け...
-
Accessのコマンドボタンの立体...
-
エクセルのコマンドボタンの位...
-
Accessユーザーフォームでコマ...
-
コマンドボタンで「終了ボタン...
-
Excelマクロでオプションボタン...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
VBScriptでExcel(2019)上のデー...
-
入力データをマクロで消去した...
-
VBAアクティブセル行で列範囲選択
-
python fbprophetについて
-
ローマ字→カタカナへ変換(エク...
-
エクセルVBAでセルに入力したパ...
-
マクロ 実行ボタンを押さずに...
-
Excel:コマンドボタンの移動
-
コマンドボタンを押すたびに大...
-
excelに貼り付けた数値が勝手に...
-
Excel VBA のdebug(F8キー) が...
-
Excelを開いた時に表示さ...
-
スクロールしてもボタンを常に...
-
EXCELのセルへ、デジタル時計を...
-
押したボタンの位置取得(共通の...
-
エラーになってないのにVBA...
-
エクセル グラフの軸の最小値最...
-
エクセルのマクロ機能で前のシ...
-
ワードからエクセルへ貼り付け...
-
複数ファイルにある特定のシー...
おすすめ情報