excel VBA コンボボックスでシート選択後エラー

このQ&Aのポイント
  • ユーザーフォームに配置されたコンボボックスを使用して、ブック内のシートを選択する際にエラーが発生します。
  • テキストボックスへの入力後、コマンドボタンをクリックすると、エラーが表示されますが、値は正しく入力されています。
  • エラーの箇所は、コンボボックスの値によってシートを選択している部分です。
回答を見る
  • ベストアンサー

excel VBA コンボボックスでシート選択後エラー

どなたかご教授願います。 ユーザーフォームにコンボボックスを配置し、ブック内のシートすべて選択できるようにしてます。選択後シートに移動するのですが、同じユーザーフォームのテキストボックス等に入力した後、コマンドボタンをクリックするとエラーとなります。しかしテキストボックス等の値は間違いなく入力されています。よろしくお願いします。 Private Sub ComboBox1_Change() → Sheets(Me.ComboBox1.Value).Select       この部分が黄色になってしまいます End Sub Private Sub CommandButton1_Click() Dim myRow As Long ActiveSheet.Select myRow = Range("B65536").End(xlUp).Offset(1, 0).Row '各テキストボックの値をセルに入力 Cells(myRow, 2).Value = TextBox1.Value Cells(myRow, 3).Value = TextBox1.Value Cells(myRow, 4).Value = ComboBox2.Value Cells(myRow, 6).Value = TextBox2.Value Cells(myRow, 7).Value = TextBox3.Value Cells(myRow, 8).Value = TextBox4.Value 'Cells(myRow, 9).Value = TextBox5.Value '書式設定 Cells(myRow, 2).NumberFormatLocal = "m" Cells(myRow, 3).NumberFormatLocal = "dd" Cells(myRow, 6).NumberFormatLocal = "#,###" 'セルに入力が各テキストボックの値をクリア ComboBox1.Value = "" ComboBox2.Value = "" TextBox2.Value = "" TextBox3.Value = "" TextBox4.Value = "" 'フォーカス移動 ComboBox2.SetFocus End Sub

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

  • ベストアンサー
  • n-jun
  • ベストアンサー率33% (959/2873)
回答No.1

>ComboBox1.Value = "" これによりチェンジイベントが発生するからでは? Private Sub ComboBox1_Change() If Me.ComboBox1.ListIndex <> -1 Then '追加 Sheets(Me.ComboBox1.Value).Select End If '追加 End Sub としてみるとか。

uznozm
質問者

お礼

n-jun様 お忙しい中ご回答いただきありがとうございました。 >ComboBox1.Value = "" 原因これだったんですね、マヌケでした。

