Excel VBA質問箱 IV

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

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


7347 / 13645 ツリー ←次へ | 前へ→

【39603】sheet名の変更 てっちゃん 06/6/27(火) 13:54 質問[未読]
【39611】Re:sheet名の変更 Statis 06/6/27(火) 15:14 発言[未読]
【39612】Re:sheet名の変更 てっちゃん 06/6/27(火) 15:54 発言[未読]
【39613】Re:sheet名の変更 てっちゃん 06/6/27(火) 16:10 発言[未読]
【39618】Re:sheet名の変更 Statis 06/6/27(火) 16:32 発言[未読]
【39620】Re:sheet名の変更 てっちゃん 06/6/27(火) 17:08 発言[未読]
【39621】Re:sheet名の変更 てっちゃん 06/6/27(火) 17:27 質問[未読]
【39650】Re:sheet名の変更 Statis 06/6/28(水) 9:37 発言[未読]
【39692】Re:sheet名の変更 てっちゃん 06/6/29(木) 10:35 質問[未読]
【39695】Re:sheet名の変更 Statis 06/6/29(木) 10:53 発言[未読]
【39697】Re:sheet名の変更 てっちゃん 06/6/29(木) 11:19 質問[未読]
【39701】Re:sheet名の変更 Statis 06/6/29(木) 11:59 発言[未読]
【39702】Re:sheet名の変更 てっちゃん 06/6/29(木) 12:08 質問[未読]
【39704】Re:sheet名の変更 Statis 06/6/29(木) 12:41 質問[未読]
【39706】Re:sheet名の変更 てっちゃん 06/6/29(木) 12:54 質問[未読]

【39603】sheet名の変更
質問  てっちゃん  - 06/6/27(火) 13:54 -

引用なし
パスワード
   いつもお世話になっています。
大変助かっています。

是非可能なら教えていただきたいのですが、現在、sheet1にcomboboxがありsheet2のA1:A50に50人の名前が書いてあります。他に50人分の名前のsheetがあります。
sheet1上にはtextboxなどが複数あり、combobox(sheet2の名簿をListfillrangeに設定)より名前を選択するとその名前のsheetより情報をsheet1上のtextbox等に移しだします。sheet1上で書き換え、更新ボタンをクリックすると現在選んでいる名前のsheetへ更新(移しかえ)します。

ここでなんですが、例えば1人の方のsheetを他の名前に変更したい場合、sheet1上にボタンを作り、クリックでuserform1が出てきて、userform1上にはコンボボックスとtextboxとボタンを配置し、combobox(sheet1上のcomboboxにある名前と同様に)から名前を選択すると、textboxに名前が出てきて、そこで、名前を打ち替え、ボタンをクリックすると、選らんだ名前のsheet名が変り、sheet2の名簿のその人の名前が変わる。という具合のことなんですが・・・
こんなことができるのであれば是非教えて頂きたいです。なにとぞよろしくお願いいたします。

【39611】Re:sheet名の変更
発言  Statis  - 06/6/27(火) 15:14 -

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

出来るか出来ないかと言うとできます。

Dim Co As Long

'コンボボックスで選んだ値をTextBoxに表示
Private Sub ComboBox1_Change()
Co = Me.ComboBox1.ListIndex
Me.TextBox1.Value = Me.ComboBox1.Value
End Sub

’コマンドボタンを押すとSheet2のデータをTextBoxの値に変更
Private Sub CommandButton1_Click()
Sheets("Sheet2").Cells(Co + 1, 1).Value = Me.TextBox1.Value
End Sub

’フォームをShowしたときコンボボックスにSheet2のA1:A50の値をセット
Private Sub UserForm_Initialize()
Me.ComboBox1.List = Sheets("Sheet2").Range("A1:A50").Value
End Sub

【39612】Re:sheet名の変更
発言  てっちゃん  - 06/6/27(火) 15:54 -

引用なし
パスワード
   ▼Statis さん:
>こんにちは
>
>出来るか出来ないかと言うとできます。
>
>Dim Co As Long
>
>'コンボボックスで選んだ値をTextBoxに表示
>Private Sub ComboBox1_Change()
>Co = Me.ComboBox1.ListIndex
>Me.TextBox1.Value = Me.ComboBox1.Value
>End Sub
>
>’コマンドボタンを押すとSheet2のデータをTextBoxの値に変更
>Private Sub CommandButton1_Click()
>Sheets("Sheet2").Cells(Co + 1, 1).Value = Me.TextBox1.Value
>End Sub
>
>’フォームをShowしたときコンボボックスにSheet2のA1:A50の値をセット
>Private Sub UserForm_Initialize()
>Me.ComboBox1.List = Sheets("Sheet2").Range("A1:A50").Value
>End Sub

