VBA ステートメントのまとめ方

このQ&Aのポイント
  • VBA ステートメントをまとめる方法について教えてください。
  • ComboBoxが20まであるときに、withの中をまとめる方法を教えてください。
  • OSはXP、Excelは2003を使用しています。
回答を見る
  • ベストアンサー

VBA ステートメントをまとめたい

OSはXP Excelは2003を使用しています。 下記は組んだマクロの一部ですが、 ComboBoxが20まであるので、大変長いステートメントになってしまうので、 withの中を何とかまとめられないかと思い、こちらで教えて頂きたく書き込みました。 説明不足のところは追記致しますので、 何卒、よろしくお願い致します。 With ws 'Cells(行,列)  If ComboBox1 <> "" Then Cells(i + 1, 1) = TextBox1.Value '日付 Cells(i + 1, 2) = TextBox2.Value '伝票No. Cells(i + 1, 24) = TextBox3.Value '郵便番号 Cells(i + 1, 25) = TextBox4.Value '住所 Cells(i + 1, 3) = TextBox5.Value '社名 Cells(i + 1, 4) = TextBox6.Value '担当者名 Cells(i + 1, 18) = TextBox601.Value '税抜合計 Cells(i + 1, 19) = TextBox602.Value '消費税 Cells(i + 1, 20) = TextBox603.Value '合計 Cells(i + 1, 22) = TextBox701.Value '備考 Cells(i + 1, 23) = TextBox702.Value '未定 '------------------------------------------------------ Cells(i + 1, 6) = ComboBox1.Value '商品コード Cells(i + 1, 7) = TextBox11.Value 'メーカー名 Cells(i + 1, 8) = TextBox12.Value 'ModelNo. Cells(i + 1, 9) = TextBox13.Value '品名(英 Cells(i + 1, 10) = TextBox14.Value '品名(日 Cells(i + 1, 11) = TextBox15.Value '仕上(英 Cells(i + 1, 12) = TextBox16.Value '仕上(日 Cells(i + 1, 13) = TextBox17.Value '単価 Cells(i + 1, 14) = TextBox18.Value '掛け率 Cells(i + 1, 15) = TextBox19.Value '売価 Cells(i + 1, 16) = TextBox20.Value '数量 Cells(i + 1, 17) = TextBox21.Value '小計 Cells(i + 1, 21) = TextBox22.Value '社内コメント '---------------------------------------------------- '---------------------------------------------------- If ComboBox2 <> "" Then Cells(i + 2, 1) = TextBox1.Value '日付 Cells(i + 2, 2) = TextBox2.Value '伝票No. Cells(i + 2, 24) = TextBox3.Value '郵便番号 Cells(i + 2, 25) = TextBox4.Value '住所 Cells(i + 2, 3) = TextBox5.Value '社名 Cells(i + 2, 4) = TextBox6.Value '担当者名 Cells(i + 2, 18) = TextBox601.Value '税抜合計 Cells(i + 2, 19) = TextBox602.Value '消費税 Cells(i + 2, 20) = TextBox603.Value '合計 Cells(i + 2, 22) = TextBox701.Value '備考 Cells(i + 2, 23) = TextBox702.Value '未定 '------------------------------------------------------ Cells(i + 2, 6) = ComboBox2.Value '商品コード Cells(i + 2, 7) = TextBox31.Value 'メーカー名 Cells(i + 2, 8) = TextBox32.Value 'ModelNo. Cells(i + 2, 9) = TextBox33.Value '品名(英 Cells(i + 2, 10) = TextBox34.Value '品名(日 Cells(i + 2, 11) = TextBox35.Value '仕上(英 Cells(i + 2, 12) = TextBox36.Value '仕上(日 Cells(i + 2, 13) = TextBox37.Value '単価 Cells(i + 2, 14) = TextBox38.Value '掛け率 Cells(i + 2, 15) = TextBox39.Value '売価 Cells(i + 2, 16) = TextBox40.Value '数量 Cells(i + 2, 17) = TextBox41.Value '小計 Cells(i + 2, 21) = TextBox42.Value '社内コメント End If End If

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

  • ベストアンサー
  • mar00
  • ベストアンサー率36% (158/430)
回答No.1

日付から未定まではテキストボックスがバラバラなので、セルだけ共通にしています。 For j = 1 To 2 If Controls("ComboBox" & j) <> "" Then If j = 1 Then myNumber = 10 ElseIf j = 2 Then myNumber = 30 End If .Cells(i + j, 1) = TextBox1.Value '日付 .Cells(i + j, 2) = TextBox2.Value '伝票No. .Cells(i + j, 24) = TextBox3.Value '郵便番号 .Cells(i + j, 25) = TextBox4.Value '住所 .Cells(i + j, 3) = TextBox5.Value '社名 .Cells(i + j, 4) = TextBox6.Value '担当者名 .Cells(i + j, 18) = TextBox601.Value '税抜合計 .Cells(i + j, 19) = TextBox602.Value '消費税 .Cells(i + j, 20) = TextBox603.Value '合計 .Cells(i + j, 22) = TextBox701.Value '備考 .Cells(i + j, 23) = TextBox702.Value '未定 .Cells(i + j, 6) = Controls("ComboBox" & j).Value '商品コード For k = 1 To 12 If k < 12 Then .Cells(i + j, k + 6) = Controls("TextBox" & k + myNumber).Value 'メーカー名から小計 Else .Cells(i + j, k + 9) = Controls("TextBox" & k + myNumber).Value '社内コメント End If Next k End If Next j 動作確認はしていませんのでブックをコピーするなどしてから確認して下さい。

6338-tm
質問者

お礼

確認が遅くなってしまってごめんなさい。 書いて下さったステートメントで、まとめる前と同じ様に出来ました。 これをComboBox20まで対応させれば、すごくステートメントがまとめられるし、見やすくなります。 本当にありがとうございました。

その他の回答 (1)

  • mitarashi
  • ベストアンサー率59% (574/965)
回答No.2

ワークシートに対照表を作成しておいて、フォーム生成の際に読み込むのはいかがでしょうか。手直しが楽だと思います。 書き出し時に、ワークシートを読みに行っても良いのですが、思いつきで構造体に取り込んでみました。 対照表は添付画像の様な姿で、起点セルからのオフセットを入れておきます。(あくまで例なので、ご質問のセル配置とは異なっています) Private Type controlInfo controlName As String rowOffset As Long columnOffset As Long End Type Dim myControls() As controlInfo Private Sub UserForm_Initialize() Dim controlInfoRange As Range Dim i As Long Set controlInfoRange = ThisWorkbook.Worksheets(1).Range("A1").CurrentRegion ReDim myControls(1 To controlInfoRange.Rows.Count) For i = 1 To UBound(myControls) With myControls(i) .controlName = controlInfoRange(i, 1) .rowOffset = controlInfoRange(i, 2) .columnOffset = controlInfoRange(i, 3) End With Next i End Sub Private Sub CommandButton1_Click() Dim sh As Worksheet, myRange As Range Dim i As Long Set sh = ThisWorkbook.Worksheets(2) Set myRange = sh.Range("A1") For i = 1 To UBound(myControls) With myControls(i) myRange.Offset(.rowOffset, .columnOffset).Value = Me.Controls(.controlName).Value End With Next i Unload Me End Sub ☆下記はおまけ。標準モジュールに記述してください。 フォームのコントロールの名前のリストをワークシートに出力します。 Sub test() Dim myControl As Control Dim destRange As Range Set destRange = ThisWorkbook.Worksheets(1).Range("A1") Load UserForm1 For Each myControl In UserForm1.Controls destRange.Value = myControl.Name Set destRange = destRange.Offset(1, 0) Next myControl Unload UserForm1 End Sub

6338-tm
質問者

お礼

mitarashiさんの書いて下さったステートメントを自分のに置き換えてみようとしたのですが、今まで使ったことのないものばかりで、うまく置き換える事が出来ませんでした。 もう少し考えて置き換えてみます。ごめんなさい。 おまけで書いて下さった標準モジュールの方、すごく有り難いです。 手書きで書き出してたので、これが出来ると手間がかなり省けます。 本当にありがとうございました。

関連するQ&A

  • Excel VBAでIF~Thenの入れ子がうまくできません。

    いつもお世話になってます。 IF~Then~EndIfにIFを入れていますがうまくいきません。よろしくお願いします。 Private Sub CommandButton10_Click() Dim i As Long Dim 最終行 As String Dim サーチ行 As Long Dim 行 As Long Dim 列 As Long If TextBox33.Value = "" Then MsgBox "使用量を入力してください。" Else If TextBox11 <> "" Then TextBox26 = TextBox33 * TextBox11 / 100 '成分1 End If If TextBox12 <> "" Then TextBox25 = TextBox33 * TextBox12 / 100 '成分2 End If Workbooks.Open Filename:=ThisWorkbook.Path & "\データ物質試薬管理.xls" Sheets("shinki").Activate 最終行 = (Range("B2").End(xlDown).Row) '商品名の行検索 サーチ行 = 0 For i = 2 To 最終行 If ComboBox3.Value = Range("B" & i) Then Workbooks("データ物質試薬管理.xls").Close savechanges:=False '保存しない Workbooks.Open Filename:=ThisWorkbook.Path & "\データ物質試薬管理.xls" Sheets("kongou").Select Range("A65536").End(xlUp).Offset(1).Select 行 = ActiveCell.Row 列 = ActiveCell.Column Cells(行, 列) = UserForm11.TextBox16.Value 'CAS Cells(行, 列 + 1) = UserForm11.TextBox21.Value '使用日 Cells(行, 列 + 2) = UserForm11.TextBox29.Value '使用者 Cells(行, 列 + 4) = UserForm11.TextBox26.Value '成分1使用量 Cells(行 + 2, 列) = UserForm11.TextBox18.Value 'CAS Cells(行 + 2, 列 + 1) = UserForm11.TextBox21.Value '使用日 Cells(行 + 2, 列 + 2) = UserForm11.TextBox29.Value '使用者 Cells(行 + 2, 列 + 4) = UserForm11.TextBox24.Value '成分3使用量 Cells(行 + 2, 列 + 5) = UserForm11.TextBox32.Value '種類 Cells(行 + 2, 列 + 6) = UserForm11.TextBox34.Value '単位 Cells(行 + 2, 列 + 7) = UserForm11.ComboBox3.Value '商品名 Workbooks("データ物質試薬管理.xls").Close savechanges:=True 'showhinに在庫管理する Workbooks.Open Filename:=ThisWorkbook.Path & "\データ物質試薬管理.xls" Sheets("showhin").Select Range("A65536").End(xlUp).Offset(1).Select 行 = ActiveCell.Row 列 = ActiveCell.Column Cells(行, 列) = UserForm11.TextBox2.Value '品名コード Cells(行, 列 + 1) = UserForm11.ComboBox3.Value '商品名 'Cells(行, 列 + 2) = UserForm9.TextBox3.Value '1本の量 'Cells(行, 列 + 3) = UserForm9.TextBox4.Value '本数 Cells(行, 列 + 4) = UserForm11.TextBox34.Value '単位 Cells(行, 列 + 5) = UserForm11.TextBox32.Value '種別 Cells(行, 列 + 6) = UserForm11.TextBox21.Value '使用日 Cells(行, 列 + 7) = UserForm11.TextBox29.Value '使用者名 Cells(行, 列 + 9) = UserForm11.TextBox33.Value '使用量 Workbooks("データ物質試薬管理.xls").Close savechanges:=True MsgBox "登録しました。" End If サーチ行 = i Exit For 'End If Next If サーチ行 = 0 Then MsgBox ComboBox3.Value & "商品は登録されておりません。" & Chr(10) & "「新規商品登録」ボタンから入力してください。" End If End If If TextBox21.Value = "" Then '使用量 MsgBox "使用日を入力してください。" End If ComboBox3.SetFocus End Sub

  • このVBA、もうちょっとシンプルにできないですか?

    自力でVBAを書いてみたのですが、長くなってしまいました。 もうちょっとシンプルにするアイディアがあればお願いします。 やりたいことは、 (1)ユーザーフォームのテキストボックス内が空欄だったら「無視」 (2)テキストボックスの中が空欄でなければ「書き込み」 以上のことをやりたいのですが、テキストボックスが6種類あるので単純に記述すると結構長くなってしまいました。 特に問題がなければ、その旨をお願いします。 If TextBox1 = "" Then If TextBox2 = "" Then If TextBox3 = "" Then If TextBox4 = "" Then If TextBox5 = "" Then If TextBox6 = "" Then MsgBox ("得点が入力されていません。") ElseIf TextBox6 <> "" Then Sheets("総合(得点)").Cells(t + 9, u) = TextBox6.Value End If ElseIf TextBox5 <> "" Then Sheets("総合(得点)").Cells(t + 8, u) = TextBox5.Value ElseIf TextBox6 <> "" Then Sheets("総合(得点)").Cells(t + 9, u) = TextBox6.Value End If End If ElseIf TextBox4 <> "" Then Sheets("総合(得点)").Cells(t + 7, u) = TextBox4.Value If TextBox5 <> "" Then Sheets("総合(得点)").Cells(t + 8, u) = TextBox5.Value If TextBox6 <> "" Then Sheets("総合(得点)").Cells(t + 9, u) = TextBox6.Value End If End If End If ElseIf TextBox3 <> "" Then Sheets("総合(得点)").Cells(t + 6, u) = TextBox3.Value If TextBox4 <> "" Then Sheets("総合(得点)").Cells(t + 7, u) = TextBox4.Value If TextBox5 <> "" Then Sheets("総合(得点)").Cells(t + 8, u) = TextBox5.Value If TextBox6 <> "" Then Sheets("総合(得点)").Cells(t + 9, u) = TextBox6.Value End If End If End If End If ElseIf TextBox2 <> "" Then Sheets("総合(得点)").Cells(t + 5, u) = TextBox2.Value If TextBox3 <> "" Then Sheets("総合(得点)").Cells(t + 6, u) = TextBox3.Value If TextBox4 <> "" Then Sheets("総合(得点)").Cells(t + 7, u) = TextBox4.Value If TextBox5 <> "" Then Sheets("総合(得点)").Cells(t + 8, u) = TextBox5.Value ・ ・ ・ こんな感じで規則的に記述しただけです。(文字数が多いので最後は省略しました) 段差がなくて見づらいですが、宜しくお願いします。

  • 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

  • EXCEL VBA SetFocus について教え

    ComboBox3 で郵便番号 住所 を選択して TextBox8 に表示 その後番地等を記入するため Private Sub ComboBox3_AfterUpdate() '郵便番号 住所 Workbooks("*****.xls").Activate Worksheets("**").Activate With UserForm7 No = .TextBox1.Value .TextBox7.Value = Mid(.ComboBox3.Text, 1, 8) Cells(No + 1, 7).Value = Mid(.ComboBox3.Text, 1, 8) '郵便番号 .TextBox8.Value = Mid(.ComboBox3.Text, 10) '住所 Cells(No + 1, 8).Value = .TextBox8.Value .ComboBox3.Visible = False .TextBox8.SetFocus .TextBox8.TabIndex = 4 .TextBox8.Text = Mid(.TextBox8.Text, 1) End With End Sub 上のコードで TextBox8 の テキストの最後にカーソルを移動したいのですが TextBox8 に カーソルは現れません。(UserForm7の最初のTextBox1にフォーカスが移る) UserForm8 にも 同様なコードが有りますがこちらは期待どうり動作します。 タブオーダーとかの違いは有りますが関係するのでしょうか  よろしくお願いします。

  • VBAの変数について

    VBAでUserFormからデータを入力します。 入力された各データをTarget1~Target20に代入します。 各Targetにデータが入っている場合は、配列K(i)に「1」を格納します。 そこで、Target "1"~"20" を変数iであらわしたいのですが、どのように表現したらよいのでしょうか。 Dim i As Integer Dim K(20) As Integer Target1 = TextBox1.Value Target2 = ComboBox1.Value : : Target19 = TextBox12.Value Target20 = ComboBox8.Value For i = 1 To 20 If 『  ?   』 <> "" Then K(i) = 1 EndIf Next i

  • 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の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 **********************************************************************************

  • エクセルVBA テキストボックス処理?

    エクセル2000 VBAにて入力フォームの テキストボックス1に下記を書き込んだのですが カーソルがテキストボックス1にあるとき 他の処理(コマンドボタン、マウスにて他のテキストボックスに カーソルを移すなど)が出来ません。 フォームを閉じるときもメッセージボックスのコメントがでます。 どの処理を行ってもテキストボックス1の処理が終わってからしか 行わないようなのですが??? Private Sub TextBox1_Exit(ByVal Cancel As MSForms.ReturnBoolean) Dim i As Integer '品番確認用 For i = 3 To 100 If Sheets("品番マスタ").Cells(i, 1) = TextBox1.Text Then Label1 = Sheets("品番マスタ").Cells(i, 2).Value 'メーカー Label2 = Sheets("品番マスタ").Cells(i, 3).Value 'タイプ Label3 = Sheets("品番マスタ").Cells(i, 4).Value '品名 Label4 = Sheets("品番マスタ").Cells(i, 5).Value '内容量 Label6 = Sheets("品番マスタ").Cells(i, 8).Value '背番号 Exit Sub End If Next i MsgBox "品番がありません" TextBox1 = "" Cancel = True End Sub どのように変更すればいいでしょうか?

  • VBA 合計金額の計算

    OSは、XPpro Excelは2003を使用しています。 http://detail.chiebukuro.yahoo.co.jp/qa/question_detail/q1444918209 を参考にさせて頂いて、 Dim gk As Variant Dim i As Long i = 2 Do While Cells(i, 1).Value <> "" gk = gk + Cells(i, 2).Value If Cells(i, 2).Value = "" Then Cells(i, 2).Value = gk gk = 0 End If i = i + 1 Loop i = 2 Do While Cells(i, 1).Value <> "" gk = gk + Cells(i, 3).Value If Cells(i, 3).Value = "" Then Cells(i, 3).Value = gk gk = 0 End If i = i + 1 Loop として、図の水色のセルの合計までは出来たのですが、 合計行だけDセルにBセルとCセルの合計を入たいのですが、 どの様にすれば良いか どなたか教えて頂けないでしょうか? 説明不足なところがありましたら、追記致します。 どうかよろしくお願い致します。

  • エクセル VBA OptionButtonからTextBox

    すいません! OptionButtonなら 下記の記述でエラー表示を 簡単にできるのですが これがOptionButtonではなく TextBoxならどのように変化したら 良いのでしょうか? すいません、教えて下さい! Private Sub 記録_Click() Dim i As Integer Dim Cnt As Integer Cnt = 0 For i = 1 To 6 Step 1 If Me.Controls("OptionButton" & i).Value Then Cnt = i Exit For End If Next i If Cnt = 0 Then MsgBox "選択されていません" Exit Sub End If If Me.Controls("Combobox" & Cnt).Value = "" Then MsgBox Me.Controls("OptionButton" & Cnt).Caption & " の内容が選択されていません" Exit Sub End If With 記入フォーム .TextBox5.Value = Me.Controls("OptionButton" & Cnt).Caption .TextBox6.Value = Me.Controls("Combobox" & Cnt).Value End With Unload Me End Sub

専門家に質問してみよう