• ベストアンサー

VBの質問#if 0 then ってどう言う意味?

VBの質問です。 処理1 #If 0 Then 処理2 #End If 処理3 てどういう意味ですか?

  • phoo
  • お礼率85% (107/125)

質問者が選んだベストアンサー

  • ベストアンサー
  • ykkw_2001
  • ベストアンサー率26% (267/1014)
回答No.3

#1 の方がおっしゃる通り、条件付きコンパイルです。 これは、 >処理1 >#If 0 Then >処理2 >#End If >処理3 こういうプログラムと同じです。 処理1 処理3 つまり、処理2のとこを削除してしまってもコンパイルしたプログラムは、同じなんですよ。 んで、特に、 >#If 0 Then っていうのは、処理2のとこを、 「削除したことがわかるように(履歴を残したまま)削除する」 ということで、バグ修正や仕様変更などバージョンアップで削除するときに、よくやる慣習みたいなもんです。 C言語などでもよく同様のことをやります。 #Else もあるので、使いようによっては、便利です。 #ここだけの話、「万が一、修正したのが間違っていても、すぐ元に戻せるよ~ん」という感じで、なんだか男らしくなくて私は嫌いなんですが・・・ #ちなみに、私の周辺では、バックアップもとらずに、要らない(と思われる)ソースファイルを一気に削除する「男の子ごっこ」がはやってます。(アホですね)

phoo
質問者

お礼

詳細なコメントありがとう

その他の回答 (2)

  • shogenji
  • ベストアンサー率31% (31/98)
回答No.2

質問の例の場合だと, 処理1と処理3はコンパイルされ,処理2はコンパイルされません. 意味としては,処理2の部分をコメントにしているのと同じです. if文はif (a > 10) Then…のように書きますが, 条件付きコンパイルの場合も同じで, #if (条件式) Then…#else…#endifのように書きます. if文では,0の場合を偽,0以外の場合を真としているため, 処理2の場合は条件式が0となっているので,常にコンパイルされません.

phoo
質問者

お礼

コメントありがとうございました

  • maruru01
  • ベストアンサー率51% (1179/2272)
回答No.1

こんにちは。maruru01です。 #Ifの文は、条件付きコンパイル用のステートメントです。 詳細はヘルプで、 「#If」、「条件付きコンパイル」 を検索すると説明があります。 では。

phoo
質問者

お礼

早々のコメント有難うございました

phoo
質問者

補足

真中の処理をコメントにするという意味みたいです

関連するQ&A

  • If x < y Then 0 Then ←この書き方の意味は?

    VB6.0の出来たプログラムをVB.NETに移行する為にソースを見ているのですが If x < y Then 0 Then ~処理A~ Else ~処理B~ End If と記述されている部分がありました。 「0 Then」がなければ、xがyより小さい時、処理Aを行い、 それ以外の場合は、処理Bを行うというのはわかります。 この時のThen 0 Thenとはどういった意味になるのでしょうか?

  • VB6,Ifから抜けるには?

    If a = b then   xxx  If c = d then    ここ!  End If   yyy End If zzz 上のここ!から抜け、zzz以降の処理を継続するにはどうすればよいでしょうか? Exit Subをやってしまうとプロシージャ自体から抜けてしまいます。

  • #ifの意味

    こんにちは。今コードの解析をしているのですが、 #If ●● Then   処理内容 #Else   処理内容 #End If   というようなコードがあるんですけど、#ってなんの意味があるのでしょうか? おわかりなる方がいらっしゃいましたら教えてください。 宜しくお願い致します。

  • VBA の IF then 文につぃて

    access2000でテーブルに連結していないフォームがあり その中のテキストボックスにバーコードや磁気カードで読み込ませその桁数によって処理を分けようと思っていますが、どのようにコードを書けばよいのかおしえてください。 たとえば、 private sub() if 入力テキスボックス が 8桁 then 磁気カード処理 if 入力テキストボックスが 11桁 then バーコード処理 end if end sub public sub 磁気カード処理() public sub バーコード処理() のような形です。 どうかお願いします

  • #If True Then の # って何??

    #If True Then #Else #End if というソースを見たときがあるのですが、何がTrueなのかさっぱり 分かりません。どなたか優しく詳しく例をあげて教えてくださいませんか?

  • VB6.0での条件文にある#の意味

    先人のVB6.0プログラムを解読する作業中に以下の2行目の#の意味がわかりませんでした。 (0以下であればというif文の中に 1以下であればというif文?) 御教示いただければ幸いです。 if kakudo < 0 then if kakudo <= 1# then kai = 180 + kakudo else kai = 180 end if else kai = 0 end if

  • vbモーダルについて

    VB6.0について質問です。 FormAからFormBをモーダルで開き、さらにFormBからFormDをモーダルで開く という一連の操作を行いたいのですがうまくいきません>< エラー内容は、FromDを開く際にFormB内のデータが存在しなかったら FormDを表示せずにアンロードしたいのに表示されたままになってしまいます。 以下のコードで処理を行ってるのですがエラーのフラグを立ててアンロード処理を 行おうとしてもExitに移った瞬間にプログラムが終了してしまいます。 FormDをモーダレスで開くとアンロード処理まで普通に処理されます。 モーダルでアンロード処理までいくにはどのような処理を加えたらよいでしょうか? If i = 0 Then MsgBox "データありません。" Err_Flg = 1 Exit Sub End If ---------------------------- If Err_Flg = 1 Then Err_Flg = 0 Unload FormD End If

  • 条件付きコンパイル: #IF 1 Then と #IF 0 Then

    条件付コンパイルで、 『#If 1 Then』と『#If 0 Then』の条件の違いを教えてください。 『#If ○○○=1 Then』などの場合はわかるのですが、 単に『#If 1 Then』の場合は何をもって真となるのでしょうか? よろしくお願いいたします。

  • If..., ....とIf ..., then....の違い

    英語の文章で、 Ifの従属節の次に、主節を記述する場合 (形式としては If..., ....)と、Ifの従属節の次に、thenを挟み、主節を記述する場合(形式としては If..., then....)とでは、両者の間に、意味ないしニュアンスでどういう違いがあるのでしょうか?

  • 【VB】データグリッドビューでのセルチェンジイベントについて

    いつもお世話になります。 VB2005です。 基本的な質問だと思います。 データグリッドビューコントロールのセルチェンジイベントにプログラムを書いています。 どのセルをアクティブにしても処理が走るのですが、これを2列目を選択したときだけにしたいのです。 どんなコードを書けばいいんでしょうか? 思いついたので if datagridview1.columns(2).selected then   処理内容 end if だったのですが、駄目でした。(><)

専門家に質問してみよう