試してみましたが、ちょっとちがっています・・・。
生意気言ってすみません。
選んだ名前のsheet名が打ち直してクリックした際にかわりません。
それと、打ち直して、クリックした際、名簿(sheet2)の一番先頭(A1)に入ってしまいます。打ち直す前の名前の上に上書きしたいのですが・・・。
本当に生意気言って申し訳ないです。

【39613】Re:sheet名の変更
発言  てっちゃん  - 06/6/27(火) 16:10 -

引用なし
パスワード
   ▼てっちゃん さん:
>▼Statis さん:
>>こんにちは
>>
>>出来るか出来ないかと言うとできます。
>>
>>Dim Co As Long
>>
>>'コンボボックスで選んだ値をTextBoxに表示
>>Private Sub ComboBox1_Change()
>>Co = Me.ComboBox1.ListIndex
>>Me.TextBox1.Value = Me.ComboBox1.Value
>>End Sub
>>
>>’コマンドボタンを押すとSheet2のデータをTextBoxの値に変更
>>Private Sub CommandButton1_Click()
>>Sheets("Sheet2").Cells(Co + 1, 1).Value = Me.TextBox1.Value
>>End Sub
>>
>>’フォームをShowしたときコンボボックスにSheet2のA1:A50の値をセット
>>Private Sub UserForm_Initialize()
>>Me.ComboBox1.List = Sheets("Sheet2").Range("A1:A50").Value
>>End Sub
>
>試してみましたが、ちょっとちがっています・・・。
>生意気言ってすみません。
>選んだ名前のsheet名が打ち直してクリックした際にかわりません。
>それと、打ち直して、クリックした際、名簿(sheet2)の一番先頭(A1)に入ってしまいます。打ち直す前の名前の上に上書きしたいのですが・・・。
>本当に生意気言って申し訳ないです。

シートの名前の変更はなんとか下記コードでうまくいったのですがsheet2の名簿にうまく上書きができません。

Dim Mys As String
Mys = Me.ComboBox1.Value
Worksheets(Mys).Name = TextBox1

【39618】Re:sheet名の変更
発言  Statis  - 06/6/27(火) 16:32 -

引用なし
パスワード
   こんにちは
シート名も変更するのでしたね
抜けていました。


Sheet2のデータの変更ですが
Sheet2のセルA1からA50にあるなら提示してコードでOKはずですが?

変数「Co」はモジュールの先頭にて宣言してますか?

Dim Co As Long
Private Sub ComboBox1_Change()
 Co = Me.ComboBox1.ListIndex
 Me.TextBox1.Value = Me.ComboBox1.Value
End Sub

Private Sub CommandButton1_Click()
 Sheets("Sheet2").Cells(Co + 1, 1).Value = Me.TextBox1.Value
End Sub

【39620】Re:sheet名の変更
発言  てっちゃん  - 06/6/27(火) 17:08 -

引用なし
パスワード
   ▼Statis さん:
>こんにちは
>シート名も変更するのでしたね
>抜けていました。
>
>
>Sheet2のデータの変更ですが
>Sheet2のセルA1からA50にあるなら提示してコードでOKはずですが?
>
>変数「Co」はモジュールの先頭にて宣言してますか?
>
>Dim Co As Long
>Private Sub ComboBox1_Change()
> Co = Me.ComboBox1.ListIndex
> Me.TextBox1.Value = Me.ComboBox1.Value
>End Sub
>
>Private Sub CommandButton1_Click()
> Sheets("Sheet2").Cells(Co + 1, 1).Value = Me.TextBox1.Value
>End Sub


なんとか作ってみました
これでいかがでしょうか?
いけないところや、こうした方が良いというところがあれば、ご指導願います。

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

【39621】Re:sheet名の変更
質問  てっちゃん  - 06/6/27(火) 17:27 -

引用なし
パスワード
   ▼てっちゃん さん:
>▼Statis さん:
>>こんにちは
>>シート名も変更するのでしたね
>>抜けていました。
>>
>>
>>Sheet2のデータの変更ですが
>>Sheet2のセルA1からA50にあるなら提示してコードでOKはずですが?
>>
>>変数「Co」はモジュールの先頭にて宣言してますか?
>>
>>Dim Co As Long
>>Private Sub ComboBox1_Change()
>> Co = Me.ComboBox1.ListIndex
>> Me.TextBox1.Value = Me.ComboBox1.Value
>>End Sub
>>
>>Private Sub CommandButton1_Click()
>> Sheets("Sheet2").Cells(Co + 1, 1).Value = Me.TextBox1.Value
>>End Sub
>
>
>なんとか作ってみました
>これでいかがでしょうか?
>いけないところや、こうした方が良いというところがあれば、ご指導願います。
>
>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


すみません。上記コードで試したのですがsheet1上のcomboboxに表示されている名前とは違う名前をuserform上のcomboboxより選択し変更したらエラーが出てしまいます。

【39650】Re:sheet名の変更
発言  Statis  - 06/6/28(水) 9:37 -

引用なし
パスワード
   ▼てっちゃん さん:
こんにちは
>>>シート名も変更するのでしたね
>>>抜けていました。
>>>
>>>
>>>Sheet2のデータの変更ですが
>>>Sheet2のセルA1からA50にあるなら提示してコードでOKはずですが?
>>>
>>>変数「Co」はモジュールの先頭にて宣言してますか?
>>>
>>>Dim Co As Long
>>>Private Sub ComboBox1_Change()
>>> Co = Me.ComboBox1.ListIndex
>>> Me.TextBox1.Value = Me.ComboBox1.Value
>>>End Sub
>>>
>>>Private Sub CommandButton1_Click()
>>> Sheets("Sheet2").Cells(Co + 1, 1).Value = Me.TextBox1.Value
>>>End Sub
>>
>>
>>なんとか作ってみました
>>これでいかがでしょうか?
>>いけないところや、こうした方が良いというところがあれば、ご指導願います。
>>
>>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
>
>
>すみません。上記コードで試したのですがsheet1上のcomboboxに表示されている名前とは違う名前をuserform上のcomboboxより選択し変更したらエラーが出てしまいます。

どこでErrが出るのでしょうか?
シート上とフォームのでの関係がこちらでは解かりません。
最初に書いていましたがシート上のcomboboxのリストと
フォームでのcomboboxのリストは同じではなかったですか。

シート上のcomboboxのリストはどのように取得していますか?
それによってはシート名を変更したときシート上のもセットし直す
必要が出てきますよ。

【39692】Re:sheet名の変更
質問  てっちゃん  - 06/6/29(木) 10:35 -

引用なし
パスワード
   ▼Statis さん:
>▼てっちゃん さん:
>こんにちは
>>>>シート名も変更するのでしたね
>>>>抜けていました。
>>>>
>>>>
>>>>Sheet2のデータの変更ですが
>>>>Sheet2のセルA1からA50にあるなら提示してコードでOKはずですが?
>>>>
>>>>変数「Co」はモジュールの先頭にて宣言してますか?
>>>>
>>>>Dim Co As Long
>>>>Private Sub ComboBox1_Change()
>>>> Co = Me.ComboBox1.ListIndex
>>>> Me.TextBox1.Value = Me.ComboBox1.Value
>>>>End Sub
>>>>
>>>>Private Sub CommandButton1_Click()
>>>> Sheets("Sheet2").Cells(Co + 1, 1).Value = Me.TextBox1.Value
>>>>End Sub
>>>
>>>
>>>なんとか作ってみました
>>>これでいかがでしょうか?
>>>いけないところや、こうした方が良いというところがあれば、ご指導願います。
>>>
>>>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
>>
>>
>>すみません。上記コードで試したのですがsheet1上のcomboboxに表示されている名前とは違う名前をuserform上のcomboboxより選択し変更したらエラーが出てしまいます。
>
>どこでErrが出るのでしょうか?
>シート上とフォームのでの関係がこちらでは解かりません。
>最初に書いていましたがシート上のcomboboxのリストと
>フォームでのcomboboxのリストは同じではなかったですか。
>
>シート上のcomboboxのリストはどのように取得していますか?
>それによってはシート名を変更したときシート上のもセットし直す
>必要が出てきますよ。


おはようございます。せっかく答えていただいているのに、返事が遅れてすみません。エラーは名前を変更しボタンをクリックした時に【問題が発生しました】とでます。報告を送信する、しないのボタンがありしないをクリックして、回復中がでている途中で固まってしまいます。
sheet1上のcomboboxはプロパティの「listfillrange」に名簿の範囲を記入しています。

