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で質問しましょう!
似たような質問が見つかりました
- C言語・C++・C# C言語 バッファについて。 20 2023/10/13 20:43
- C言語・C++・C# コマンドプロンプトについて。 5 2023/10/04 21:20
- Visual Basic(VBA) vba Sleep関数について教えてください 1 2023/01/18 10:18
- C言語・C++・C# ストリーム 意味について。 4 2023/10/30 18:17
- C言語・C++・C# 画像の画素値を変えるC言語のプログラムで指定された画像の中に白い三角形を右上に表示させるにはどのよう 3 2022/10/30 01:16
- その他(プログラミング・Web制作) 3Dモデルにおける法線の計算について(Python,OpenGL) 1 2023/04/25 23:46
- Visual Basic(VBA) 基本情報技術者の擬似言語プログラム このプログラムの答えは(ウ)です。でも配列に格納されてる順番が良 2 2023/09/03 09:48
- Excel(エクセル) ¥マークを含むパスの処理について(マクロ、または関数) 2 2022/12/25 02:11
- C言語・C++・C# C言語プログラム変更 2 2022/12/21 15:03
- JavaScript Typescript が必要な理由 1 2023/01/07 11:45
このQ&Aを見た人はこんなQ&Aも見ています
-
とっておきの「夜食」教えて下さい
真夜中に小腹がすいたときにこっそり作るメニュー、こっそり家を抜け出して食べに行くお店… 人には言えない、けど自慢したい、そんなあなたの「とっておきの夜食」を教えて下さい。
-
秘密基地、どこに作った?
小さい頃、1度は誰もが作ったであろう秘密基地。 大人の今だからこそ言える、あなたの秘密基地の場所を教えてください!
-
遅刻の「言い訳」選手権
よく遅刻してしまうんです…… 「電車が遅延してしまい遅れました」 「歯医者さんが長引いて、、、」 「病院が混んでいて」 などなどみなさんがこれまで使ってきた遅刻の言い訳がたくさんあるのではないでしょうか?
-
2024年のうちにやっておきたいこと、ここで宣言しませんか?
2024年も残すところ50日を切りましたね。 ことしはどんな1年でしたか? 2024年のうちにやっておきたいこと、 よかったらここで宣言していってください!
-
ギリギリ行けるお一人様のライン
おひとり様需要が増えているというニュースも耳にしますが、 あなたが「ギリギリ一人でも行ける!」という場所や行為を教えてください
-
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
エクセル初心者です 用語とか良く分からないので簡単に説明していただけると幸いです 表を作っているので
Excel(エクセル)
-
11
【マクロ】ファイル名の変更について
Excel(エクセル)
-
12
エクセル初心者です 用語等まだ良く分からないので簡単に説明していただけると幸いです タブの挿入、図形
Excel(エクセル)
-
13
【マクロ】複数の日付データをYYYY/MM/DDに読替えて、別ブックへ転記したい
Excel(エクセル)
-
14
excelVBAについて。
Excel(エクセル)
-
15
年間の医療費のデータがあり、月々の集計をする計算式を教えていただけませんか
Excel(エクセル)
-
16
excelVBAについて。
Excel(エクセル)
-
17
excelVBAについて。
Excel(エクセル)
-
18
西暦や和暦の表示をyyyymmdd表示へ変更をしたい
Excel(エクセル)
-
19
職場の人から聞かれており、こんなことができるか教えて下さい。 vbaとかはできません。。 下記リスト
Excel(エクセル)
-
20
【マクロ】for next構文について
Excel(エクセル)
関連するカテゴリからQ&Aを探す
おすすめ情報
- ・漫画をレンタルでお得に読める!
- ・【大喜利】【投稿~12/2】 国民的アニメ『サザエさん』が打ち切りになった理由を教えてください
- ・ちょっと先の未来クイズ第5問
- ・【お題】ヒーローの謝罪会見
- ・これが怖いの自分だけ?というものありますか?
- ・スマホに会話を聞かれているな!?と思ったことありますか?
- ・それもChatGPT!?と驚いた使用方法を教えてください
- ・見学に行くとしたら【天国】と【地獄】どっち?
- ・【大喜利】【投稿~11/22】このサンタクロースは偽物だと気付いた理由とは?
- ・お風呂の温度、何℃にしてますか?
- ・とっておきの「まかない飯」を教えて下さい!
- ・2024年のうちにやっておきたいこと、ここで宣言しませんか?
- ・いけず言葉しりとり
- ・土曜の昼、学校帰りの昼メシの思い出
- ・忘れられない激○○料理
- ・あなたにとってのゴールデンタイムはいつですか?
- ・とっておきの「夜食」教えて下さい
- ・これまでで一番「情けなかったとき」はいつですか?
- ・プリン+醤油=ウニみたいな組み合わせメニューを教えて!
- ・タイムマシーンがあったら、過去と未来どちらに行く?
- ・遅刻の「言い訳」選手権
- ・好きな和訳タイトルを教えてください
- ・うちのカレーにはこれが入ってる!って食材ありますか?
- ・おすすめのモーニング・朝食メニューを教えて!
- ・「覚え間違い」を教えてください!
- ・とっておきの手土産を教えて
- ・「平成」を感じるもの
- ・秘密基地、どこに作った?
- ・カンパ〜イ!←最初の1杯目、なに頼む?
- ・この人頭いいなと思ったエピソード
- ・あなたの「必」の書き順を教えてください
- ・ギリギリ行けるお一人様のライン
- ・10代と話して驚いたこと
- ・大人になっても苦手な食べ物、ありますか?
- ・14歳の自分に衝撃の事実を告げてください
- ・家・車以外で、人生で一番奮発した買い物
- ・人生最悪の忘れ物
- ・あなたの習慣について教えてください!!
- ・都道府県穴埋めゲーム
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
エクセルで作成した書類の印刷...
-
スプレッドシートで適切な条件...
-
Excelについて。 以前、無料でE...
-
エクセルのCOUNTAについて
-
Excel初心者です、Excelの日付...
-
エクセルで作成した表の中にあ...
-
新規ブックの作成について。
-
Excelの警告について
-
Excelの質問です。 特定のセル...
-
ExcelVBAについて。
-
標準、数値、文字列・・・VLOOK...
-
エクセルのデータ整理
-
Excelの質問です。 セルA1に文...
-
excelVBAについて。
-
excelVBAについて。
-
excelですが一つのマスに入って...
-
excelVBAについて。
-
excelVBAについて。
-
excelVBAについて。
-
パソコンで作成したExcelをiPho...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
Excelの警告について
-
excelVBAについて。
-
excelVBAについて。
-
UNIQUE関数、配列数式を使わず...
-
エクセルのデータ整理の方法
-
11ケタの数字を打つと、エク...
-
エクセルの関数ついて
-
エクセル初心者です 用語とか良...
-
エクセル2021 範囲指定印刷をす...
-
【マクロ】メッセージボックス...
-
Excelで合計を求めたいです
-
IEを使わずHTMLを取得する
-
1.5ヶ月分の費用按分 エクセル関数
-
エクセル初心者です 用語等まだ...
-
excelVBAについて。
-
エクセルの不調について
-
Excelで、毎月の月曜と金曜の合...
-
vbe でのソースコード参照(msgb...
-
エクセル数式に問題があります
-
アクセス2016 エクセル2016 重...
おすすめ情報
すみません。手書きで書きます。最後から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列の最終行まで求められるのでしょうか?教えて頂けると幸いです。