• 締切済み

textboxとlabelのコピー

EXCEL2003のVBAで簡単なformを作成していますが、初心者なのでお知恵をお貸しください。 マルチページのpage1にtextbox1と2、label1と2を設置しています。 で、ここに(page1)にコマンドボタンを設置してこれを押すとPAGE2のtextbox3と4、label3と4にコピーされますが、もしtextbox3と4、label3と4に既に入力されているなら、textbox5と6、label5と6へ入力しなさいというコードはどうしたらいいのでしょうか?

みんなの回答

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

n-junです。 Label11~15・Label16~20が一定にTextBox1~と関連付けされていれば、 Private Sub CommandButton1_Click() Dim i As Integer For i = 11 To 25 Step 5 '25は修正して下さい If Len(Me.Controls("Label" & i).Caption) = 0 Then Me.Controls("Label" & i).Caption = TextBox1 Me.Controls("Label" & i + 1).Caption = TextBox2 Me.Controls("Label" & i + 2).Caption = Label6 Me.Controls("Label" & i + 3).Caption = Label7 Me.Controls("Label" & i + 4).Caption = Label9 Exit For End If Next End Sub 未検証ですが、こんな感じではないかと。

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

textbox3と4、label3と4には同時に代入され、且つtextbox3と4の値の有無で判断できるのなら If Len(TextBox3.Text) * Len(TextBox4.Text) = 0 Then ' TextBox3・4への代入 ' Label3・4への代入 Else ' TextBox5・6への代入 ' Label5・6への代入 End If textbox3と4のそれぞれの文字列の長さの積で判断してみる。 ⇒ただしTextBox3 か TextBox4 のどちらかが空白である可能性があれば、 If Len(TextBox3.Text) = 0 Or Len(TextBox4.Text) = 0 Then かな?

ainouracho
質問者

補足

早速の回答ありがとうございます。 Private Sub CommandButton6_Click() If Len(Label11) = 0 Then Label11 = TextBox1 Label12 = TextBox2 Label13 = Label6 Label14 = Label7 Label15 = Label9 Else Label20 = TextBox1 Label19 = TextBox2 Label18 = Label6 Label17 = Label7 Label16 = Label9 End If End Sub という風にしてLABEL11が0文字ならLABEL11へ書き込み違うならLABEL20へで出来ました。が、これよりさらにLABEL20も0文字でないならLABEL25へ、それでも0文字でないなら・・・何段階も0文字までがあるまで繰り返すというのは可能なんでしょうか? この条件で繰り返してみましたがエラーでした・・・

