はじめまして
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
これをもっとスマートに出来ないでしょうか?
宜しくお願いします。
No.1ベストアンサー
- 回答日時:
VBAに慣れているならクラスを作成してやるでしょうが、
CommandButtonが12個程度ならあっさりとサブルーチンをコールした方がいいでしょう。
'=●全てのボタンから呼ばれるサブルーチン===
'= UserFormのモジュールに作成しておく ===
'= CommandButton1_Clickイベントの前でいいでしょう==
Private Sub mySub(Moji)
If Me.MultiPage1.Value = 0 Then
TextBox3.Value = TextBox3 & Moji
Else
TextBox1.Value = TextBox1 & Moji
End If
End Sub
'------------------------------------------------------
Private Sub CommandButton1_Click()
Call mySub("1")
End Sub
'------------------------------------------------------
Private Sub CommandButton2_Click()
Call mySub("2")
End Sub
'------------------------------------------------------
以下同様に、&する値を引数にmySubをCallしてやる。
以上。
参考書等でサブルーチンの使い方を
呼んでも中々、理解出来ませんでしたが
このように使うのですね!
勉強になりました。
本当に有り難うございました。
No.3
- 回答日時:
ここが定番でしょうが、最後の方はオブジェクト指向が分かっていないと歯が立ちそうもない感じです(深く読んでないですが)
http://www.h3.dion.ne.jp/~sakatsu/Breakthrough_P …
参考書はこちら
かんたんプログラミング Excel200X VBA コントロール・関数編 (単行本) 大村 あつし (著)
Excel200X VBAにおけるコントロール配列という記事があります。
UserFormを駆使したければ、この本は買って損はありません。
No.2
- 回答日時:
クラスモジュールを利用して疑似コントロール配列を作るしかありません。
http://wood-built21.ddo.jp/MlogOG/2008/04/vba.html
http://wood-built21.ddo.jp/MlogOG/2008/04/vba-1. …
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) VBA Userformで一部別シートに転記がしたいのですが 2 2023/05/24 13:08
- Visual Basic(VBA) VBA 重複チェック後に値をワークシートに転記する方法を教えてください。 1 2023/03/19 12:43
- Excel(エクセル) VBA 同日で2回目(午後)の体温を登録するときのコード 3 2022/08/28 20:29
- Excel(エクセル) マクロでテキストファイルを読み込んだ際の最終セルにデータと改行が含まれる問題の改善方法 2 2022/03/25 16:50
- Visual Basic(VBA) Excel VBA ユーザーフォーム1のコンボボックスに別ブックの値を反映させたいです。 6 2023/03/21 16:12
- Visual Basic(VBA) ユーザーフォームの書き出しで追加のご相談 ユーザーフォームの値をシートに書き出す際、コードが表示され 2 2022/08/05 10:58
- Excel(エクセル) エクセルのマクロについて教えてください。 2 2023/02/20 14:46
- Visual Basic(VBA) いつもお世話になっております、VBAで教えて頂きたいのですが 2 2022/05/05 22:20
- Excel(エクセル) vba 「Nextに対するForが見当たりません」のエラーが発生する原因 1 2022/10/21 15:46
- Visual Basic(VBA) VBA チェックボックスで 5 2023/05/31 17:10
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
ユーザーフォームで動的(Me.Con...
-
エクセル・VBA CheckBoxのオブ...
-
ExcelVBAでListViewが使用できない
-
WinAPIで電卓をクリック
-
C#で角が丸いテキストボックス
-
カメラスクロールするのを動画...
-
asp.netでToolTipコントロール...
-
もしフォームヘッダーにコント...
-
エクセル コントロールツール...
-
chr関数の呼び出しで「プロ...
-
悩みがあろうと、それなりに幸...
-
fpSpreadコントロール ライセ...
-
コンボボックスの文字によるif...
-
USB I/Oのデジタル信号をvbaで...
-
ListViewのチェックボックスに...
-
DataGridView、1セルに複数コ...
-
エクセルVBAでオプションボタン...
-
Labelコントロールの(左右)余...
-
OCXって何ですか?
-
With~EndWithの省略部分と引数...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
カメラスクロールするのを動画...
-
エクセル・VBA CheckBoxのオブ...
-
vb.netで画面のコントロールId...
-
エクセルVBAでオプションボタン...
-
EXCELでactivexコントロールを...
-
ExcelVBAでListViewが使用できない
-
excelのリストボックスで選択し...
-
ユーザーフォームで動的(Me.Con...
-
フォーム上の現在アクティブな...
-
C#で自分のウインド・ハンド...
-
変数をコントロール型で使用す...
-
VBAのフォームでTextBoxがいっ...
-
コントロールを移動できない
-
Groupboxの配下のコントロール...
-
C#で角が丸いテキストボックス
-
(VBA)スピンボタンの大量...
-
間違えて配置してしまったコン...
-
エクセル コントロールツール...
-
'ckbl' コントロールは作成され...
-
OCXって何ですか?
おすすめ情報