No.1ベストアンサー
- 回答日時:
制御構造とは関係なく、VBでは「:」は、「複数の行を1行にまとめて書く」為の記号です。
ですから、
--------------------------------
If OPTO104(1).Value = True Then
OPTO104(1).SetFocus
Else: OPTO104(2).SetFocus
End If
--------------------------------
は、
--------------------------------
If OPTO104(1).Value = True Then
OPTO104(1).SetFocus
Else
OPTO104(2).SetFocus
End If
--------------------------------
と、同じ意味ですし、
例えば、
-------------------------------
A=1
B=2
-------------------------------
を
-------------------------------
A=1:B=2
-------------------------------
と書くこともできます。
No.4
- 回答日時:
VB,VBAの解説書では、Else:の書き方は見かけません。
Else
OPTO104(2).SetFocus
EndIf
と書かれています。
:は別のステートメントを同一行に書くための行節約のための用途や
同一行に書いて関連がわかりやすいように使います。
個々で前のステートメント(文)が終わり、次に新しいステートメンとが始まることを意味します。この意味では改行と同じです。
しかし:が改行の意味があるわけではないと思います。
どういうコードの塊が1ステートメントか結構難しい。
他に継続行のスペース+アンダーバーがあります。これは行が増えます。
Case Else: MsgBox "C" などでも使えるようです。
Sub test06()
x = InputBox("x=")
If x = 1 Then
x = 1
Else
x = 2
End If
MsgBox x
End Sub
が標準の記法と思いますが(インデントの点は考えないとして)
下の行の内容を、同行に持ってきたり、:を入れたりして実行してみると、If Then Else EndIfの行位置関係は、意外にルール性の発見は難しいと思いました。
質問のケース以外の自由度はないようです。
標準の記法をお勧めします。
No.3
- 回答日時:
If A = 1 Then B = 2: C = 3 Else B = 3: C = 2
If文を上記の様に1行ですませる事も可能ですし
For I = 0: A[I] = I * 2: Next I
↑の様に複数行を':'でつないで1行で記述する事も可能です。
質問の例では
Else: OPTO104(2).SetFocus
でも
Else OPTO104(2).SetFocus
の様に':'が無くても問題ありません。
#':'をわざわざ付ける意味が無い....
通常はソースが読みづらくなるので':'を使って1行に
する事は推奨されていません。
If A = 1 Then
B = 2 'コメント1
C = 3 'コメント2
Else
B = 3 'コメント3
C = 2 'コメント4
End if
No.2
- 回答日時:
まず前提知識として、VBというかMS Basic構文では、1行1ステートメントだという事を押さえておいていただきたい。
ここで言うステートメントとは
・IF hogehoge THEN ' 1ステートメント
・FOR i = 1 TO 50 STEP 2 ' 1ステートメント
・ELSE ' 1ステートメント
・A = B ' 1ステートメント
などの事を指す。
これらを、普通は複数行に分割して書く事はできないし、逆に1行に複数ステートメントを書く事はできない。割と縛りの多い構文規則だ。
で、VBでは、ステートメントを複数行に分ける場合に「_と改行のペア」を用い、逆に1行に複数ステートメントを記述する場合に「:」を用いる。
質問者のソースでは、ELSEというステートメントとOPTO104(2).SetFocusというステートメントを1行で書くために「:」を入れているという訳ですな。
直球の回答という訳ではないが、以上の内容をご一読いただけたら。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- JavaScript コードレビューをお願いします。 1 2022/07/16 05:38
- JavaScript プログラムがうまく動きませんレビューお願いします 1 2022/07/10 05:08
- Visual Basic(VBA) [Excel VBA] このコードでは行の挿入や行の消去をすると13のエラーが出てしまう。 3 2022/12/09 00:29
- Visual Basic(VBA) 【変更】ファイルを閉じてダイアログで保存した時、更新したシートだけの処理の実行をする 5 2022/03/26 18:31
- Visual Basic(VBA) 動きっぱなしです。止め方とプロシージャの間違いを教えて下さい! 5 2022/08/15 23:08
- Visual Basic(VBA) 【追加】ファイルを閉じてダイアログで保存した時だけ処理の実行をする 3 2022/03/23 15:43
- Visual Basic(VBA) 【Excel VBA】自動メール送信の機能追加 5 2022/09/29 12:53
- Excel(エクセル) VBAで “:” を含むセルの特定 2 2023/05/11 16:30
- Visual Basic(VBA) Excel vbaについての質問 3 2023/04/18 16:14
- Excel(エクセル) VBAについて 3 2022/06/19 18:19
このQ&Aを見た人はこんなQ&Aも見ています
-
プロが教える店舗&オフィスのセキュリティ対策術
中・小規模の店舗やオフィスのセキュリティセキュリティ対策について、プロにどう対策すべきか 何を注意すべきかを教えていただきました!
-
VBの「As String * 128」とは?
Visual Basic(VBA)
-
Designer.vbは直接コードをいじってはだめ?
Visual Basic(VBA)
-
FORMが開いているかどうかの確認方法
Visual Basic(VBA)
-
-
4
VB6 開発環境のエディタに行番号を表示
Visual Basic(VBA)
-
5
VBA シートのボタン名を変更したい
Visual Basic(VBA)
-
6
VB.NETでフォーム上にExcelのような表を表示する方法
Visual Basic(VBA)
-
7
VB.NETのDropDownListをReadOnlyにする方法またはEnable=Falseで字を黒くする方法
Visual Basic(VBA)
-
8
ある条件の最大値+1を初番するにはロックが必要ですか?
MySQL
-
9
VB.net 任意の例外を発生させるには・・・
Visual Basic(VBA)
-
10
CloseとDisposeの違い
Visual Basic(VBA)
-
11
VB.NETで DataRow()を利用して、値からコードを取得したい。
Visual Basic(VBA)
-
12
private subモジュールを他のモジュールから呼び出して使う方法を教えてください(-.-)
Visual Basic(VBA)
-
13
【Excel VBA】CSV取込時、数字の先頭の0を消えないようにするには?
Excel(エクセル)
関連するカテゴリからQ&Aを探す
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
テキストエリアの幅を10桁まで...
-
テキストエリア内の改行もその...
-
VBE でスペースと改行を見える...
-
XMLの改行方法とリンクの仕方
-
Hタグを改行禁止にしてspanのよ...
-
\\n \\r \\t について
-
リーバイス?
-
GoogleChromeでレイアウトが左...
-
aviutlで最後まで動画が読み込...
-
衣服のTシャツや下着のパンツな...
-
Pythonの勉強を始めました。バ...
-
HTMLでリンク先を新しいタブで...
-
HTMLのバージョンの確認方法は?
-
ジャケットの革の素材がわかり...
-
AfterEffectsでイージーイーズ...
-
品質表示タグが付いてない商品
-
XMLを作成してもタグしか表示さ...
-
テキストドキュメントのプレビ...
-
スマホでページ内リンクができない
-
pixivの消えないブックマークタ...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
\\n \\r \\t について
-
テキストエリア内の改行禁止
-
改行できる・できない入力ボッ...
-
preタグがプロの現場であまり使...
-
テーブルの幅を固定するとnowra...
-
H1タグに改行の<br>を使う
-
「:」について
-
テキストエリア内の改行もその...
-
htmlで文字列をクリップボード...
-
Hタグを改行禁止にしてspanのよ...
-
長いURLを途中で改行(折り返す...
-
カーソルを合わせると説明を表...
-
XMLの改行方法とリンクの仕方
-
Windowsのformでtextareaに入力...
-
VBE でスペースと改行を見える...
-
文字の最後に半角空白が勝手に...
-
高校1年生情報の問題について。
-
PCの画面を縮小したらサイズ...
-
<br />タグの、brの後の半角ス...
-
<TD><input type="text"></TD>...
おすすめ情報