• 締切済み

コンボボックスで

marumaru_a_wの回答

回答No.4

はじめましてmarumaru_a_wといいます。 エラートラップをはずしてしまうのはどうでしょう? On Error GoTo ERR_ROUTIN をコメントにしたら何処でエラーになったかわかるはずです。 ここからは憶測ですが 下のエラーメッセージから 「cmbCUSTCD = ""」の部分がエラーになっていると思われます。Listに""がないのではないでしょうか? 空白を指定したい場合は、「cmbCUSTCD.ListIndex = -1」でいいはずです。 それでも、落ちるとしたら「cmbCUSTCD.ListIndex = intloop」の部分の「intloop」の値が「cmbCUSTCD.ListCount」の値よりも大きい値が入っていると思われます。 違っていた場合は、すみませんです。

関連するQ&A

  • コンボボックスで

    あるサンプルソースのコンボボックスのリストの内容を変えたいのですがどこを変えて良いのかわかりません。教えてください。 On Error GoTo ERR_ROUTIN IERR_HANDLER.Push "cmbS_FIELD_Click" If PUSRFIELD(cmbS_FIELD(Index).ListIndex).FLG = True Then lblSENTAKU(Index).Visible = True cmbSENTAKU(Index).Visible = True lblATAI(Index).Visible = False txtATAI(Index).Visible = False Select Case PUSRFIELD(cmbS_FIELD(Index).ListIndex).FIELDNM Case "GROUPCD" cmbSENTAKU(Index).Clear cmbSENTAKU(Index).AddItem "", intCNT For intCNT = 1 To UBound(PUSRGROUP) cmbSENTAKU(Index).AddItem PUSRGROUP(intCNT).strGROUPNM, intCNT Next Case "LOCATIONCD" cmbSENTAKU(Index).Clear cmbSENTAKU(Index).AddItem "", intCNT For intCNT = 1 To UBound(PUSRLOCAT) cmbSENTAKU(Index).AddItem PUSRLOCAT(intCNT).LOCATNM, intCNT Next Case "ENTUSER" cmbSENTAKU(Index).Clear cmbSENTAKU(Index).AddItem "", intCNT For intCNT = 1 To UBound(PUSRTANTO) cmbSENTAKU(Index).AddItem PUSRTANTO(intCNT).TANTONM, intCNT Next End Select

  • 実行時エラー92 forループが初期化されていませ

    エクセルVBAでFor Eachを使ってるのですが、 Nextの部分で 実行時エラー92 forループが初期化されていません。 というエラーになります。 On Error GoTo ERR1 For Each myObj In objIE.Document.all.tags("ul") If myObj.className = "" Then '○○の場合 Exit Sub ERR1: If Err.Number = 424 Then On Error GoTo 0 'エラーを解除 '▲▲の場合 If strカテゴリ Like "" Then Exit Sub End If End If End If Next というコードなのですが、どこかおかしいですか?

  • Accessフォームの作成

    Accessで作成されているシステムの ファイル取り込みフォームにある実行ボタンを押下すると、 下記のメッセージが表示されます。 「select case に対応する case がみつからない。」 どこかで指定しないといけないのでしょうか? Private Sub Cmd実行_Click() On Error GoTo Err Dim StrSql As String Dim IntNDCnt As Integer Dim IntNTCnt As Integer '確認メッセージの出力 If MsgBox("処理を開始します。よろしいですか?", vbInformation + vbYesNo, "データ取込処理") = vbNo Then Exit Sub End If '対象データ別の処理実行 Select Case Me.Cmb対象.ListIndex Case -1 'エラー MsgBox "読込むデータを指定してください", vbCritical, "データ取込処理" Exit Sub Case 0 '全データ If F_手数料明細読込() = False Then Exit Sub End If If F_奨励金読込() = False Then Exit Sub End If If F_減額読込() = False Then Exit Sub End If If F_預り金読込() = False Then Exit Sub End If Case 1 '手数料データ If F_手数料明細読込() = False Then Exit Sub End If Case 2 '奨励金データ If F_奨励金読込() = False Then Exit Sub End If Case 3 '減額データ If F_減額読込() = False Then Exit Sub Case 4 '預り金データ If F_預り金読込() = False Then Exit Sub End If End Select 今は、Case 4が黄色に反転します。

  • VBAで2つのBOOKのセル範囲を比較

    異なるBOOKのセル範囲のデータを照らし合わせ、不一致があるか確認したいのです。 その際、セル範囲をあらかじめVBAで決め打ちするのではなく、画面上で選択したいので、Application.Inputboxを使おうと思います。 以下のコードで一応はできたのですが、これを使うためには、画面を分割して2つのBOOKの該当箇所を「並べて比較」で並べて表示させておかなければ片方のシートしか選択することができません。 選択範囲が小さい場合は並べて表示させても問題ないのですが、かなり大きな範囲を選択する場合は、並べて表示で画面が半分にされると選択するのが大変です。 まず比較元シートを画面全体に表示して範囲選択し、次に比較先を表示して選択できるようにする方法があばとても作業が楽になります。 ご教示いただければ幸いです。 Sub 選択範囲データ比較() '2019/05/16   Dim myV, myW   Dim buf(1) As Range   Dim i As Long, m As Long, j As Long      Set buf(0) = Application.InputBox(Prompt:="セルを選択してください。", Type:=8)   myV = buf(0).Value   Set buf(1) = Application.InputBox(Prompt:="比較するセルを選択してください。", Type:=8)   myW = buf(1).Value   If UBound(myV, 1) <> UBound(myW, 1) Then     MsgBox "配列 1次元要素数が異なります。", vbCritical     Exit Sub   End If   If UBound(myV, 2) <> UBound(myW, 2) Then     MsgBox "配列 2次元要素数が異なります。", vbCritical     Exit Sub   End If   For i = LBound(myV, 1) To UBound(myW, 1)     For n = LBound(myV, 2) To UBound(myW, 2)       If myV(i, n) <> myW(i, n) Then         j = j + 1       End If     Next n   Next i   If j > 0 Then     MsgBox j & "個、相違があります。", vbCritical   Else     MsgBox "同一です。" _     & vbCrLf & "" _     & vbCrLf & "1次元:" & UBound(myV, 1) & "個" _     & vbCrLf & "2次元:" & UBound(myV, 2) & "個"   End If End Sub

  • アプリケーションが起動しているかどうかの判断

    いつもお世話になります。 やりたいことは、クライアントサイドのスクリプトで、 あるアプリケーションが起動しているかどうかの 判断を行いたいです。 ネットで以下のようなプロセスを見るスクリプトを見つけてたのですが、 クライアントサイドのスクリプトでは動作しないようです。 Function IsRun() Dim strProcName ' プロセス名 Dim objProcList ' プロセス一覧 Dim objProcess ' プロセス情報 Dim bRet ' 戻り値 On Error Resume Next bRet = false strProcName = "xxxx.exe" Set objProcList = GetObject("winmgmts:").InstancesOf("win32_process") If Err.number <> 0 then msgbox "Err.Number=" & Err.number & vbcrlf & "Err.Description=" & Err.Description exit function end if For Each objProcess In objProcList If LCase(objProcess.Name) = strProcName Then bRet = true ' 起動している Exit For End If Next On Error Goto 0 IsRunNotesClt_b = bRet Set objProcList = Nothing End Function どなたかクライアントサイドのスクリプトで アプリケーションが起動してるかどうかを判断できる方法をご教授いただけないでしょうか? (ブラウザはIE限定なので、できればvbscriptが良いです) よろしくお願いします。

    • ベストアンサー
    • HTML
  • ダイアログボックスを表示したい。

    下記処理コードを実行したときに、 ファイル選択のダイアログ表示をさせるのにファイル名を決まった形にしないと駄目みたいです。 (例)strLookupFileName = "abcms_E000_H*.csv;" ファイル名に関係なくダイアログを表示させるにはどうしたら良いのでしょうか? 今現在、ファイル名を適当なものに変えると「キャンセルされました。」のメッセージボックスが表示されます。 例:strLookupFileName = "abc明細.xls"←エラー(これでも可に) (処理コード) 'ファイル選択 strFileName = FileNameGet(Me.Hwnd, strHomeDirectory, strLookupFileName, "CSV ファイル", "ファイル選択") If strFileName = "" Then MsgBox "キャンセルされました。", vbInformation + vbOKOnly, " " Exit Sub End If ↓ Public Function FileNameGet(Owner As Variant, DefaultDirectory As String, DefaultFilter As String, DefaultFilterName As String, Title As String) As Variant On Error GoTo Err Dim dlg As OPENFILENAME Dim rslt As Long dlg.hwndOwner = Owner dlg.hInstance = 0 'dlg.nFilterIndex = 0 dlg.lpstrTitle = Title & Chr(0) & Chr(0) dlg.lpstrFileTitle = Space(256) & Chr(0) & Chr(0) dlg.lpstrInitialDir = DefaultDirectory & Chr(0) & Chr(0) dlg.lpstrFile = DefaultFilter & Space(256) & Chr(0) & Chr(0) dlg.lpstrFilter = DefaultFilter & Chr(0) & Chr(0) dlg.nMaxFile = Len(dlg.lpstrFile) dlg.nMaxFileTitle = Len(dlg.lpstrFileTitle) dlg.lStructSize = Len(dlg) rslt = GetOpenFileName(dlg) If rslt = 0 Then FileNameGet = "" Exit Function End If 'ファイル名チェック If IsNull(dlg.lpstrFile) Or dlg.lpstrFile = "" Then MsgBox "ファイル名が取得できませんでした。", vbInformation + vbOKOnly, " " FileNameGet = Null Exit Function End If 'FileNameGet = StrConv(MidB(StrConv(dlg.lpstrFile, vbFromUnicode), 1, (dlg.nFileExtension + 3)), vbUnicode) FileNameGet = Left$(dlg.lpstrFile, InStr(dlg.lpstrFile, vbNullChar) - 1 On Error GoTo 0 Exit Function Err: MsgBox Err.Description End Function

  • セルの値をワークシート名にする(エクセル2013)

    インストラクターのネタ帳さんより http://www.relief.jp/itnote/archives/003382.php 下記「セルの値をワークシート名にする?Worksheet_Change」 を拝借し利用させていただこうと思いましたが ---------------------- Option Explicit Private Sub Worksheet_Change(ByVal Target As Range) On Error GoTo ERR_HANDLER If Target.Address(False, False) = "H1" Then ActiveSheet.Name = Range("H1").Value End If Exit Sub ERR_HANDLER: MsgBox "現在のH1セルの値はシート名にできません。" End Sub ---------------------- はそのまま出来るのですが、 H1セルにデータの入力規則:リストを指定しますと エラーとなりシート名が変わりません sheet1のリストA1:A50をsheet2のH1セルにリスト表示させ その表示名をそのままシート名に出来ませんでしょうか? ---------------------- Sub copy Range("H1").Copy Range("P1") End Sub ---------------------- Option Explicit Private Sub Worksheet_Change(ByVal Target As Range) On Error GoTo ERR_HANDLER If Target.Address(False, False) = "P1" Then ActiveSheet.Name = Range("P1").Value End If Exit Sub ERR_HANDLER: MsgBox "現在のP41セルの値はシート名にできません。" End Sub ---------------------- としてH1のセルをP1にコピーしたものを指定して試しましたがやはりエラーとなり うまくいきませんでした。 全くの素人で恐縮ですがよろしくお願いいたします

  • Excel2010 イベントプロシージャが動かない

    VBAはほとんどいじったことのない初心者です。 イベントプロシージャをインターネットから探してきて、コピペして使おうとしてます。 Private Sub Worksheet_Change(ByVal Target As Range) On Error GoTo ERR_HANDLER If Target.Address(False, False) = "E2" Then ActiveSheet.Name = Range("E2").Value End If Exit Sub ERR_HANDLER: MsgBox "現在のE2セルの値はシート名にできません。" End Sub やりたいのは、セルE2の値に変更があったら、そのセルの値をシート名にしたいということです。 初心者には難しいでしょうか? ご教示いただけると幸いです。 よろしくお願いします。

  • リストボックスから削除、「いいえ」でも削除される

    Windows7 Excel2007でマクロ作成中の初心者です。 リストボックスから、シート(顧客名)を選んで削除するマクロです。 削除がうまくいくのですが、「いいえボタン」を押しても シートが削除されてしまいます。どう修正したらよろしいでしょうか。 Private Sub 顧客削除_Click() Dim i As Integer Dim btn Dim name As String With 顧客リスト For i = 0 To .ListCount - 1 If .Selected(i) Then name = .list(i) '選択されたリストを変数に格納 btn = MsgBox("本当に、 " & name & " さんを削除していいですか?", _ vbYesNo, "削除の確認") End If Next i Application.DisplayAlerts = False Worksheets(Mid(.list(.ListIndex - 0), InStr(.list(.ListIndex - 0), " ") + 1)).Delete Application.DisplayAlerts = True '顧客リスト.RemoveItem (顧客リスト.ListIndex) '顧客リスト.ListIndex = -1 リストボックスの項目削除 Worksheets(1).Activate End With If btn = vbYesNo Then Exit Sub End If ActiveWorkbook.Save End Sub ----------------------------------------------- Sub リストボックスの項目削除() Dim i As Integer For i = 顧客リスト.ListCount - 1 To 0 Step -1 If 顧客リスト.Selected(i) Then 顧客リスト.RemoveItem (i) Exit For End If Next i End Sub

  • VB6 テキストボックスの数値をコンボボックスに反映させるには?

    TextBoxのChangeイベントを使って、 テキストボックスの数値をコンボボックスに反映させる (具体的には数値をコンボボックスのindex数にし、それぞれのindexに アニメ+str(i)としたいです。 しかし、後で書くソースは何故か、コンボボックスが アニメ1 アニメ0 アニメ1 アニメ2 アニメ3 … となってしまいます。 これを アニメ0 アニメ1 アニメ2 アニメ3 … としたいです。どうすればいいんでしょうか? Private Sub Text8_Change() Static p As Integer If Text8.Text = "" Then Exit Sub For i = 0 To p If p = 0 Then GoTo b If Form6.Combo1.NewIndex = -1 Then GoTo b Form6.Combo1.RemoveItem (i) Next i b: For i = 0 To Val(Text8.Text) Form6.Combo1.AddItem "アニメ" + str(i) Next i p = Val(Text8.Text) End Sub