- ベストアンサー
Pasteで増やしたフレーム内のボタン操作(続)
- UserForm1を起動させた際、Frame1が5個コピペされます。各Frame内のボタンを押下するとそのFrame内のTextBox3つが消去されるようにできました。
- 新規Excelファイルで.xlsm形式で保存した後、まったく同じ内容のフォームとVBAを記述したところ、一番右側のTextBoxしか消去されない問題が発生しました。一度全てのExcelファイルを保存して閉じた後、再度開いたら正常動作が確認できました。
- PC1とPC2のExcelバージョンにより、VBAの動作に差がある可能性があります。VBAの書き方に誤りがあるかどうか確認してください。
- みんなの回答 (8)
- 専門家の回答
質問者が選んだベストアンサー
関連するQ&A
- Pasteで増やしたフレーム内のボタン操作
過去の質問でユーザーフォーム内のFrameをコピペして増やすという下記のがありました。 https://okwave.jp/qa/q9794555.html 上記の通りFrameとその中にあるTextBoxやボタンは期待通りに必要な分だけ増やすことができましたが、増やした後のボタン操作等ができません。オブジェクト名がCommandButton4から始まっているのは分かったので、Private Sub CommandButton4_Click()と簡単な処理を先に記述してもダメでした。 やりたいことのイメージとしては下記URLのFrame2以降の中にあるボタンを押下した際に、そのFrame内のテキストボックス内容を消去したいと言った感じです。 https://multimedia.okwave.jp/image/answers/12/124335/124335_original.jpg もしお分かりの方がいらっしゃいましたらご教示いただけないでしょうか?宜しくお願い致します。
- ベストアンサー
- Excel(エクセル)
- Userform内のFrameのCaptionが印刷できないのですが
VBAでUserFormを印刷しようとしたのですが、UserForm内のFrameのCaptionのみ印刷されません。その他Frameの枠とかUserForm内のLabelとかは印刷できるのですが、何か設定等あるのでしょうか?一応UserForm内にCommandButtonを作りクリックで印刷させようと考えているのですが、ちなみにコードは Private Sub CommandButton1_Click() Userform1.Printform End Sub としています。なにか方法があれば教えてもらえないでしょうか。よろしくお願いします。
- ベストアンサー
- Visual Basic
- 値渡しについて
UserForm1で以下のように求めた値「R」を UserForm2に渡すにはどのようにすればよいのでしょうか。 **************************************** <UserForm1(コード)> Public R As Integer ----------------------------------- Private Sub CommandButton1_Click() Dim N As Integer : N = TextBox1.Text R= N * 2 + 3 : End Sub **************************************** <UserForm2(コード)> Private Sub CommandButton1_Click() Dim i As Integer : For i = 4 To R : Next i : End Sub **************************************** どなたか教えて下さい。
- ベストアンサー
- Visual Basic
- ユーザーフォームに入力したデーターが転記できない
いつもお世話になります。 Windows7 excell2010 です。 いろんなものに勉強してここまでに作成したユーザーフォームですが、データーは入力できるのですがコマンドボタンをクリックしても各セルに反映されません。 色々と試行錯誤していますがうまくゆきません。 どこに不具合があるかわからず恐れ入りますがどなたかご指導いただけませんか。 参考にコードは参考に下記にします。 ユーザフォームのVBAは下記です コード ※Module1 Sub 売上() Do UserForm1.Show Loop End Sub Sub 入金() Do UserForm2.Show Loop End Sub ※UserForm1 Private Sub UserForm_Initialize() With ComboBox1 .AddItem "1" .AddItem "2" .AddItem "3" End With End Sub Private Sub CommandButton1_Click() n = Cells(Rows.Count, 1).End(xlUp).Row + 1 Cells(n, 2) = UserForm1.TextBox1.Text Cells(n, 3) = UserForm1.TextBox2.Text Cells(n, 4) = UserForm1.TextBox3.Text Cells(n, 11) = UserForm1.ComboBox1.Text Unload Me End Sub Private Sub CommandButton2_Click() Unload Me End End Sub ※UserForm2 Private Sub CommandButton1_Click() n = Cells(Rows.Count, 1).End(xlUp).Row + 1 Cells(n, 2) = UserForm2.TextBox1.Text Cells(n, 3) = UserForm2.TextBox2.Text Cells(n, 4) = UserForm2.TextBox3.Text Unload Me End Sub Private Sub CommandButton2_Click() Unload Me End End Sub
- 締切済み
- その他MS Office製品
- EXCEL VBAのユーザーフォームのコマンドボタンでBSキーと同様の役割を持たせる方法について
すいません、EXCEL VBAで教えていただきたいことがあります。 EXCEL VBAでユーザーフォームを作る。 フォーム内にはTextBox1とCommandButton1を設置。 TextBox1に書き込んだ文字をドラッグ →CommandButton1を押す →ドラッグした文字を消去 という機能をコマンドボタンに持たせたいのですが 可能でしょうか。 下記のコードを作ってみたのですが、やはりこれだと一文字づつしか消せません。 よろしくお願いします。 Private Sub CommandButton1_Click() Dim i As Integer With Me.TextBox1 i = .SelStart If i > 0 Then .Text = Left(.Text, i - 1) & Mid(.Text, i + 1) .SelStart = i - 1 End If End With TextBox1.SetFocus End Sub
- ベストアンサー
- オフィス系ソフト
- ユーザーフォームVBAでCells(n, 7)が
いつもお世話になります Windows7 excell2010 です ご指導を仰ぎたいのは参照図で言うと、 TextBox1~6 は順調に入力しますがTextBox7にすると「入力」に飛び 参照図のG13に入力されません。 VBAを勉強し始めたはかりですのでどこが悪いかわかりません。 恐れ入りますがご指導願えませんでしょうか。 下記参考にします。 Module のコードには Sub FormSample() Do UserForm1.Show Loop End Sub Sub Test() MsgBox "ボタンによるマクロの実行" End Sub UserForm1 Private Sub CommandButton1_Click() n = 1 Do n = n + 1 Loop While Cells(n, 1) <> "" Cells(n, 1) = UserForm1.TextBox1.Text Cells(n, 2) = UserForm1.TextBox2.Text Cells(n, 3) = UserForm1.TextBox3.Text Cells(n, 4) = UserForm1.TextBox4.Text Cells(n, 5) = UserForm1.TextBox5.Text Cells(n, 6) = UserForm1.TextBox6.Text Cells(n, 7) = UserForm1.TextBox7.Text Unload Me End Sub Private Sub CommandButton2_Click() Unload Me End End Sub
- ベストアンサー
- その他MS Office製品
- テキストボックスを配置したいのですが
以下のコードですと、失敗します。 Private Sub CommandButton3_Click() Dim nu7 As MSForms.TextBox Set nu7 = UserForm1.Controls.Add("Forms.TextBox.1", "TextBox1", True) With nu7 .Left = 20 .Top = 50 End With End Sub 間違いをご指摘頂けると、助かります。 どうぞ、宜しくお願い致します。
- 締切済み
- Visual Basic
- 12個のCommandbuttonをスマートに
はじめまして 2003 XP UserFormにCommandbuttonが12個あります。 Private Sub CommandButton1_Click() If Me.MultiPage1.Value = 0 Then TextBox3.Value = TextBox3 & "1" Else: TextBox1.Value = TextBox1 & "1" End If End Sub Private Sub CommandButton2_Click() If Me.MultiPage1.Value = 0 Then TextBox3.Value = TextBox3 & "2" Else: TextBox1.Value = TextBox1 & "2" End If End Sub Private Sub CommandButton3_Click() If Me.MultiPage1.Value = 0 Then TextBox3.Value = TextBox3 & "3" Else: TextBox1.Value = TextBox1 & "3" End If End Sub Private Sub CommandButton4_Click() If Me.MultiPage1.Value = 0 Then TextBox3.Value = TextBox3 & "4" Else: TextBox1.Value = TextBox1 & "4" End If End Sub Private Sub CommandButton5_Click() If Me.MultiPage1.Value = 0 Then TextBox3.Value = TextBox3 & "5" Else: TextBox1.Value = TextBox1 & "5" End If End Sub Private Sub CommandButton6_Click() If Me.MultiPage1.Value = 0 Then TextBox3.Value = TextBox3 & "6" Else: TextBox1.Value = TextBox1 & "6" End If End Sub Private Sub CommandButton7_Click() If Me.MultiPage1.Value = 0 Then TextBox3.Value = TextBox3 & "7" Else: TextBox1.Value = TextBox1 & "7" End If End Sub Private Sub CommandButton8_Click() If Me.MultiPage1.Value = 0 Then TextBox3.Value = TextBox3 & "8" Else: TextBox1.Value = TextBox1 & "8" End If End Sub Private Sub CommandButton9_Click() If Me.MultiPage1.Value = 0 Then TextBox3.Value = TextBox3 & "9" Else: TextBox1.Value = TextBox1 & "9" End If End Sub Private Sub CommandButton10_Click() If Me.MultiPage1.Value = 0 Then TextBox3.Value = TextBox3 & "0" Else: TextBox1.Value = TextBox1 & "0" End If End Sub Private Sub CommandButton11_Click() If Me.MultiPage1.Value = 0 Then TextBox3.Value = TextBox3 & "00" Else: TextBox1.Value = TextBox1 & "00" End If End Sub Private Sub CommandButton12_Click() If Me.MultiPage1.Value = 0 Then TextBox3.Value = TextBox3 & "000" Else: TextBox1.Value = TextBox1 & "000" End If End Sub これをもっとスマートに出来ないでしょうか? 宜しくお願いします。
- ベストアンサー
- オフィス系ソフト
- Excel2000 VBA シート名の変更
なかなかうまくいかずに困っています。 Excel2000 OS:WindowsXp ユーザーフォーム(UserForm1)上に ・Textbox1 ・Textbox2 ・Commandbutton1 があります。 Commandbutton1をクリックすると、Textbox1とTextbox2の値をつなげた文字列を、 アクティブなワークシートの名前にしたいと思っています。 今現在の、うまく動かないコードは以下のとおりです。 Private Sub CommandButton1_Click() 'ユーザーフォーム上のCommandButton1 Dim snday As Variant 'Textbox1に入力される、『日』を取得するための変数 Dim snyoubi As Variant 'Textbox2に入力される『曜日』を取得するための変数 Dim namae As Variant 'シート名になる変数。 Dim Sh As Worksheet snday = UserForm1.TextBox1.Value snyoubi = UserForm1.TextBox2.Value namae = snday & snyoubi Sh.Name = namae End Sub これを実行すると、 実行時エラー’91’ オブジェクト変数または withブロック変数が設定されていません のエラーが出ます。 Sh.Name = namae のところを with ActiveSheet ~End with で挟んでみてもだめでした。 どなたかご教授ねがえませんか。 よろしくお願いいたします。
- ベストアンサー
- その他MS Office製品
- エクセルVBA「スピンボタン」について
エクセルVBA「スピンボタン」について スピンボタンとテキストボックスを組み合わせて Private Sub SpinButton1_Change() Me.TextBox1.Value = Me.SpinButton1.Value End Sub Private Sub UserForm_Initialize() With Me.SpinButton1 .Min = 1 .Value = .Min End With Me.TextBox1.Value = Me.SpinButton1.Min End Sub というコードを書きました。 「1、2、3、・・・10、11、・・・」という数の増加を「01、02、03・・・10、11・・・」という風にしたいのですがどのようにコーディングすればよいのでしょうか?お願いします。.
- ベストアンサー
- オフィス系ソフト
お礼
kkkkkm様 本日、本番ファイルへ実装して何とか期待通りの動きをするようになりましたのでご報告させていただきます。 また、For i = 1 To (5 + 1) * 15 については、最初に一時的に決めた回数である5回の意味を考えたら仰るとおり可変で対応することを前提になりますね。私が頭でっかちになっていて冷静な判断ができていませんでした。 今後もVBAで様々なものを作りながらスキルを上げて行きたいと思います。本当に有難うございました。