• ベストアンサー

ActiveFormの有無を判定したい

a-kitaの回答

  • ベストアンサー
  • a-kita
  • ベストアンサー率50% (6/12)
回答No.1

よくコンパイル通りましたね。 If Screen.ActiveForm = Nothing Then ではなく、 If Screen.ActiveForm Is Nothing Then じゃないと、コンパイルを通らなかったです。 ちなみにIs Nothingを使うとフォームがアンロードされた時点で引っ掛けられます。 <試したプログラム> フォーム2枚。Form1上にLabel1とTimer1を貼り付け。 タイマーはInterval=100ms。 Forma2を消すとNothingとなります。 Private Sub Form_Load() Form2.Show End Sub Private Sub Timer1_Timer() If Screen.ActiveForm Is Nothing Then Label1 = "Nothing" Else Label1 = Screen.ActiveForm.Name End If End Sub

rukaandkaito
質問者

お礼

ありがとうございました。 おっしゃる通り、コンパイルエラーです!!!

関連するQ&A

  • .NET SqlDataReader のレコード有無判定

    SqlDataReader を使用して取得データが0件データだった場合どのような判定方法を利用していますか? Vb6.0の場合は If RecSet.EOF Then などをやっていましたが・・・ .NETのSqlDataReaderの場合どのような方法になるのでしょうか。 ご教授お願いいたします

  • シェルプログラムの判定について

    皆さんのお知恵をお貸しください シェルはcshです 目的set name = $<で$nameに入る文字が+-*/(一文字毎です)の時エラー処理をしたい 現状下記のプログラムですが判定出来ません set xx = $< set moji = `grep -c '[\-\+\*\/]' xx` if ( $moji == 1 ) then echo 文字に誤りがあります endif  else if ( $moji == 0 ) then echo OKです endif +-*/が入った時にエラーを出したいのですが+-*/をどう判定したらよいのか教えて頂けます様お願い致します。

  • EXCELからAccessテーブルの有無判定

    EXCELからAccessテーブルの有無判定及び新規作成  日報をEXCELで作成しACCESSへ登録してますが、年初めにテーブルの差替え行っています。 ACCESSとEXCELで何れも差替えを可能にしてますが、ACCESSで差替え後だとエラーになってしまいます。 それを回避する為、テーブルの有無を検索判定の方法が分りません。  自分なりに作成したのですが、予約済みエラーが発生してしまいます。 Sub 保存_Click() Dim ACC As Object Dim ACCC As ADODB.Connection Dim ACCR As ADODB.Recordset Dim SQL As String Dim DelSQL As String Dim CpySQL As String Set ACC = Access.Application Set ACCC = New ADODB.Connection Set ACCR = New ADODB.Recordset Const ACCpath = "D:\日報DB.mdb" SQL = "SELECT * FROM [日報]" DelSQL = "DELETE * FROM [日報];" CpySQL = "SELECT * INTO [;Database=D:\日誌DB.mdb].[日報(" & Year(Now) - 1 & "年)] FROM [日報]" 'Accessレコードへ接続し開く ACCC.Open "Provider=Microsoft.Jet.OLEDB.4.0;" & "Data Source=" & ACCpath ACCR.Open SQL, ACCC, adOpenStatic, adLockOptimistic '新年新規テーブル作成 ACCR.MoveFirst If ACCR.Fields("日付").Value <= DateSerial(Year(Now), 1, 1) Then If DCount("*", "MsysObject", "[Name]='日報(' & Year(Now) - 1 & '年)' And [Type]=1") = 0 Then  ←エラー ACCC.Execute CpySQL ACCC.Execute DelSQL End If End If ' オブジェクト開放 ACCC.Close Set ACCR = Nothing Set ACC = Nothing End Sub 宜しくお願いします。

  • ACCESSでのエクセルインポート時のシート有無の判定について

    ACCESS上でエクセルファイルをインポートするにおいてそのファイルが存在するかの判定用IF文は If Dir("C:\インポートファイル.xls") = "" Then MsgBox "インポートファイル.xlsファイルがありません。" End If でうまくいくのですが インポートファイル.xls ______________________________ /シート2/シート3/シート4/ インポート用EXCELファイルのシート1が無いことを判定するときの設定方法がネットを調べても発見することが出来ませんでした、やり方があるようなら教えてください If Dir("C:\インポートファイル.xls" ※恐らくここに何か追加が必要だとは思うのですが※ ) = "" Then MsgBox "インポートファイル.xlsファイルのシート1がありません。" End If 一度質問を登録したのですが、登録失敗していたので再度質問しました。よろしくお願いします。

  • textBox isNot Nothing とは

    textBox isNot Nothing とは どういうことですか わかりやすく教えてください あるサイトに以下のコードが書かれていました ここにある If cTextBox IsNot Nothing Then とはどういうことを意味しているのでしょうか If cTextBox IsNot Nothing Then MessageBox.Show(cTextBox.Name & " の Text を変更しました") End If

  • VBAでブック保護非保護を判定するには?

    エクセルVBAでブックが保護されているのかどうかを判定するにはどう書けばいいのでしょうか? If ActiveWorkbook.Protect Then ではだめでした。 また、シート保護の判定方法も教えてください。

  • シェルでファイルが2Gを超えているかの判定は?

    posix shでファイルが2Gを超えているかの判定を行いたいです。 size=`ls -l FILE | awk '{printf $5}'` if [ $size > 2147483648 ] then echo "2G超え" fi で、出来るかと思いましたがシェルではこのif文が行えません。 全然違う方法でいいのですが なんとかファイルサイズが2G超えか判定する方法は ありますでしょうか?

  • ExcelVBA 二つのセルに入力された時の判定

    セルA1とA2両方に値が入力された時、セルA3に文字を入力するマクロを作りたいです。 下記プログラムで試しているのですが、ステップインで見ると最初のIFでTrue判定されてしまいます。 どうすればこの条件を満たすマクロになるのか、教えて頂けないでしょうか。 以上、宜しくお願い致します。 Private Sub Worksheet_Change(ByVal Target As Range) If Intersect(Target, Range("A1")) Is Nothing Or Intersect(Target, Range("A2")) Is Nothing Then Exit Sub Else If Range("A1").Value <> "" And Range("A2").Value <> "" Then Range("A3").Value = "入力済み" End If End If End Sub

  • VB6でユーザー定義型がNothingかどうか調べるには?

    VB6でユーザー定義型がNothingじゃなかったら~処理~をするという事をしたいのですが 下記のように書くと「型が一致しません。」のエラーが出ます。 If Not ユーザー定義型 Is Nothing Then ~処理~ End If どのようにしたらユーザー定義型がNothingかどうか見分けられるのでしょうか?

  • VBAで配列のNULL判定

    VBAで下記のように配列に設定したNULL値を判定しようとしました。 Dim str() ReDim Preserve str(2) str(0) = "aaa" str(1) = Null str(2) = "bbb" 以下(1)、(2)の分岐処理ではNullと判定されませんでした。 どのように判定すれば良いでしょうか? (1) If str(1) = Null Then Debug.Print "Null値です" End If (2) If str(1) = "" Then Debug.Print "Null値です" End If