• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:時間表示の識別法は)

VBAで連結されていないフォームからテーブルの終了時間の表示を識別する方法は?

このQ&Aのポイント
  • Access2000のVBAで、連結されていないフォームからテーブルの終了時間の表示を識別する方法を教えてください。
  • 終了時間が表示されている場合は返却処理に、表示されていない場合は保存処理にするための条件を作りたいです。
  • 現在はワイルドカードを使用して終了時間のテキストボックスの値をチェックしていますが、正しく動作しません。

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

  • ベストアンサー
回答No.1

お疲れ様です 「isnull」関数を使用してみてはダメなのですか? If IsNull(Me.終了時間.Value) = False Then

Hugh
質問者

お礼

おかげさまでできました。 どうもありがとうございました。

全文を見る
すると、全ての回答が全文表示されます。

関連するQ&A

  • VBA の IF then 文につぃて

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

  • 指定した時刻と時間間隔を表示するVBA

    'カレンダーフォームのVBA If Intersect(Target, Range("BP1")) Is Nothing Then Exit Sub If MsgBox("日付を記入するためカレンダーを表示させます、よろしいでしょうか?", vbYesNo) = vbNo Then Exit Sub Else End If ' カレンダーフォームを起動する Call ShowCalendarFromRange2(Target) End Sub セルBP1を選択するとあらかじめ作成していたカレンダーフォームが起動され指定した日付を選択出来るVBAが入っています。 質問ですがカレンダーで日付を選択した後に直ぐinput boxを使用し「指定した時間(〇〇:〇〇)を入力して下さい。」と表示させ、指定した時間をCO14に表記させます。(例えば8:00と入力したらCO14に8:00と表示される様にします。) 次にもう一度input boxを使用し今度は「先ほど指定した時刻からの時間間隔(〇〇分)を入力して下さい。」と表示させ、CO15~CO37に指定した時間間隔を自動で表示させます。(例えば5分と入力したらCO15には8:05、CO16には8:10・・・とinput boxでしていた時間間隔を自動で表示させます。) この様なVBAはどの様にすれば宜しいでしょうか?

  • エクセルのマクロ(オートフィルタとテーブル)

    こんにちは! エクセル2016を使用しています。 下記のようなマクロを書いたのですが、長くて不細工ですよね。 もう少し簡単にする方法ってありますでしょうか? それと動作がちょっと遅いので、動作も早くなれば助かります。 Sheet1に下記のマクロを Private Sub Worksheet_Change(ByVal Target As Range)  If Target.Address = "$G$5:$H$5" Then  Else: Call 処理1  End If    If Target.Address = "$G$73:$H$73" Then  Else: Call 処理2  End If    If Target.Address = "$G$141:$H$141" Then  Else: Call 処理3  End If 。。。処理48までつづく  End Sub Module1に下記のマクロを書いてます。  Sub 処理1()  ActiveSheet.ListObjects("テーブル1").AutoFilter.ApplyFilter  End Sub  Sub 処理2()  ActiveSheet.ListObjects("テーブル2").AutoFilter.ApplyFilter  End Sub  Sub 処理3()  ActiveSheet.ListObjects("テーブル3").AutoFilter.ApplyFilter  End Sub 。。。処理48までつづく

  • エクセルVBA

    ユーザーフォームがあり、コマンドボタンが準備されています そのコマンドボタンをクリックした場合、処理1~処理3を実行するようにしています Sub CommandButton1_Click() CommandButton1処理1 CommandButton1処理2 CommandButton1処理3 End Sub Private Sub CommandButton1処理1() ・・・ End Sub Private Sub CommandButton1処理2() ・・・ End Sub Private Sub CommandButton1処理3() ・・・ End Sub 処理1→処理2→処理3という流れが進むかと思います 処理1の中にIf~End ifがあり、Ifに合致する場合はメッセージボックスが表示するようになっています 処理3の中に、「ユーザーフォームを閉じる」記載がされています 処理1のIfに合致する場合、メッセージボックスを表示させユーザーフォームを閉じることなく終了したいです つまりIfに合致した場合、その後の処理2、処理3をさせず処理1で終了させればいいのかと思ったのですが、そのようなことはできるのでしょうか? 処理1でIfに合致する場合、Exit Subとすると処理1は終了するかもしれませんが、その後処理2、処理3に進んでしまうので困っています よろしくお願いします

  • フォーム1が開いているのならMsgBoxを表示

    Sub マクロ() If フォーム1が開いているのなら Then MsgBox "フォーム1は開いています" End If End Sub アクセスで上記の事をやりたいのですが、コードを教えていただけますか? Sub test() Dim myForm As Form For Each myForm In Forms Debug.Print myForm.Name Next End Sub で、フォームをループできるのですが、いちいちループさせずに、フォーム1だけをつかんで、 起動している(開いている)ならメッセージボックスを表示させたいです。

  • フォームを閉じないようにする VB6 SP6

    VB6 でプログラムを作成中です。 プログラムを実行して、フォームが立ち上がった所で右上の×を押し、画面を閉じようとします。 そこで以下のコードで、もし×が押されたらvbYesNoメッセージボックスを表示させ、もし「いいえ」が押されたらフォームを閉じないようにし、実行画面を維持したいのです。 しかし、Exit Sub ですとプログラムが終了してしまい、困っています。宜しくお願い致します。 Private Sub Form_Unload(Cancel As Integer) 'フォームを閉じる Dim last As String last = MsgBox(" プログラムを終了させますか?", vbYesNo, "終了確認1") If (last = vbYes) Then Dim last2 As String last2 = MsgBox(" 本当にプログラムを終了させますか?", vbYesNo, "終了確認2") If (last2 = vbNo) Then Exit Sub End If End If If (last = vbNo) Then Exit Sub End If End Sub

  • シングルクリックでフォームが表示されない

    windowsXP  Excel2000 でマクロを作成している超初心者です。 あるサイトの暦で日付を入力するマクロですが、1枚のシートに 1)と 2)を併記して実験したところ正常に表示できました。 2)をシングルクリックで表示したいのですができません。なぜでしょうか? 2)はいかにも稚拙です。もっと整理したいのですが方法が分かりません。以上2点よろしくご指導ください。 -------------------------------------------------------------------- 1)シングルクリックで UserForm1を正常に起動できました。 Private Sub Worksheet_SelectionChange(ByVal Target As Range) 'シングルクリックで表示 Cancel = True 'プロシージャ終了後に表示されるショートカットメニューの非表示 If Target.Row > 22 And Target.Column > 2 And Target.Column < 4 Then UserForm1.Show End If If Target.Row > 22 And Target.Column > 13 And Target.Column < 15 Then UserForm1.Show End If End Sub ------------------------------------------------------------------------- 2)ダブルクリックでしか正常に表示されません。 'Private Sub Worksheet_SelectionChange(ByVal Target As Range)’ 起動しない Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean) '起動した Cancel = True 'プロシージャ終了後に表示されるショートカットメニューの非表示 If Target.Row > 23 And Target.Column > 1 And Target.Column < 3 Then Call ShowCalendarFromRange2(Target) End If If Target.Row > 23 And Target.Column > 12 And Target.Column < 14 Then Call ShowCalendarFromRange2(Target) End If If Target.Row > 12 And Target.Row < 21 And Target.Column > 12 And Target.Column < 14 Then Call ShowCalendarFromRange2(Target) End If If Target.Row > 12 And Target.Row < 21 And Target.Column > 14 And Target.Column < 16 Then Call ShowCalendarFromRange2(Target) End If If Target.Row > 12 And Target.Row < 21 And Target.Column > 16 And Target.Column < 18 Then Call ShowCalendarFromRange2(Target) End If If Target.Row > 12 And Target.Row < 21 And Target.Column > 18 And Target.Column < 20 Then Call ShowCalendarFromRange2(Target) End If End Sub ----------------------------------------------------------------------- 3)'これがサイトにあった例で、これを元に上のスクリプトを作りました。 'Private Sub Worksheet_SelectionChange(ByVal Target As Range) ' 複数セル選択時は無視 ' If Target.Count <> 1 Then Exit Sub ' A列以外は無視(今回サンプルの例) ' If Target.Column <> 1 Then Exit Sub ' カレンダーフォームを起動する ' Call ShowCalendarFromRange2(Target) 'End Sub ---------------------------------------------------------------

  • 時間帯の識別がしたいのですが…

    呼出されて勤務した時間帯を管理したいのですが selectcase文で18:00から2:00まで勤務したら『準夜-深夜』と表記したいのですが『型が合いません』とエラーが出ます マクロは我流で勉強中なのでよろしくお願いします Dim 開始時間 As Date, 終了時間 As Date Dim 開始時間帯 As String, 終了時間帯 As String, 業務時間帯 As String Private Sub 業務ステータス() 開始時間 = TimeValue(開始時間TextBox.Text) 終了時間 = TimeValue(終了時間TextBox.Text) Select Case 開始時間 Case 開始時間 > TimeValue("8:29") And 開始時間 < TimeValue("17:00"): 開始時間帯 = "日勤" Case 開始時間 > TimeValue("16:59") And 開始時間 < TimeValue("24:00"): 開始時間帯 = "準夜" Case 開始時間 > TimeValue("0:00") And 開始時間 < TimeValue("8:30"): 開始時間帯 = "深夜" Case 開始時間 = TimeValue("0:00"): 開始時間帯 = "深夜" End Select Select Case 終了時間 Case 終了時間 > TimeValue("8:29") And 終了時間 < TimeValue("17:00"): 終了時間帯 = "日勤" Case 終了時間 > TimeValue("16:59") And 終了時間 < TimeValue("24:00"): 終了時間帯 = "準夜" Case 終了時間 > TimeValue("0:00") And 終了時間 < TimeValue("8:30"): 終了時間帯 = "深夜" Case 終了時間 = TimeValue("0:00"): 終了時間帯 = "深夜" End Select If 開始時間帯 = 終了時間帯 Then 業務時間帯 = 開始時間帯 Else 業務時間帯 = 開始時間帯 & "-" & 終了時間帯 End If End Sub

  • チェックボックスのチェックによるマクロ処理の変更

    ユーザーフォームにチェックボックスとコマンドボタンを設置して、チェックボックスのチェックに応じて、処理を変えるにはどうしたらいいでしょうか。 具体的には、ユーザーフォームに例えば、 (1)チェックボックス  -りんご (=checkbox1)  -かき  -みかん  -もも (2)コマンドボタン  -春  -夏  -秋  -冬 のボタンがあるとします。 仮に、春のボタンには、 「Call 春」とプロシージャを読むようにしています。 春のプロシージャには、 例えば、 Sub 春()  If checkbox1=true then   range("A1").value="肥料"  End if End sub のように書いています。 チェックボックスのチェックの有無・結果に応じて、処理を変えたいのですが、これでは、checkbox1box1のチェックの結果がsubプロシージャに渡せないので、どのようにしたらいいのでしょうか。 よろしくお願い致します。

  • エラー値を含み、空白以外の場合を識別したい

    エクセル2000です。 A1セルがエラー値を含み、空白以外の場合を識別したいのですが、以下のように回りくどく書く以外に良い方法があったらお教えください。 空白とは関数によって "" が表示されている場合と、まったくの空白の両方のことです。 Sub test() Dim buf As Boolean buf = IsError(Sheets("Sheet1").Range("A1")) If Not (buf) Then buf = Sheets("Sheet1").Range("A1").Value <> "" End If If buf Then MsgBox "該当しちゃいました。" End If End Sub

このQ&Aのポイント
  • 会社で質問できない理由は、バカだと思われるのが嫌なためであり、前職でクビになった経験がトラウマになっているためです。
  • 質問をすることで能力不足と思われて解雇される可能性もあるため、自分でネットや過去資料を調べながら処理をすることが多いですが、時間がかかります。
  • 効率的な仕事の方法としては、他人に質問することや失敗をして学ぶことも重要ですが、自分自身で学ぶための学習方法やツールを活用することも有効です。
回答を見る

専門家に質問してみよう