
エクセルVBAついて
①if•••••then•••••1
for i=1to500
if•••••then••••2
end if•••••2
next i
end if••••1
このような場合、if1に対してendif1という見方でいいんでしょうか?
②if•••••then•••••1
for i=1to500
if•••••then••••2
end if•••••1
next i
end if••••2
もしくは、②の見方が正解でしょうか?
No.3
- 回答日時:
そういうときは、構造で考えると理解しやすいかと。
if文は、次の2種類です。
if 〜 then 命令文
if 〜 then
「処理」
end if
後者を使う場合、if〜then と end if は一対一に対応しています。
そして(重要なことですが)
**「処理」の部分だけでも、(文法的には)正しいプログラムになっています。 **
文法的に、というのは、実際に動作させようとすると、変数が無いとか値がおかしいとかはあるかもしれませんが、
形だけは正しい、ということです。
そうして考えると、②の方は、if ..1 〜 end if ..1 の間にある「処理」の部分は、次のプログラムになります。
for i=1to500
if•••••then••••2
明かに、「正しくないプログラム」です。
forに対する nextは無いし if (2)に対する endif もありません。
①の方は、「処理」の部分が次のようになります。
for i=1to500
if•••••then••••2
end if•••••2
next i
forに対する next があって、for〜next の中に if〜then〜end if の一塊があります。
「(文法的には)正しいプログラム」です。
else を加えたif文や、for,〜next, while〜end while 等も、同じ考えです。
複雑に分岐•繰り返し動作させる際、vbaの知識があまり無いのでfor とifを多用してしまいます。
構造を感覚で掴んでるせいか、どこのendifかわからなくなることも、多々あり、そんな時、質問内容の疑問が湧いてきました。
完璧に理解できてませんが、kmee様の回答を参考に理解を深めていきたいと思います。
ありがとうございます!!
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) エクセル マクロ(A1:A10)までの中で一番多く出た数字をB10に表示 6 2023/04/25 17:01
- Visual Basic(VBA) VBAの繰り返し処理について教えてください。 3 2022/08/02 13:21
- Visual Basic(VBA) 動きっぱなしです。止め方とプロシージャの間違いを教えて下さい! 5 2022/08/15 23:08
- Visual Basic(VBA) 実行時エラー´5854´ 文字列型パラメーターが長すぎます。 3 2023/06/08 21:17
- Excel(エクセル) vba 「Nextに対するForが見当たりません」のエラーが発生する原因 1 2022/10/21 15:46
- Visual Basic(VBA) 数字が「0」の列を削除するため、下記のコードを実行しましたが、コンパイルエラーSubまたはFunct 3 2022/12/04 00:00
- Visual Basic(VBA) ファイル全てを .xlsm に変更したところ、プログラムが途中で落ちてしまっています 17 2022/12/07 12:03
- Visual Basic(VBA) excel VBA if文について 3 2022/03/27 17:42
- Excel(エクセル) エクセルVBAでオブジェクトが必要です 2 2022/09/10 16:37
- Visual Basic(VBA) Excel VBAの解読について質問があります。 概要は、マクロでチェックボックスにチェックすると日 1 2023/02/10 07:50
関連するカテゴリからQ&Aを探す
おすすめ情報
- ・漫画をレンタルでお得に読める!
- ・「それ、メッセージ花火でわざわざ伝えること?」
- ・ゆるやかでぃべーと すべての高校生はアルバイトをするべきだ。
- ・【お題】甲子園での思い出の残し方
- ・【お題】動物のキャッチフレーズ
- ・人生で一番思い出に残ってる靴
- ・これ何て呼びますか Part2
- ・スタッフと宿泊客が全員斜め上を行くホテルのレビュー
- ・あなたが好きな本屋さんを教えてください
- ・かっこよく答えてください!!
- ・一回も披露したことのない豆知識
- ・ショボ短歌会
- ・いちばん失敗した人決定戦
- ・性格悪い人が優勝
- ・最速怪談選手権
- ・限定しりとり
- ・性格いい人が優勝
- ・これ何て呼びますか
- ・チョコミントアイス
- ・単二電池
- ・初めて自分の家と他人の家が違う、と意識した時
- ・「これはヤバかったな」という遅刻エピソード
- ・ゴリラ向け動画サイト「ウホウホ動画」にありがちなこと
- ・泣きながら食べたご飯の思い出
- ・一番好きなみそ汁の具材は?
- ・人生で一番お金がなかったとき
- ・カラオケの鉄板ソング
- ・自分用のお土産
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
subsequentとnextの違いってな...
-
レコードセットにnullの場合
-
pascalでの二分探索(バイナリ...
-
日付の重複
-
【VB.NET】テキストボックスに...
-
VBA public変数はどのようなこ...
-
GetNextWindowがDLLファイルUse...
-
エクセルVBAでテキストボッ...
-
他のフォームから別のフォーム...
-
リストビューの列ヘッダーの幅...
-
アクセスできない保護レベルエ...
-
VB.NETでのイベントの途中終了
-
texで図と表を並べたい
-
チェックボックスを操作できな...
-
C#のループでtextboxに値を入れ...
-
String型の値にスラッシュをつ...
-
テキストボックスかラベル上の...
-
パーソナルXLSBのfuctionを呼び...
-
VBAでcallで呼び出したsubを終...
-
VBAで入力数値について
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
レコードセットにnullの場合
-
タイムアウトする仕組みを作りたい
-
subsequentとnextの違いってな...
-
クラスモジュールの処理
-
verilogのcase文
-
【FPGA】VHDLのprocessとevent
-
TreeViewのTag情報取得
-
日付の重複
-
Verilogの文法
-
vbsのmsgboxランダム表示について
-
リスト間のアイテム移動について
-
delphi
-
Delphiでコンポーネント名を変...
-
VBAでWorkbook_BeforeSaveイベ...
-
pascalでの二分探索(バイナリ...
-
エクセルVBAついて ①if•••••the...
-
VBA public変数はどのようなこ...
-
エクセルVBAでテキストボッ...
-
C#のループでtextboxに値を入れ...
-
他のフォームから別のフォーム...
おすすめ情報