早速ですが、よろしくお願い致します。

単純なマクロですが、下記の記述は実行すると、ただメッセージボックスが表示される…つもりです。
タイトルが「確認メッセージ」、文字は「完了しました」、ボタンは「OK」のみです。
しかし、エラーになってしまいます。(コンパイルエラー 構文エラー)


Sub test()
  MsgBox ("完了しました",vbOKOnly,"確認メッセージ")
End Sub


どこが間違っているのでしょうか??
ご教授をお願い致します。

A 回答 (1件)

んーエクセルいじったことないけどVBならあるので・・・



(   )いるのかな?

OKボタンだけならいらないかもしれないよ。
    • good
    • 0
この回答へのお礼

おっしゃる通りでしたm(__)m

(   )は入りませんでした。って言うか私の持っているテキストの間違えみたいです

ありがとうございました\(^o^)/

お礼日時:2002/04/06 12:36

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aと関連する良く見られている質問

Qエラー時の MsgBox の出し方

VB5
WIN2000  です。
おはようございます。初心者の質問で申し訳ありませんが、宜しくご指導頂きたいと思います。

MsgBoxの質問です。顧客管理表を作っていますが、存在しない顧客番号等を検索をした時に
《実行時エラー'3021':
カレントレコードがありません》

というエラーが出ます。これを、 MsgBoxで、「データーは存在しません。」という感じで表示できるようにするには、どのようなコードを書けばいいでしょうか?

ちなみに今は、データを抽出できた時に
rs.MoveNext
If rs.EOF Then
MsgBox "(^ω^)Already at end of recordset!"
rs.MoveLast
Exit Do
End If
Loop
というメッセージを出すようにしてます。
これの後に続くコードとしては、どのような感じにすれば・・?
BOFとかも考えたのですが、さっぱりうまく動きません・・。

どうかご指導宜しくお願いします。

VB5
WIN2000  です。
おはようございます。初心者の質問で申し訳ありませんが、宜しくご指導頂きたいと思います。

MsgBoxの質問です。顧客管理表を作っていますが、存在しない顧客番号等を検索をした時に
《実行時エラー'3021':
カレントレコードがありません》

というエラーが出ます。これを、 MsgBoxで、「データーは存在しません。」という感じで表示できるようにするには、どのようなコードを書けばいいでしょうか?

ちなみに今は、データを抽出できた時に
rs.MoveNext
If rs.EO...続きを読む

Aベストアンサー

On Error GoTo ErrorHandler
rs.MoveNext
If rs.EOF Then
MsgBox "(^ω^)Already at end of recordset!"
rs.MoveLast
Exit Do
End If
Loop
Exit Sub

ErrorHandler:
    MsgBox "データは存在しません。"

では、どうでしょうか?
確認も何もしてませんが。。

Qsubプロシージャーですか?subステートメン

----------------
Sub test()

End Sub
----------------
は、subプロシージャーですか?subステートメントですか?

上記のコードの「Sub」にカーソルをあて、F1を押すとヘルプが立ち上がり「Sub ステートメント」と表示されますが、

挿入(I)→プロシージャー(P)を見ると画像のように「Subプロシージャー」となっています。

どちらが正しいのでしょうか?
どちらも正しいのでしょうか?

Aベストアンサー

Sub~という構文が「Subステートメント」。プログラミング言語では、ステートメントは「文」とも訳されます。
そのSub~End Subで定義した一連のものが「Subプロシージャ」。プロシージャは「手続き」とか言う意味。

だから、Subのヘルプを見ると、Subステートメントの書式などになってるし、
挿入→プロシージャでは、「手続き」とての一かたまりを挿入するから、End Subまでになる。

QSub ***( ) と Private Sub ***( ) の違い

初歩的な質問で申し訳ありませんが・・・

自分でコードを書いていても、イベントが発生したりした時の処理で、コードのウィンドウで上のドロップダウンリストで選択できる時の処理などは自動的に[Private Sub Command1_Click( )]などと出てくるのでそのまま使っています。自分で別途プロシージャーを作成する時は[Sub ****( )]としています。
ですがその違いを理解しないまま、自分で作成する時は[Private Sub]ではなくて[Sub]を使っています。

Sub ***( ) と Private Sub ***( ) の違いは何なんでしょうか?
どなたか説明頂けませんか?
よろしくお願いします。

Aベストアンサー

「Sub」の部分にカーソルを置いて[F1]を押せばヘルプが起動します。
「指定項目」のところに「Public」と「Private」の説明がありますよ。
省略して「Sub hogehoge()」とした場合は「Public」とみなされます。

Publicは「すべてのモジュールから呼び出せるプロシージャ」ということになります。
Privateとすると「同じモジュールの中からしか呼び出せないプロシージャ」となります。

もしExcelをお持ちでしたらExcelのVBEで標準モジュールを追加し、「Sub Test1()」と「Private Sub Test2()」を作成してみてください。
そしてExcelの[ツール]-[マクロ]-[マクロ(Alt+F8)]でマクロ実行のダイアログを表示させてみるとわかります。
ここには実行できるプロシージャの一覧が表示されますが、Test1は表示されているけれどTest2は表示されません。
Test1はPublicで、Test2はPrivateだからです。

QExcel VBA: private sub 内の変数の値を Sub へ渡すには

VBA初心者です。private sub 内で条件に合致した変数の値をSubへ渡すにはどうしたらよいのでしょう。下記を見ていただければやりたいことの意図は伝わるかと思います。private sub内の変数が多分private sub内のみでしか参照出来ないからだとは思いますが、うまくいきません。グローバル変数化みたいなことが出来るのでしょうか。

Sub Find_OK()
MsgBox "条件に合致したのは" & var1 & "です。"
End Sub

Private Sub Worksheet_Calculate()
Dim var1
 For var1 = 1 to 10
 If var1 > 8 Then Call Find_OK
End If
Next
End Sub

Aベストアンサー

Sub Find_OK(var1)
MsgBox "条件に合致したのは" & var1 & "です。"
End Sub

Private Sub Worksheet_Calculate()
Dim var1
 For var1 = 1 to 10
 If var1 > 8 Then Call Find_OK(var1)
End If
Next
End Sub

QVB.NETでMSGBOXを使ってエラーを表示させる場合

VB.NETでMSGBOXを使ってエラーを表示させる場合


VB6で
MsgBox Error, vbInformation, "処理"

と書くと、システムエラーが発生した場合、メッセージを表示してくれるのですが

VB.netの場合上記 Error の部分はどうかえればいいでしょうか。

Aベストアンサー

詳しくはありませんが、Err.Descriptionを使う方法や、Try CatchでException.Messageを使う方法などがあると思います。
.NET流でいけばTry Catchを使うのが一般的かもしれません(C#などはこの書き方になります)。


On Error GoTo ErrMsg
a = a / 0
ErrMsg:
MsgBox(Err.Description)


Try
a = a / 0
Catch ex As Exception
MsgBox(ex.Message)
End Try


[参考]
http://homepage1.nifty.com/rucio/main/dotnet/shokyu/standard12.htm


人気Q&Aランキング

おすすめ情報