関連するQ&A

  • ユーザーフォーム 一致するTEXTBOX同士の計算

    VBA初心者で始めてユーザーフォームを作成します。 TEXTBOX1がAの時、TEXTBOX4にTEXTBOX1+TEXTBOX2を計算させ、TEXTBOX5にカーソルを移動させる。 TEXTBOX1がA以外の時、TEXTBOX4にTEXTBOX1の値のみ表示させ、コマンドボタン1に移動させたいのです。 どうしたらいいかアドバイスお願いします。

  • EXCEL ユーザーフォームの2つのtextboxの値で検索

    久しぶりの投稿です。 今、EXCELのユーザーフォームのVBAで行き詰ってます。 お分かりの方宜しくお願いいたします。 まず、EXCELのシートが下の様にあります。   A        B         C         D 1 得+支店 得意先コード  支店コード     得意先名 2 1030401   10304         01         XXX乳業 3 20000    20000                   XXX商事本店 4 2000001    20000          01         XXX商事 A支店 (AのセルはB&Cで)   textbox1に得意先コード textbox2に支店コードを入力してコマンドボタンを押したら textbox3に得意先名を表示させるという事がしたいのですが 支店コードが入ってる時はよいのですが入ってない時 実行時エラー’1004’ WorksheetFunctionクラスのVLookupプロパティを取得出来ません。 となってしまいます。 VBAは下の様になってます  Private Sub CommandButton1_Click()   Set ADR = Worksheets("sheet1").Range("A2:C4") TextBox3 = Application.WorksheetFunction.VLookup(TextBox1 + TextBox2, ADR, 4, False) End Sub

  • Formの間に値を渡すことについて

    素人の質問が以下のとおりです。 【Form1の設置:】 TextBox1 Button1 【Form2の設置:】 Label1 【要求:】 1. Form1のTextBox1に値(文字)を入力して、Button1をクリックすれば 2. Form2のLabel1からTextBox1に入力された値(文字)を表示される。   要するFormの間に値を渡すことです。 もちろん、ネットでも調べましたが、説明されたことをよくわからなかったのでシンプルなコードが頂きたいです。 自分が作ったNGものもアップします。 ------------------Form1内に記載した内容------------- Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click Dim tmpMsg As String tmpMsg = TextBox1.text   Dim frmFrom1 As New Form1 frmFrom1.Show(tmpMsg) End Sub ---------------------------------------------------- ------------------Form2内に記載した内容------------- Public Class Form3 Private Sub Form2_Load(ByRef tmpMsg As String) Label1.Text = tmpmsg End Sub End Class ---------------------------------------------------- 結果として、エラーがなかったが、label1に何も表示されなかったです。 宜しくお願い致します。^@^

  • Excel VBA のマルチページ

    使用環境:Excel2007 VBAのユーザーフォームにMultiPageを配置し各ページにScrollbarを 設定(Vertical)したいと思っています。 各ページに配置まではできましたが、実行しても動かず困っています。 写真やコマンドボタンを多く配置するので、マルチページで対応できたら と考えています。 ヒントとなるコードまたはURLが解れば教えて頂きたいです。 よろしくお願いします。

  • VB Textboxの数字を判別する方法

    VisualVasic初心者です。下記のコードについて教えてください。 Textboxに数字を入力し、その数値によりラベルに表示される文字が変わるというプログラムを作りたいのですが、コードがわかりません。 Textboxに1と入力し、ボタンを押すとラベル1に「りんご」と表示される。 TextBoxに2と入力し、ボタンを押すとラベル2に「みかん」と表示される。 VB2005を使用しています。

  • excelのsheetを表示しないでUserFormで更新

    今日 2個目の教えてです。 一つ目もまだわからない状態なんですが お分かりの方お教え下さい。 excelを起動するとUserFormのみが起動して(excelシートは開かない)textbox1にコードを入力すると excelシートからtextbox2にデータをひっぱってきます。 そのtextbox2のところを別のデータを入力してコマンドボタンを押すと シートの値が置き換わるようにしたいのですがお教え願えないでしょうか。

  • TextBox.2 に Vlookupを入れる記述を教えて下さい。

    VBA初心者です。見よう見真似で売上伝票を作っています。 TextBox1には入力したコードをSheet2B1に書き込みたいです。 TextBox2にはTextBox1に入力したコードを見てVlookupのように、 商品リストから参照し、TextBox2に反映させたいです。 自分で作成してみたのですが、全く動きませんでした。 是非教えて下さい。宜しくお願い致します。 Private Sub CommandButton1_Click() With Worksheets("Sheet2") .Range("B1") = TextBox1.Text End With With Worksheets("商品リスト") TextBox2.Text = Application.WorksheetFunction.VLookup(Val(TextBox1.Value), RangeA, 2, False) End With End Sub

  • TextBox内でEnterキーを押して

    ASP.NET 初めたばかりの初心者です。 「WebMatrix」というツールを使ってWebアプリケーションをつくっています。 早速質問なんですが、いまログイン画面を作っているのですが、パスワードを入力するTextBox内で[Enter]を押した時、[ログインボタン]をクリックしたのと同様の動作にしたいのですが、よくわかりません。 参考になるページやコードがあったら教えて下さい。 よろしくお願いします

  • フォームのテキストボックスの値をコピーしたい

    excel-vba初心者です。教えてください。 フォームのテキストボックスで表示した値を コマンドボタンでコピーするにはどうすればいいですか?

  • textboxの繰り返し連結処理

    textboxの繰り返し連結処理 Visual Web Developer 2008を使いWebアプリケーション開発中です。言語はVBです。 複数のtextboxに入力された文字を連結する方法が分かりません。 ↓このようにtextboxに入力された文字   1 2 3 4 5 1 あ|い|う|え|お 2 か|き|く|け|こ 3 さ|し|す|せ|そ 4 た|ち|つ|て|と 5 な|に|ぬ|ね|の Buttonをクリックしたら“あいうえおかきくけこさしすせそ…”というtextboxの連結処理をしたいのですが、textboxの数が200~300と多いので、繰り返し処理を使い簡単にできないでしょうか? 初心者なので分かりづらい質問で申し訳ありません。 参考になるページやコードがあったら教えて下さい。 よろしくお願いします。