前提・実現したいこと
担当者ごとの件数などを集計するために、毎日エクセルのリスト(A~I No・日付・区分-新規・区分-継続・会員番号・氏名・紹介-実施・紹介-過去実施・担当者)に入力しています。入力の簡易化のため、ユーザーフォーム作成中に以下のエラーメッセージが発生しました。Rangeメソッドがそもそも該当部分になく、どう修正すればいいのかわかりません。
よろしくお願いいたします。
発生している問題・エラーメッセージ
実行時エラー'1004': 'Range'メソッドは失敗しました:'_Global'オブジェクト デバック: If 実施入力.doModal(ActiveCell.Row) = True Then
該当のソースコード
<ワークシートモジュール> Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean) If 実施入力.doModal(ActiveCell.Row) = True Then MsgBox "登録されました。" Else MsgBox "登録できませんでした。" End If Cancel = True End Sub <標準モジュール> Sub FormShow() If 実施入力.doModal(ActiveCell.Row) = True Then MsgBox "登録されました。" Else MsgBox "登録できませんでした。" End If Unload 実施入力 End Sub <ユーザーフォームモジュール> Option Explicit Private ActiveRow As Long Private bln登録 As Boolean Public Function doModal(ByVal argRow As Long) As Boolean Dim i As Integer ActiveRow = argRow With Worksheets("来客リスト") '日付セル Me.txt日付.Text = .Cells(ActiveRow, 2) '区分セル If .Cells(ActiveRow, 3) = "○" Then Me.opt新規.Value = True ElseIf .Cells(ActiveRow, 4) = "○" Then Me.opt継続.Value = True End If '会員番号~氏名セル Me.txtID.Text = .Cells(ActiveRow, 5) Me.txt氏名.Text = .Cells(ActiveRow, 6) '紹介セル If .Cells(ActiveRow, 7) = "○" Then Me.chb実施.Value = True ElseIf .Cells(ActiveRow, 7) = "×" Then Me.chb実施.Value = False End If If .Cells(ActiveRow, 8) = "○" Then Me.chb過去実施.Value = True ElseIf .Cells(ActiveRow, 8) = "×" Then Me.chb過去実施.Value = False End If '担当者セル Me.cmb担当者.Text = .Cells(ActiveRow, 9) End With bln登録 = False Me.Show doModal = bln登録 End Function Private Sub UserForm_Initialize() Select Case True Case Me.opt新規.Value Case Me.opt継続.Value Case Else End Select Me.cmb担当者.List = Range("担当者").Value End Sub Private Sub btn登録_Click() With Worksheets("来客リスト") '日付セル .Cells(ActiveRow, 2) = Me.txt日付.Text '区分セル If Me.opt新規.Value = True Then .Cells(ActiveRow, 3) = "○" Else .Cells(ActiveRow, 3) = "" End If If Me.opt継続.Value = True Then .Cells(ActiveRow, 4) = "○" Else .Cells(ActiveRow, 4) = "" End If '会員番号~氏名セル .Cells(ActiveRow, 5) = Me.txtID.Text .Cells(ActiveRow, 6) = Me.txt氏名.Text '紹介セル If Me.chb実施.Value = True Then .Cells(ActiveRow, 7) = "○" Else .Cells(ActiveRow, 7) = "×" End If If Me.chb過去実施.Value = True Then .Cells(ActiveRow, 8) = "○" Else .Cells(ActiveRow, 8) = "×" End If '担当者セル .Cells(ActiveRow, 9) = Me.cmb担当者.Text End With bln登録 = True Me.Hide End Sub Private Sub btn閉じる_Click() bln登録 = False Me.Hide End Sub
試したこと
ユーザーフォーム自体は問題なく作成できましたが、シートのダブルクリックで表示できるようにコードを追加したところ、エラーになってしまいました。シートからユーザーフォームへのデータの受け渡しがうまく出来ていないということでしょうか?
補足情報(FW/ツールのバージョンなど)
Windows10/Excel2010
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2018/08/09 14:36 編集