Excel VBA質問箱 IV

当質問箱は、有志のボランティア精神のおかげで成り立っています。
問題が解決したら、必ずお礼をしましょうね。
本サイトの基本方針をまとめました。こちら をご一読ください。

投稿種別の選択が必要です。ご注意ください。
迷惑投稿防止のため、URLの入力を制限しています。ご了承ください。


7312 / 13644 ツリー ←次へ | 前へ→

【39856】userformの操作について てっちゃん 06/7/3(月) 11:31 質問[未読]
【39865】Re:userformの操作について てっちゃん 06/7/3(月) 13:29 発言[未読]
【39868】Re:userformの操作について Statis 06/7/3(月) 13:49 回答[未読]
【39869】Re:userformの操作について てっちゃん 06/7/3(月) 13:57 質問[未読]
【39870】Re:userformの操作について てっちゃん 06/7/3(月) 14:13 お礼[未読]
【39871】Re:userformの操作について Statis 06/7/3(月) 14:18 回答[未読]
【39873】Re:userformの操作について てっちゃん 06/7/3(月) 14:53 質問[未読]
【39877】Re:userformの操作について Statis 06/7/3(月) 15:07 回答[未読]
【39879】Re:userformの操作について てっちゃん 06/7/3(月) 15:11 質問[未読]
【39880】Re:userformの操作について てっちゃん 06/7/3(月) 15:14 お礼[未読]

【39856】userformの操作について
質問  てっちゃん  - 06/7/3(月) 11:31 -

引用なし
パスワード
   おはようございます。以前も同じ質問をしたのですが、答えが分からないまま色々試してはみたのですが、うまくいきません。
よろしくお願い致します。

sheet1上にコンボボックスがあり、50人の名前があります。名前はsheet(”データ”)のセルA1:A50に名前の一覧がありそこからひっぱってきています。
50人分の名前のsheetがあります。
sheet1上には他にtextbox、チェックボックス等複数あり、コンボボックスより名前を選択すると、その名前のsheetより情報をtextbox等に移しだします。
そして、名前の変更がある際、下記のコードの様にsheet1上にあるボタンをクリックし、userformを出します。userformにはコンボボックス、textbox、ボタンがあります。
userformのコンボボックスより名前を選択すると、textboxに名前が表示されます。textboxにて名前を変更し、ボタンをクリックすると、変更前の名前のsheet名が変わり、sheet(”データ”)の名前一覧の変更前の名前のセルが変更後の名前に切り替わります。

ここで、userform上のコンボボックスを外し、textboxとボタンだけにし、userformを出した際、sheet1上のコンボボックスに表示されている名前が直接userform上のtextboxに表示され、そこで名前を打ち変えて、ボタンをクリックすれば、先ほど書いた様に、sheet名と名前一覧が変更するようにするには下記のコードをどのようにいじればよいですか?
よろしくお願い致します。

Dim Co As Long
Dim Mys As String

Private Sub ComboBox1_Change()
 Me.TextBox1.Value = Me.ComboBox1.Value
End Sub

Private Sub CommandButton1_Click()
  Co = Me.ComboBox1.ListIndex
Sheets("データ").Cells(Co + 1, 1).Value = Me.TextBox1.Value
  Mys = Me.ComboBox1.Value
 Worksheets(Mys).Name = TextBox1
End Sub

Private Sub CommandButton2_Click()
 Unload Me
End Sub

Private Sub UserForm_Initialize()
 Me.ComboBox1.List = Sheets("データ").Range("A1:A50").Value
End Sub



【39865】Re:userformの操作について
発言  てっちゃん  - 06/7/3(月) 13:29 -

引用なし
パスワード
   質問者ですが、説明が長すぎてわかりませんでしたか?

【39868】Re:userformの操作について
回答  Statis  - 06/7/3(月) 13:49 -

引用なし
パスワード
   こんにちは

こんな感じです。

Dim Mys As String, Mys1 As String

Private Sub CommandButton1_Click()
Dim Ma As Variant
Mys1 = Me.TextBox1.Value
Ma = Application.Match(Mys, Sheets("データ").Columns(1), 0)
Sheets("データ").Cells(Ma, 1).Value = Mys1
Worksheets(Mys).Name = Mys1
End Sub

Private Sub UserForm_Initialize()
Mys = Sheets("Sheet1").OLEObjects("CombBox1").Object.Value
Me.TextBox1.Value = Mys
End Sub

【39869】Re:userformの操作について
質問  てっちゃん  - 06/7/3(月) 13:57 -

引用なし
パスワード
   ▼Statis さん:
>こんにちは
>
>こんな感じです。
>
>Dim Mys As String, Mys1 As String
>
>Private Sub CommandButton1_Click()
>Dim Ma As Variant
>Mys1 = Me.TextBox1.Value
>Ma = Application.Match(Mys, Sheets("データ").Columns(1), 0)
>Sheets("データ").Cells(Ma, 1).Value = Mys1
>Worksheets(Mys).Name = Mys1
>End Sub
>
>Private Sub UserForm_Initialize()
>Mys = Sheets("Sheet1").OLEObjects("CombBox1").Object.Value
>Me.TextBox1.Value = Mys
>End Sub


