No.13ベストアンサー
- 回答日時:
>For i = 2 To lastRow
>の所で、A列の最終行を求めるのは分かるのですが、
>なぜ、それで、B列の最終行まで求められるのでしょうか?
回答:B列の最終行は求められません。A列の最終行を取得して、それを表の最終行とみなす、ということです。
従って、A列の最終行が8行、B列の最終行が9行の場合、
2から8行目まで処理するので、9行目は、無視されます。
①これは、A列を基準にしているからです。
②もし、B列を基準にするなら、
lastRow=Cells(Rows.Count, 2).End(xlUp).Row
にすればよいです。
③もし、A,B列のどちらかの列で決めるのではなくではなく、
A,B列の最終列の大きいほうを最終行にするようにしたいなら、
lastrow1=Cells(Rows.Count, 1).End(xlUp).Row
lastrow2=Cells(Rows.Count, 2).End(xlUp).Row
として、lastrow1とlastrow2の大きいほうを最終行とすればよいです。
①②③のどれを採用するかは、マクロの作成者が決めることです。
No.12
- 回答日時:
>②さっきマクロ①が使いたい処理だと言っていましたが、マクロ③ではどこが使いたい処理なのでしょうか?
もしかするとlastRowを入れる前が、使いたい処理で、
lastRowが入っている場合が、マクロ③という感じでしょうか?教えて頂けると幸いです。
回答:はい。そうなります。
>だとすると、マクロ③でlastRowが入る前のマクロも出来るのでしょうか?
回答:
マクロ③から
Dim lastRow As Long
lastRow = Cells(Rows.Count, 1).End(xlUp).Row
の2行を削除し、
Set Rng = Range(Cells(a, b), Cells(lastRow, c)) を
Set Rng = Range(Cells(a, b), Cells(8, c)) にするとそうなります。(ただし、最終行が8行目の場合)
No.11
- 回答日時:
>①合計の所で、D2セルに入っている関数は、=SUM(A1:B8)という感じでしょうか?
回答:D2セルに関数は入っていませんが、もし、関数で合計を求めるなら
=SUM(B2:B8)になります。
ただし、最終行が10行になれば、=SUM(B2:B10)になります。
>②さっきマクロ①が使いたい処理だと言っていましたが、マクロ③ではどこが使いたい処理なのでしょうか?もしかするとlastRowを入れる前が、使いたい処理で、lastRowが入っている場合が、マクロ③という感じでしょうか?教えて頂けると幸いです。だとすると、マクロ③でlastRowが入る前のマクロも出来るのでしょうか?
lastRow= Cells(Rows.Count, 1).End(xlUp).Row
これ以降で、lastRowを使用している箇所が、
lastRowを使いたい処理です。
No.10
- 回答日時:
>なぜ、疑問①品名を基準にして考えたのでしょうか?
品名と数量があった場合、常識的には、品名を基準に行がきまると思います。
ただし、いや私は数量が基準だと考えるという人がいれば、それを尊重して数量を基準に行がきまるとしてもプログラム上は問題ありません。
常識的には腕時計を左手にはめるのが普通ですが、右手にはめても構いません。
No.9
- 回答日時:
>マクロ③にも使いたい処理があるのでしょうか?
具体的には、以下の行でlastRowを使っています。
Set Rng = Range(Cells(a, b), Cells(lastRow, c))
No.8
- 回答日時:
>マクロ③にも使いたい処理があるのでしょうか?
質問の日本語の意味が、よくわかりませんが、
もともとの「使いたい処理」とは、
lastRow= Cells(Rows.Count,1).End(xlUp).Row
のようにして求めた、LastRow(=最終行)を使いたいという意味です。
マクロ③が
lastRow= Cells(Rows.Count,1).End(xlUp).Row
を使っているので、マクロ③自体が使いたいという意味です。
No.7
- 回答日時:
>マクロ②でなぜ、lastRow= Cells(Rows.Count,2).End(xlUp).Rowじゃなくて、lastRow= Cells(Rows.Count,1).End(xlUp).Rowを使っているのでしょうか?
lastRow= Cells(Rows.Count,2).End(xlUp).Row
はB列(=2列目)の最終行を求めています。
lastRow= Cells(Rows.Count,1).End(xlUp).Row
はA(=1列目)列の最終行を求めています。
この添付図の最終行は、A列(品名)を基準に考えるからです。
No.6
- 回答日時:
>マクロ②でなぜ、疑問①lastRow = Cells(Rows.Count, 1).End(xlUp).Rowを組み込んでいるのでしょうか?
回答:そのようにすると、日々最終行が変わっても、マクロを修正しないで済むからです。
マクロ①の状態で運用すると
最終行が10行目に変わった場合、
For i = 2 To 10
最終行が20行目に変わった場合、
For i = 2 To 20
のように変えなければいけません。
これをしないで済むようにするためです。
>疑問②Set rng=Range(Cells(a,b),Cells(lastRow,c))も使うとどうなるのでしょうか?
回答:これを使うのは、
https://oshiete.goo.ne.jp/qa/13950838.html
のNo2のようなケースです。
以下のマクロを実行すると、添付図のような罫線が引けます。
マクロ③
-----------------------------------------------
Sub sample2()
Dim lastRow As Long
lastRow = Cells(Rows.Count, 1).End(xlUp).Row
a = 1
b = 1
c = 2
Set Rng = Range(Cells(a, b), Cells(lastRow, c))
'①上部
Rng.Borders(xlEdgeTop).LineStyle = xlContinuous
'②左
Rng.Borders(xlEdgeLeft).LineStyle = xlContinuous
'③下部
Rng.Borders(xlEdgeBottom).LineStyle = xlContinuous
'④右
Rng.Borders(xlEdgeRight).LineStyle = xlContinuous
'⑤範囲内の縦線
Rng.Borders(xlInsideVertical).LineStyle = xlContinuous
'⑥範囲内の横線
Rng.Borders(xlInsideHorizontal).LineStyle = xlContinuous
End Sub
----------------------------------------------------------------
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
このQ&Aを見た人はこんなQ&Aも見ています
-
見学に行くとしたら【天国】と【地獄】どっち?
みなさんは、一度だけ見学に行けるとしたら【天国】と【地獄】どちらに行きたいですか? 理由も聞きたいです。
-
ちょっと先の未来クイズ第6問
2025年1月2日と1月3日に行われる、第101回箱根駅伝(東京箱根間往復大学駅伝競走)で、上位3位に入賞するチームはどこでしょう?
-
みんなの【マイ・ベスト積読2024】を教えてください。
積読、ついついしちゃいませんか?そこでみなさんの 「2024年に買ったベスト積読」を聞きたいです。
-
この人頭いいなと思ったエピソード
一緒にいたときに「この人頭いいな」と思ったエピソードを教えてください
-
今から楽しみな予定はありますか?
いよいよ2025年が始まりました。皆さんには、今から楽しみにしている予定はありますか?
-
excelVBAについて。
Excel(エクセル)
-
excelVBAについて。
Excel(エクセル)
-
excelVBAについて。
Excel(エクセル)
-
-
4
【再投稿】レイアウトが異なる別のワークブックからデータを転記する方法を教えてください
Excel(エクセル)
-
5
エクセルマクロについて教えて下さい。
Excel(エクセル)
-
6
excelVBAについて。
Excel(エクセル)
-
7
8:40までの出勤は全て8:30にする関数を教えて下さい!!
Excel(エクセル)
-
8
【マクロ】メッセージボックスにて、キャンセルをクリックしたら、マクロ終了。エクセルへ戻すには
Excel(エクセル)
-
9
excelVBAについて。
Excel(エクセル)
-
10
excelVBAについて。
Excel(エクセル)
-
11
エクセル初心者です 用語とか良く分からないので簡単に説明していただけると幸いです 表を作っているので
Excel(エクセル)
-
12
【マクロ】複数の日付データをYYYY/MM/DDに読替えて、別ブックへ転記したい
Excel(エクセル)
-
13
excelVBAについて。
Excel(エクセル)
-
14
エクセル初心者です 用語等まだ良く分からないので簡単に説明していただけると幸いです タブの挿入、図形
Excel(エクセル)
-
15
excelですが一つのマスに入ってる文字を2つのマスに変更できますか
Excel(エクセル)
-
16
納期順に勝手に並べ替えられるようにしたいのですが…
Excel(エクセル)
-
17
年間の医療費のデータがあり、月々の集計をする計算式を教えていただけませんか
Excel(エクセル)
-
18
excelVBAについて。
Excel(エクセル)
-
19
excelVBAについて。
Excel(エクセル)
-
20
excelVBAについて。
Excel(エクセル)
関連するカテゴリからQ&Aを探す
おすすめ情報
- ・「みんな教えて! 選手権!!」開催のお知らせ
- ・漫画をレンタルでお得に読める!
- ・【大喜利】【投稿~1/20】 追い込まれた犯人が咄嗟に言った一言とは?
- ・洋服何着持ってますか?
- ・みんなの【マイ・ベスト積読2024】を教えてください。
- ・「これいらなくない?」という慣習、教えてください
- ・今から楽しみな予定はありますか?
- ・AIツールの活用方法を教えて
- ・【選手権お題その3】この画像で一言【大喜利】
- ・【お題】逆襲の桃太郎
- ・自分独自の健康法はある?
- ・最強の防寒、あったか術を教えてください!
- ・【大喜利】【投稿~1/9】 忍者がやってるYouTubeが炎上してしまった理由
- ・歳とったな〜〜と思ったことは?
- ・ちょっと先の未来クイズ第6問
- ・モテ期を経験した方いらっしゃいますか?
- ・好きな人を振り向かせるためにしたこと
- ・【選手権お題その2】この漫画の2コマ目を考えてください
- ・【選手権お題その1】これってもしかして自分だけかもしれないな…と思うあるあるを教えてください
- ・スマホに会話を聞かれているな!?と思ったことありますか?
- ・それもChatGPT!?と驚いた使用方法を教えてください
- ・見学に行くとしたら【天国】と【地獄】どっち?
- ・これまでで一番「情けなかったとき」はいつですか?
- ・この人頭いいなと思ったエピソード
- ・あなたの「必」の書き順を教えてください
- ・14歳の自分に衝撃の事実を告げてください
- ・人生最悪の忘れ物
- ・あなたの習慣について教えてください!!
- ・都道府県穴埋めゲーム
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
エクセル条件付き書式について。
-
VBA の単語の意味を教えて下さい。
-
【マクロ】重複する同じ行を、...
-
Excelを立ち上げ、キーボードだ...
-
Excelの数式について教えてくだ...
-
vba 印刷設定でのカラー印刷と...
-
Excelの条件付き書式のコピーと...
-
エクセルのセルをクリックする...
-
Excelの開始ブックを固定したい...
-
ファイル名の変更
-
Excelファイルを開くと私だけVA...
-
エクセルの計算式を教えてくだ...
-
【マクロ】関数の入力にてエラ...
-
エクセルでセルに入力する前は...
-
=INDIRECT(RIGHT(CELL("filenam...
-
至急お願いいたします 屋上の備...
-
Excel について教えてください。
-
vba Excelのタブをプログラムか...
-
Excel スクロールバーの長さが...
-
【Excel】 1つのセルの日にちを...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
エクセルで、数字ではない値(...
-
Excel いい方法教えてください。
-
納期順に勝手に並べ替えられる...
-
エクセルで作成した書類の印刷...
-
Excel初心者です、Excelの日付...
-
エクセルで作った表が印刷する...
-
実務の処理について。
-
AM8:30から翌朝8:30まで勤務す...
-
Excelのデータの入力規則の問題...
-
Excelの罫線を消す方法
-
桁をセルで区切って計算をした...
-
スプレッドシート(Excelでも良...
-
VLOOKUP関数で複数条件を設定に...
-
Excel初心者です。 Excelでやり...
-
エクセルでAのセルに「家電」と...
-
ファイルとフォルダの移動につ...
-
XMLHTTP60で前日のデータが取れ...
-
ファイルパスについて。
-
エクセルの数式について教えて...
-
スプレッドシートで適切な条件...
おすすめ情報
すみません。手書きで書きます。最後から4行は、
この変数を使う場合、サンプルの2,3行目をコピーして、使いたい処理よりも上の行へペーストしてください。そのあと、たとえば、「Set rng=Range(Cells(a,b),Cells(lastRow,c))」のようにセル範囲の終点セルの行として指定したり、繰り返し処理で「For i = 1 To lastRow」とループの終点に指定したりすると便利です。ちなみに、プログラム内容は、以下の通りです。
sub sample088( )
Dim lastRow As long
lastRow= Cells(Rows.Count,1).End(xlUp).Row
MsgBox lastRow
End sub
教えていただけると幸いです。
マクロ②でなぜ、疑問①lastRow = Cells(Rows.Count, 1).End(xlUp).Rowを組み込んでいるのでしょうか?後、疑問②Set rng=Range(Cells(a,b),Cells(lastRow,c))を使うとどうなるのでしょうか?教えて頂けると幸いです。
すみません。マクロ②でなぜ、疑問①lastRow = Cells(Rows.Count, 1).End(xlUp).Rowを組み込んでいるのでしょうか?後、疑問②Set rng=Range(Cells(a,b),Cells(lastRow,c))も使うとどうなるのでしょうか?教えて頂けると幸いです。
こちらが正しい疑問です。すみません。
迅速な回答ありがとうございます!所で、マクロ②でなぜ、lastRow= Cells(Rows.Count,2).End(xlUp).Rowじゃなくて、lastRow= Cells(Rows.Count,1).End(xlUp).Rowを使っているのでしょうか?教えて頂けると幸いです。
なぜ、疑問①品名を基準にして考えたのでしょうか?教えて頂けると幸いです。後、疑問②マクロ③で使いたい処理はあるのでしょうか?教えて頂けると幸いです。
すみません。この前、マクロ①が使いたい処理になる。と言っていたのですが、マクロ③には使いたい処理はないのかと思って。教えて頂けると幸いです。
つまり、①合計の所で、D2セルに入っている関数は、=SUM(A1:B8)という感じでしょうか?②さっきマクロ①が使いたい処理だと言っていましたが、マクロ③ではどこが使いたい処理なのでしょうか?もしかするとlastRowを入れる前が、使いたい処理で、lastRowが入っている場合が、マクロ③という感じでしょうか?教えて頂けると幸いです。だとすると、マクロ③でlastRowが入る前のマクロも出来るのでしょうか?
すみません。マクロ②のlastRow = Cells(Rows.Count, 1).End(xlUp).Row
gokei = 0
For i = 2 To lastRow
の所で、A列の最終行を求めるのは分かるのですが、なぜ、それで、B列の最終行まで求められるのでしょうか?教えて頂けると幸いです。