関連するQ&A

  • excel VBA リストボックス複数選択後の処理

    どなたか教えてください。 Sheet1にユーザーフォームを使用しデータを入力しています。 リストボックスが複数選択した後にコマンドボタンをクリックした際、 選択項目を1行のセル[Cells(myRow, 16)~Cells(myRow, 20)]に左詰めで表示したい場合はどのようにするのでしょうか? 例:リストボックスには10項目あるとして、そのうち1行目、3行目、5行目だけが選択された場合のパターンで、1行目がCells(myRow, 16)、3行目がCells(myRow, 17)、5行目がCells(myRow, 18)に表示したいのですが・・・。 最大5項目選択とみています。 ※コマンドボタンは他のTextBox等も含まれ、下記のような感じです。 Private Sub CommandButton1_Click() Dim myRow As Long Sheets("Sheet1").Select myRow = Range("A65536").End(xlUp).Offset(1, 0).Row '各テキストボックの値をセルに入力 Cells(myRow, 1).Value = TextBox1.Value Cells(myRow, 2).Value = TextBox2.Value Cells(myRow, 3).Value = ComboBox1.Value Cells(myRow, 4).Value = TextBox3.Value Cells(myRow, 5).Value = TextBox4.Value . . . Cells(myRow, 16).Value = Cells(myRow, 17).Value = Cells(myRow, 18).Value = . . . 'セルに入力が各テキストボックの値をクリア TextBox3.Value = "" TextBox4.Value = "" ComboBox2.Value = "" ComboBox3.Value = "" 'フォーカスをTextBox3に移動 TextBox3.SetFocus End Sub

  • エクセル VBAのチェックボックスについて

    お読みくださり、ありがとうございます。 エクセル初心者でございます。 エクセルのマクロなのですが、 お詳しい方、是非教えて欲しいです!汗 調子に乗って入力フォームなるものを作りました。 入力フォームの中にて、チェックボックスで「ある」「なし」の項目を入れてみたのですが、チェックしていないのに、値が入る現象が起きています汗 以下、素人が書いたコードを恥を承知で記載させていただきます。 Private Sub CheckBox1_Click() If CheckBox1.Value = True Then OK = "○" End If End Sub Private Sub CheckBox2_Click() If CheckBox2.Value = True Then NO = "×" End If End Sub Private Sub UserForm_Click() End Sub '以下のコードは、登録ボタンがクリックされたときの処理! Private Sub 登録ボタン_Click() If TextBox1.Text = "" Then MsgBox "グッズ名を入力してください。" Exit Sub End If If TextBox2.Text = "" Then MsgBox "アプローチ先を入力してください。" Exit Sub End If With Worksheets("協賛グッズ") With Cells(Rows.Count, 2).End(xlUp) .Offset(1, 0).Value = TextBox1.Text .Offset(1, 1).Value = mori .Offset(1, 2).Value = mori2 .Offset(1, 3).Value = TextBox2.Text .Offset(1, 5).Value = TextBox3.Text .Offset(1, 6).Value = TextBox4.Text .Offset(1, 7).Value = TextBox5.Text .Offset(1, 8).Value = TextBox6.Text End With End With TextBox1.Text = "" TextBox2.Text = "" TextBox3.Text = "" TextBox4.Text = "" TextBox5.Text = "" TextBox6.Text = "" CheckBox1.Value = False CheckBox2.Value = False End Sub 以上です。 おかしなところ満載かと思いますが、 チェックを入れた項目だけ値を入れたいと考えております。 おわかりになるかたおりましたら何卒お助けください汗 よろしくお願いいたします。

  • EXCEL VBA コードをスマートに

    EXCEL VBAのフォームで、 テキストボックスの値をあらかじめTextBox1に入力しておくコードを 書いてみました。 Private Sub UserForm_Initialize() TextBox1.Value = Cells(4, 1) & Cells(4, 3) & Cells(4, 5) & Cells(4, 7) & Cells(6, 1) & Cells(6, 3) & Cells(6, 5) & Cells(6, 7)Cells(8, 1) & Cells(8, 3) & Cells(8, 5) & Cells(8, 7).Value End Sub 実際はもっと長いです・・・ どうしたら、スマートに記述できますか? お知恵をお貸しください!!!

  • エクセルVBAユーザーフォーム「テキストボックス」「コンボボックス」の書式設定について

    ユーザーフォームを作成して、出荷実績を投入しようとしています。 現在、ユーザーフォームを作成して、 上から以下のようにボタンが並んでいます。 (1)コンボボックス1  商品コードと商品名を選択する。 (2)テキストボックス1~7  地域ごとの出荷実績を投入する。 (3)コマンドボタン1  決定→入力 (4)コマンドボタン2  終了 そして、以下3つの問題点がありますが、どのようにVBAを記述したら良いのか、わかりません。  a.コンボボックス1に表示される商品を商品コード   (アルファベット)と商品名で改行したい。   つまり「折り返して全体を表示する」ことは出来ないでしょうか。  b.「AAAA~」は5行目・「CCCC~」は7行目 といった   ように、商品ごとに値を投入する行を変更したい。  c.テキストボックス1~6の内容の合計が自動で(入力している   最中に)テキストボックス7に表示されるようにしたい。 次のようなVBAは記述出来たのですが、上記3つの要素を加えるには どのようにしたらよいのか、教えていただけないでしょうか? ちなみに入力する順番は次のようになっています。(設定済み) M4→L4→J4→K4→H4→I4 →M5→L5→J5→K5→H5→I5 ------------------------------------------------------------- ’フォームを表示させる。 Sub formdsp() UserForm1.Show End Sub ’フォーム内容 Dim cnt As Integer Private Sub Combobox1_Change() End Sub '入力ボタン Private Sub CommandButton1_Click() With ActiveSheet .Cells(cnt, 13) = TextBox1.Text .Cells(cnt, 12) = TextBox2.Text .Cells(cnt, 10) = TextBox3.Text .Cells(cnt, 11) = TextBox4.Text .Cells(cnt, 8) = TextBox5.Text .Cells(cnt, 9) = TextBox6.Text .Cells(cnt, 15) = TextBox7.Text cnt = cnt + 1 .Cells(cnt, 13) = Activate End With UserForm1.TextBox1.Text = "" UserForm1.TextBox2.Text = "" UserForm1.TextBox3.Text = "" UserForm1.TextBox4.Text = "" UserForm1.TextBox5.Text = "" UserForm1.TextBox6.Text = "" UserForm1.TextBox7.Text = "" UserForm1.Combobox1.Text = "" UserForm1.TextBox1.SetFocus End Sub '終了ボタン Private Sub CommandButton2_Click() Unload Me End End Sub 'コンボボックス Private Sub userform_initialize() cnt = 4 With UserForm1.Combobox1 .AddItem "AAAA 11111111111" .AddItem "BBBB 22222222222" .AddItem "CCCC 333333333" .AddItem "DDDD 444444" .AddItem "EEEE 5555555555" .AddItem "FFFF 666" .AddItem "GGGG 7777777" .AddItem "HHHH 88888" .AddItem "IIIII 999999999" .AddItem "JJJJ 0000000000000" .AddItem "KKKK 1111" .AddItem "LLLL 222222" .AddItem "MMMM 3333" End With End Sub

  • VBAのEXITでのエラー

    エクセルのフォームで入力したデータをシートに保存しようとしています。 ID番号でシートからvlookupで検索を行い、データがあれば自動で個人情報を入力します。マウス操作無しで連続入力したいので、一度登録ボタンをクリックし、シート最下行に登録したら、その後タブをIDテキストボックスにフォーカスします。Private Sub TextBoxID_Exit(ByVal Cancel As MSForms.ReturnBoolean)にコマンドを記入しているのですが、終了する際にテキストボックスに値がないためエラーが発生します。どうすればエラー回避できるでしょうか?フォームの画像とコマンドの一部を下記に記入します。よろしくお願いします。 フォーカスがIDにある状態で終了ボタンを押すとexitプロシージャが発生するためのエラーだと思うんですが、どうでしょうか? うまく説明できていないかもしれませんがよろしくお願いします。 ***************************************************************** Private Sub TextBoxID_Exit(ByVal Cancel As MSForms.ReturnBoolean) ID = TextBoxID.Text 'テキストボックスIDの値を取得 On Error GoTo ErrHdl '下記コマンドvlookupがエラーの場合ErrHdl処理する Worksheets("data").Activate 'dataシートをアクティブにする With ActiveSheet TextBoxシメイ.Value = Application.WorksheetFunction.VLookup(ID, Range("b2:E65536"), 2, False) TextBox誕生日.Value = Application.WorksheetFunction.VLookup(ID, Range("b2:E65536"), 3, False) sex = Application.WorksheetFunction.VLookup(ID, Range("b2:E65536"), 4, False) If sex = "M" Then OptionButton男.Value = True Else OptionButton女.Value = True End If TextBox体重.SetFocus End With Exit Sub ErrHdl: 'IDがなかった場合の処理 If TextBoxシメイ.Value = "" Then MsgBox "新規です" Exit Sub End If End Sub ************************************************************************************** Private Sub CommandButton登録_Click() With Worksheets("data") lastrow = .Cells(Rows.Count, 1).End(xlUp).Row + 1 '最終行にデータを追加する .Cells(lastrow, 1).Value = TextBox撮影日.Text '最終行の1列目の値 .Cells(lastrow, 2).Value = TextBoxID.Text .Cells(lastrow, 3).Value = TextBoxシメイ.Text .Cells(lastrow, 4).Value = TextBox誕生日.Text .Cells(lastrow, 5).Value = sex .Cells(lastrow, 6).Value = TextBox体重.Text .Cells(lastrow, 7).Value = ComboBox撮影区分.Text .Cells(lastrow, 8).Value = ComboBox撮影部位.Text .Cells(lastrow, 9).Value = TextBoxFOV.Text .Cells(lastrow, 10).Value = TextBox寝台高.Text .Cells(lastrow, 11).Value = TextBoxDLP.Text .Cells(lastrow, 12).Value = TextBoxCTDI.Text .Cells(lastrow, 13).Value = TextBox電圧.Text .Cells(lastrow, 14).Value = TextBoxmAs.Text End With 'TextBox撮影日.Text = "" TextBoxID.Text = "" TextBoxシメイ.Text = "" TextBox誕生日.Text = "" OptionButton男.Value = False OptionButton女.Value = False TextBox体重.Text = "" ComboBox撮影区分.Text = "" ComboBox撮影部位.Text = "" TextBoxFOV.Text = "" TextBox寝台高.Text = "" TextBoxDLP.Text = "" TextBoxCTDI.Text = "" TextBox電圧.Text = "" TextBoxmAs.Text = "" Me.ComboBox撮影区分.Text = 区分 '初期値を再設定(この変数は他で宣言済み) Me.ComboBox撮影部位.Text = 部位 Me.TextBox電圧.Text = 電圧 TextBoxID.SetFocus 'TextBoxIDに移動 End Sub ***************************************************************************** Private Sub CommandButton終了_Click() Unload UserForm2 'フォームを消去 End Sub **********************************************************************************

  • Excel:コンボボックスの値をセルにセットする場合

    Excel2000を使っています。 コンボボックスで選択した内容をアクティブなセルに入力するために、以下のようなコードを作成しました。 (ユーザフォームにコンボボックスを1つ作成しています) ------------------------------------------ Private Sub UserForm_Initialize() ComboBox1.ColumnCount = 2 For I = 0 To 10 ComboBox1.AddItem Worksheets("元ネタ").Cells(I + 2,1).Value ComboBox1.List(I, 1) = Worksheets("元ネタ").Cells(I + 2,2).Value Next End Sub ------------------------------------------ Private Sub ComboBox1_Change() Worksheets("入力用").Activate ActiveCell.Value = ComboBox1.Text End Sub ------------------------------------------ このコンボボックスは、2列を表示させています。最後にセルに値を入力すると、今のコードでは1列目の値が入りますが、実際には2列目の値だけを入れたいんです。でもコンボボックスの選択時は、先頭列に1列目の値を表示させたいんです。 どうすれば、2列目の値をアクティブセルに入力できるでしょうか?

  • excelのコンボボックスでの階層リスト表示

    (すいません、再投稿します) excelのコンボボックスで、階層にわけてリスト表示させたいのですが、うまくいきません。 数日悩んでまして、どなたか教えてもらえませんか。 シート1:会社名    1列目:会社名  2列目:ID シート2:事業部名   1列目:事業部名 2列目:ID シート3:部門名     1列目:部門名  2列目:ID シート4:担当名     1列目:担当名  2列目:ID ユーザーフォームにそれぞれのコンボボックスを作っています。 ComboBox1:会社名     TextBox1:ID ComboBox2:事業部名    TextBox2:ID ComboBox3:部門名     TextBox3:ID ComboBox4:担当名     TextBox4:ID   たとえば会社名がAのときは、ComboBox2ではAの事業部だけが表示される、というようなかんじです。 同時に隣のIDももってこないといけない為に、苦戦しています。助けてください。。。。 下記記述は3番、まではうまくいくのですが、”4番TextBox2の値代入”がうまくいきません。 -------- Option Explicit Dim シート名 As String Dim 行 As Long Dim 範囲 As String Dim 事業部範囲 As String '-1---ComboBox1------------------- Private Sub ComboBox1_DropButtonClick() シート名 = "会社名" Worksheets(シート名).Activate 'ワークシートをアクティブにする Range("A1").CurrentRegion.Select 'アクティブセル領域を選択する With Selection 行 = .Rows.Count '同上領域の行数を取得する 範囲 = .Cells(1, 1).Address & ":" & .Cells(行, 1).Address '同上領域のアドレスを変数に End With ComboBox1.RowSource = シート名 & "!" & 範囲 'コンボボックスのリストのソースを設定する End Sub '-2----ComboBox1------------------- Private Sub ComboBox1_Click() 'コンボボックス上でクリックされると実行される シート名 = "会社名" 行 = ComboBox1.ListIndex + 1 'コンボボックスで選択された行 + 1 TextBox1.Text = Worksheets(シート名).Cells(行, 2) '対応するセルの値をテキストボックスに End Sub '-3----ComboBox2------------------- Private Sub ComboBox1_Change() ' ComboBox1 が変化した時の処理 シート名 = "事業部名" Dim si As Integer With UserForm1 .ComboBox2.Text = "" si = .ComboBox1.ListIndex ' ComboBox1 の何番目が選択されたかを得る Select Case si Case 0 ' 0番が選択されていたらComboBox2 の内容 Worksheets(シート名).Activate Range("A1:A6").CurrentRegion.Select With Selection 事業部範囲 = .Cells(1, 1).Address & ":" & .Cells(6, 1).Address End With ComboBox2.RowSource = シート名 & "!" & 事業部範囲 Case 1 Worksheets(シート名).Activate Range("A7:A11").CurrentRegion.Select With Selection 事業部範囲 = .Cells(7, 1).Address & ":" & .Cells(11, 1).Address End With ComboBox2.RowSource = シート名 & "!" & 事業部範囲 Case 2 Worksheets(シート名).Activate Range("A12:A15").CurrentRegion.Select With Selection 事業部範囲 = .Cells(12, 1).Address & ":" & .Cells(15, 1).Address End With ComboBox2.RowSource = シート名 & "!" & 事業部範囲 Case 3 Worksheets(シート名).Activate Range("A16:A25").CurrentRegion.Select With Selection 事業部範囲 = .Cells(16, 1).Address & ":" & .Cells(25, 1).Address End With ComboBox2.RowSource = シート名 & "!" & 事業部範囲 End Select End With End Sub '---4--TextBox2に値代入-------------------- Private Sub ComboBox2_Click() Dim si As Integer With UserForm1 .ComboBox2.Text = "" si = .ComboBox2.ListIndex ' ComboBox2 の何番目が選択されたかを得る Select Case si Case 0 ' 0番が選択されていたらComboBox2 の内容 Range("A1:A6") シート名 = "事業部名" Worksheets(シート名).Activate Range("A1:B6").CurrentRegion.Select With Selection 事業部範囲 = .Cells(1, 2).Address & ":" & .Cells(6, 2).Address End With '行 = ComboBox2.ListIndex + 1 TextBox2.Text = Worksheets(シート名).Cells(事業部範囲, 2) Case 1 Case 2 Case 3 End Select End With End Sub '----5-Close-------------------- Private Sub UserForm_Deacti Unload UserForm1 End Sub

  • Excel VBAのコンボボックス

    お世話になります。 コンボボックス1と2と3は選択されますが コンボボックス4には何の表示もされません。 選択して条件設定は4つ以上できないのでしょうか? Dim ITE As Variant Dim flg As Variant Private Sub ComboBox3_Change() 'ComboBox4セット Dim ico As Long ico = 1 With ThisWorkbook.Worksheets("data") KEY = Me.ComboBox1.Text KEY2 = Me.ComboBox2.Text KEY3 = Me.ComboBox3.Text Me.ComboBox4.Clear Do While .Cells(ico, 1) <> "" If .Cells(ico, 1) = KEY And .Cells(ico, 2) = KEY2 And .Cells(ico, 3) = KEY3 Then ITE = .Cells(ico, 4).Value flg = 0 For I = 0 To Me.ComboBox4.ListCount - 1 If ITE = Me.ComboBox4.List(I) Then flg = 1 Next If flg = 0 Then Me.ComboBox4.AddItem ITE End If ico = ico + 1 Loop End With Me.ComboBox4.SetFocus End Sub

  • エクセルVBA コンボボックスの値の転記

    エクセルVBAの質問です。 ユーザーフォームを表示し 年を選択するコンボボックス1 月を選択するコンボボックス2 を入力してもらい ユーザーフォームを閉じるときに sheet1のワークシートのC2セルに 「コンボボックス1の値」+「年」+と「コンボボックス2の値」+「月」をつなげて 入力できるというようなマクロを考えています。 下記の様に考えてみたのですが、 うまく入力できませんでした。 Private Sub UserForm_Initialize() With ComboBox1 .AddItem "2021" .AddItem "2022" .AddItem "2023" .AddItem "2024" End With With ComboBox2 .AddItem "1" .AddItem "2" .AddItem "3" .AddItem "4" .AddItem "5" .AddItem "6" .AddItem "7" .AddItem "8" .AddItem "9" .AddItem "10" .AddItem "11" .AddItem "12" End With Private Sub CommandButton1_Click() 'ユーザーフォームを閉じる Unload UserForm1 'ユーザーフォームの値をセルC2に入力 With Worksheets("sheet1") .Cells(2, 3).Value = "ComboBox1.Text" & "月" & "ComboBox2.Text" & "日" End With End Sub どのように修正すればいいでしょうか? よろしくお願いします。

  • コンボボックスの値で参照するワークシートを変えたい

    ●質問の主旨 ComboBox3で選択した文字列によって、参照するワークシートを 変え、そのワークシートからComboBox4に代入するには、以下の コードをどのように書き換えればよいでしょうか? ご教示願います。 ●質問の補足 添付画像でComboBox3に「営業」、「技術」、「総務」まで 入力することによってそれぞれ3つのワークシートを参照 させたいと考えています。 ・「営業」→中分類(営業)シート ・「技術」→中分類(技術)シート ・「総務」→中分類(総務)シート そして各シートにはそれぞれ異なった仕事内容の表が 既に作成されています。もしComboBox3で「営業」を 選択したなら、ComboBox4で中分類(営業)シートに 記載されている仕事内容を選択できるようにしたいと 考えています。 そのためSelect Caseステートメントを使って ComboBox3の内容によってComboBox4の内容を変える コードを作成したつもりです。 ●現在の問題点 1.下記のコードを実行しようとすると、 「実行時エラー91 オブジェクト変数またはWithブロック変数が設定されていません」 というエラーが返されます。 2.デバックするとユーザーフォームではなく、 標準モジュールの2行目 UserForm1.Show が黄色くなります。 ●コード (標準モジュール) Sub 日報記入ダイアログ() UserForm1.Show End Sub (ユーザーフォーム) Option Explicit Private Sub ComboBox4_Change() End Sub 'ユーザーフォームの初期化 Private Sub UserForm_Initialize() Dim r As Range Dim n As Range Dim d As Range Dim t As Range With Worksheets(2) Set r = .Range("C3", .Cells(.Rows.Count, 2).End(xlUp)) End With With Me.ComboBox1 .ColumnCount = 2 .ColumnWidths = ";0" .List = r.Value End With With Worksheets(3) Set n = .Range("C3", .Cells(.Rows.Count, 2).End(xlUp)) End With With Me.ComboBox2 .ColumnCount = 2 .ColumnWidths = ";0" .List = n.Value End With With Worksheets(4) Set d = .Range("C3", .Cells(.Rows.Count, 2).End(xlUp)) End With With Me.ComboBox3 .ColumnCount = 2 .ColumnWidths = ";0" .List = d.Value End With '中分類のComboBox4は「大分類」の選択内容によって参照するワークシートが変わる Select Case t Case Is = ComboBox3("営業") With Worksheets(5) Set t = .Range("C3", .Cells(.Rows.Count, 2).End(xlUp)) End With With Me.ComboBox4 .ColumnCount = 2 .ColumnWidths = ";0" .List = t.Value End With Case Is = ComboBox3("技術") With Worksheets(6) Set t = .Range("C3", .Cells(.Rows.Count, 2).End(xlUp)) End With With Me.ComboBox4 .ColumnCount = 2 .ColumnWidths = ";0" .List = t.Value End With Case Is = ComboBox3("総務") With Worksheets(7) Set t = .Range("C3", .Cells(.Rows.Count, 2).End(xlUp)) End With With Me.ComboBox4 .ColumnCount = 2 .ColumnWidths = ";0" .List = t.Value End With End Select 'メモリの解放 Set r = Nothing Set n = Nothing Set d = Nothing Set t = Nothing 'その他の初期値 TextBox3.Value = Worksheets(1).Range("a10000").End(xlUp).Row txtdate = Date End Sub 'ComboBox1をクリックしたときの処理 Private Sub ComboBox1_Click() With Me.ComboBox1 Me.Label19.Caption = .List(.ListIndex, 1) End With End Sub 'ComboBox2をクリックしたときの処理 Private Sub ComboBox2_Click() With Me.ComboBox2 Me.Label20.Caption = .List(.ListIndex, 1) End With End Sub 'ComboBox2をクリックしたときの処理(中分類の仕事によってスターマークが変わる) 'フォームからデータベースへの転記 Private Sub CommandButton3_Click() Dim Rowpos As Long Dim ColPos As Long Rowpos = Worksheets(1).Range("a10000").End(xlUp).Row ColPos = 1 Rowpos = Rowpos + 1 With Worksheets(1) .Cells(Rowpos, ColPos) = TextBox3.Value .Cells(Rowpos, ColPos + 1) = txtdate.Value .Cells(Rowpos, ColPos + 2) = Label19.Caption .Cells(Rowpos, ColPos + 3) = ComboBox1.Text .Cells(Rowpos, ColPos + 4) = ComboBox2.Text .Cells(Rowpos, ColPos + 5) = Label20.Caption .Cells(Rowpos, ColPos + 6) = ComboBox3.Text End With 'Noの加算 TextBox3.Value = TextBox3.Value + 1 Call Clearcmb End Sub 'データベース入力後にコンボボックスを空欄にする Private Sub Clearcmb() ComboBox1.Text = "" ComboBox2.Text = "" ComboBox3.Text = "" End Sub 'ユーザーフォームの終了 Private Sub CommandButton5_Click() Unload UserForm1 End End Sub 以上よろしくお願い申し上げます。使用機種はWindowsVistaで、 Excel2007です。私はVBA初心者です。添付の画像でのユーザーフォームは プリントスクリーンでWorksheet(1)に貼り付けています。

専門家に質問してみよう