【39695】Re:sheet名の変更
発言  Statis  - 06/6/29(木) 10:53 -

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

>おはようございます。せっかく答えていただいているのに、返事が遅れてすみません。
>エラーは名前を変更しボタンをクリックした時に【問題が発生しました】とでます。
>報告を送信する、しないのボタンがありしないをクリックして、回復中がでている途中で固まってしまいます。
>sheet1上のcomboboxはプロパティの「listfillrange」に名簿の範囲を記入しています。

シート上のcomboboxの値は自動的に変わっているはずですね。
ErrですがコードのErrでないような気がします。
「F8」でコードをひとつずつ確認してみて下さい。

【39697】Re:sheet名の変更
質問  てっちゃん  - 06/6/29(木) 11:19 -

引用なし
パスワード
   ▼Statis さん:
>こんにちは
>
>>おはようございます。せっかく答えていただいているのに、返事が遅れてすみません。
>>エラーは名前を変更しボタンをクリックした時に【問題が発生しました】とでます。
>>報告を送信する、しないのボタンがありしないをクリックして、回復中がでている途中で固まってしまいます。
>>sheet1上のcomboboxはプロパティの「listfillrange」に名簿の範囲を記入しています。
>
>シート上のcomboboxの値は自動的に変わっているはずですね。
>ErrですがコードのErrでないような気がします。
>「F8」でコードをひとつずつ確認してみて下さい。

確認しましたがとくに以上はないようです・・・・。
もしやり方を変えるとしてuserformが出てきた際にform上のcomboboxは消して、直接textboxにsheet1上のcomboboxの名前が出るようにして、そこで変更⇒登録とするにはどの部分のコードを変えればよいですか?いろいろ試したのですが上手くいきません。

【39701】Re:sheet名の変更
発言  Statis  - 06/6/29(木) 11:59 -

引用なし
パスワード
   こんにちは
>確認しましたがとくに以上はないようです。
と言う事は上手き行っているのではないですか?
こちらでは問題ないですよ。
何か違うところで(違うマクロが動いているのでは)
全体のマクロを見ないと解かりませんが。

>直接textboxにsheet1上のcomboboxの名前が出るようにして
UserForm1.TextBox.Value = Worksheets("Sheet1").OLEObjects("ComboBox1").Object.Value

【39702】Re:sheet名の変更
質問  てっちゃん  - 06/6/29(木) 12:08 -

引用なし
パスワード
   ▼Statis さん:
>こんにちは
>>確認しましたがとくに以上はないようです。
>と言う事は上手き行っているのではないですか?
>こちらでは問題ないですよ。
>何か違うところで(違うマクロが動いているのでは)
>全体のマクロを見ないと解かりませんが。
>
>>直接textboxにsheet1上のcomboboxの名前が出るようにして
>UserForm1.TextBox.Value = Worksheets("Sheet1").OLEObjects("ComboBox1").Object.Value

上記コードの際に、打ち変えて登録する時上手くいきません。コードが変わってくることは分かるのですが、どうのように・・・・。
よろしくお願いします。

【39704】Re:sheet名の変更
質問  Statis  - 06/6/29(木) 12:41 -

引用なし
パスワード
   こんにちは
>打ち変えて登録する時上手くいきません
どのように上手く行かないのでしょうか?

どのようなコードで上手く行かないのでしょうか?

【39706】Re:sheet名の変更
質問  てっちゃん  - 06/6/29(木) 12:54 -

引用なし
パスワード
   ▼Statis さん:
>こんにちは
>>打ち変えて登録する時上手くいきません
>どのように上手く行かないのでしょうか?
>
>どのようなコードで上手く行かないのでしょうか?
 

名前を打ち変えてボタンをクリックする際、ボタンに入れるコードなんですが、
下記のCo = Me.・・・・のところをどのようにして、sheet(データ)の名簿にハンエイさせればよいのか・・・ただcombobox1をtextbox変えればよいっていう問題でもないと思うのですが・・・。

 Co = Me.ComboBox1.ListIndex
 Mys = Me.ComboBox1.Value
 Sheets("データ").Cells(Co + 1, 1).Value = Me.TextBox1.Value
 Worksheets(Mys).Name = TextBox1
 Unload UserForm2

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