試してみましたが、worksheetクラスのoleobjectプロパティが取得できませんとエラーがでますが、どうしたらいいのでしょうか?

【39870】Re:userformの操作について
お礼  てっちゃん  - 06/7/3(月) 14:13 -

引用なし
パスワード
   ▼てっちゃん さん:
>▼Statis さん:
>>こんにちは
>>
>>こんな感じです。
>>
>>Dim Mys As String, Mys1 As String
>>
>>Private Sub CommandButton1_Click()
>>Dim Ma As Variant
>>Mys1 = Me.TextBox1.Value
>>Ma = Application.Match(Mys, Sheets("データ").Columns(1), 0)
>>Sheets("データ").Cells(Ma, 1).Value = Mys1
>>Worksheets(Mys).Name = Mys1
>>End Sub
>>
>>Private Sub UserForm_Initialize()
>>Mys = Sheets("Sheet1").OLEObjects("CombBox1").Object.Value
>>Me.TextBox1.Value = Mys
>>End Sub
>
>
>試してみましたが、worksheetクラスのoleobjectプロパティが取得できませんとエラーがでますが、どうしたらいいのでしょうか?

わかりましたcomboboxがcombboxになっていたからでした。
ありがとうございました。

【39871】Re:userformの操作について
回答  Statis  - 06/7/3(月) 14:18 -

引用なし
パスワード
   失礼しました。

>>Mys = Sheets("Sheet1").OLEObjects("CombBox1").Object.Value
Mys = Worksheets("Sheet1").OLEObjects("ComboBox1").Object.Value

【39873】Re:userformの操作について
質問  てっちゃん  - 06/7/3(月) 14:53 -

引用なし
パスワード
   ▼Statis さん:
>失礼しました。
>
>>>Mys = Sheets("Sheet1").OLEObjects("CombBox1").Object.Value
>Mys = Worksheets("Sheet1").OLEObjects("ComboBox1").Object.Value

いえとんでもないです。もし、変更前の名前を変更後の名前に置き換えるとき、その方のsheetのセルI8に変更後の名前をいれたいのですが、下記のコードを付け加えるだけではだめですか?

Worksheets(Mys).Range("I8") = Mys1

【39877】Re:userformの操作について
回答  Statis  - 06/7/3(月) 15:07 -

引用なし
パスワード
   ▼てっちゃん さん:
こんにちは
>>>>Mys = Sheets("Sheet1").OLEObjects("CombBox1").Object.Value
>>Mys = Worksheets("Sheet1").OLEObjects("ComboBox1").Object.Value
>
>いえとんでもないです。もし、変更前の名前を変更後の名前に置き換えるとき、その方のsheetのセルI8に変更後の名前をいれたいのですが、下記のコードを付け加えるだけではだめですか?
>
>Worksheets(Mys).Range("I8") = Mys1


変更後のシートに入力なら
Worksheets(Mys1).Range("I8") = Mys1
ではないでしょうか?

【39879】Re:userformの操作について
質問  てっちゃん  - 06/7/3(月) 15:11 -

引用なし
パスワード
   ▼Statis さん:
>▼てっちゃん さん:
>こんにちは
>>>>>Mys = Sheets("Sheet1").OLEObjects("CombBox1").Object.Value
>>>Mys = Worksheets("Sheet1").OLEObjects("ComboBox1").Object.Value
>>
>>いえとんでもないです。もし、変更前の名前を変更後の名前に置き換えるとき、その方のsheetのセルI8に変更後の名前をいれたいのですが、下記のコードを付け加えるだけではだめですか?
>>
>>Worksheets(Mys).Range("I8") = Mys1
>
>
>変更後のシートに入力なら
>Worksheets(Mys1).Range("I8") = Mys1
>ではないでしょうか?

変更する際に一緒にということですがいいんですか?
エラーが出てしまいます。

【39880】Re:userformの操作について
お礼  てっちゃん  - 06/7/3(月) 15:14 -

引用なし
パスワード
   ▼てっちゃん さん:
>▼Statis さん:
>>▼てっちゃん さん:
>>こんにちは
>>>>>>Mys = Sheets("Sheet1").OLEObjects("CombBox1").Object.Value
>>>>Mys = Worksheets("Sheet1").OLEObjects("ComboBox1").Object.Value
>>>
>>>いえとんでもないです。もし、変更前の名前を変更後の名前に置き換えるとき、その方のsheetのセルI8に変更後の名前をいれたいのですが、下記のコードを付け加えるだけではだめですか?
>>>
>>>Worksheets(Mys).Range("I8") = Mys1
>>
>>
>>変更後のシートに入力なら
>>Worksheets(Mys1).Range("I8") = Mys1
>>ではないでしょうか?
>
>変更する際に一緒にということですがいいんですか?
>エラーが出てしまいます。


こんどは上手くいきました。
すみませんでした。

7312 / 13644 ツリー ←次へ | 前へ→
ページ:  ┃  記事番号:
2610219
(SS)C-BOARD v3.8 is Free