Excel VBA質問箱 IV

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

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


4984 / 13646 ツリー ←次へ | 前へ→

【53240】UserFormのTextBoxの値でシートのセルを選択する方法 かんじです 07/12/22(土) 14:09 質問[未読]
【53241】Re:UserFormのTextBoxの値でシートのセルを... かみちゃん 07/12/22(土) 14:17 発言[未読]
【53242】Re:UserFormのTextBoxの値でシートのセルを... かんじです 07/12/22(土) 15:06 お礼[未読]
【53243】Re:UserFormのTextBoxの値でシートのセルを... かんじです 07/12/22(土) 16:17 質問[未読]
【53244】Re:UserFormのTextBoxの値でシートのセルを... Yoshi 07/12/22(土) 16:17 発言[未読]
【53245】Re:UserFormのTextBoxの値でシートのセルを... かんじです 07/12/22(土) 20:46 お礼[未読]
【53246】Re:UserFormのTextBoxの値でシートのセルを... かみちゃん 07/12/22(土) 21:21 発言[未読]
【53247】Re:UserFormのTextBoxの値でシートのセルを... かんじです 07/12/22(土) 23:26 お礼[未読]
【53248】Re:UserFormのTextBoxの値でシートのセルを... かみちゃん 07/12/22(土) 23:38 発言[未読]
【53254】Re:UserFormのTextBoxの値でシートのセルを... かんじです 07/12/23(日) 11:24 お礼[未読]
【53255】Re:UserFormのTextBoxの値でシートのセルを... tatumi 07/12/23(日) 14:41 質問[未読]
【53256】Re:UserFormのTextBoxの値でシートのセルを... かみちゃん 07/12/23(日) 15:07 発言[未読]
【53259】Re:UserFormのTextBoxの値でシートのセルを... tatumi 07/12/24(月) 9:23 お礼[未読]

【53240】UserFormのTextBoxの値でシートのセルを...
質問  かんじです E-MAIL  - 07/12/22(土) 14:09 -

引用なし
パスワード
   よろしくお願いします
UserFormに作ったTextBox1の値から、その値のシートのセルを選択する方法が分からなくて困っています。
1.新しいデータをシートの最後の行の下に追加するときには下記を使っています
   myInoutRow = .Cells(.Rows.Count,1).End(xlUp).Row+1

2.これとは別に、UserFormのTextBox1の値のセル(の行)を既にあるデータか  ら選択する(行の選択)方法が分かりません。

また、
シート(Sheet1)のセルから別シートのセルを選択するのは下記で行っています
Columns(1).Find(What:=Sheets(Sheet1).Cells(5,5)).Select

教えていただければ感謝です。よろしくお願いします。

【53241】Re:UserFormのTextBoxの値でシートのセル...
発言  かみちゃん E-MAIL  - 07/12/22(土) 14:17 -

引用なし
パスワード
   こんにちは。かみちゃん です。

>2.これとは別に、UserFormのTextBox1の値のセル(の行)を既にあるデータか  ら選択する(行の選択)方法が分かりません。
>
>また、
>シート(Sheet1)のセルから別シートのセルを選択するのは下記で行っています
>Columns(1).Find(What:=Sheets(Sheet1).Cells(5,5)).Select

Sheets(Sheet1).Cells(5,5)
の代わりに、
UserForm1.TextBox1.Value
とすれば、いかがでしょうか?

【53242】Re:UserFormのTextBoxの値でシートのセル...
お礼  かんじです E-MAIL  - 07/12/22(土) 15:06 -

引用なし
パスワード
   ▼かみちゃん さん:
>こんにちは。かみちゃん です。
>
>>2.これとは別に、UserFormのTextBox1の値のセル(の行)を既にあるデータか  ら選択する(行の選択)方法が分かりません。
>>
>>また、
>>シート(Sheet1)のセルから別シートのセルを選択するのは下記で行っています
>>Columns(1).Find(What:=Sheets(Sheet1).Cells(5,5)).Select
>
>Sheets(Sheet1).Cells(5,5)
>の代わりに、
>UserForm1.TextBox1.Value
>とすれば、いかがでしょうか?

早速のご教授ありがとうございます
修正してやってみたのですがうまくいきません。具体的には下記内容です
Private Sub CommandButton1_Click()
  Dim i As Integer              '変数iを宣言
  Dim myInputRow As Long
     
  myFname = "◆受注と残高2008b"

  With Workbooks(myFname & ".xls").Worksheets("受注と入金")
   Columns(3).Find(What:=UserForm2.TextBox1.Value).Select
       '3列目を     ’Formは2

       '上記の選択行に下記をセル入力したい
   ActiveCell.Offset(0, 8).Value = Me.TextBox2.Text
   ActiveCell.Offset(0, 9).Value = Me.TextBox3.Text
   ActiveCell.Offset(0, 10).Value = Me.TextBox4.Text
   ActiveCell.Offset(0, 11).Value = Me.TextBox5.Text   
  End With

  Unload UserForm2  
  UserForm2.Show
  
End Sub

上記のColumns(3)の行がうまく書けていないようです
全体を見ていかがでしょうか。ご教示よろしくお願いします。

【53243】Re:UserFormのTextBoxの値でシートのセル...
質問  かんじです E-MAIL  - 07/12/22(土) 16:17 -

引用なし
パスワード
   先ほど種別をお礼にしてしまいました。継続でお願いしたいので再度質問にさせていただきます。よろしくお願いします。
>▼かみちゃん さん:
>>こんにちは。かみちゃん です。
>>
>>>2.これとは別に、UserFormのTextBox1の値のセル(の行)を既にあるデータか  ら選択する(行の選択)方法が分かりません。
>>>
>>>また、
>>>シート(Sheet1)のセルから別シートのセルを選択するのは下記で行っています
>>>Columns(1).Find(What:=Sheets(Sheet1).Cells(5,5)).Select
>>
>>Sheets(Sheet1).Cells(5,5)
>>の代わりに、
>>UserForm1.TextBox1.Value
>>とすれば、いかがでしょうか?
>
>早速のご教授ありがとうございます
>修正してやってみたのですがうまくいきません。具体的には下記内容です
>Private Sub CommandButton1_Click()
>  Dim i As Integer              '変数iを宣言
>  Dim myInputRow As Long
>     
>  myFname = "◆受注と残高2008b"
>
>  With Workbooks(myFname & ".xls").Worksheets("受注と入金")
>   Columns(3).Find(What:=UserForm2.TextBox1.Value).Select
>       '3列目を     ’Formは2
>
>       '上記の選択行に下記をセル入力したい
>   ActiveCell.Offset(0, 8).Value = Me.TextBox2.Text
>   ActiveCell.Offset(0, 9).Value = Me.TextBox3.Text
>   ActiveCell.Offset(0, 10).Value = Me.TextBox4.Text
>   ActiveCell.Offset(0, 11).Value = Me.TextBox5.Text   
>  End With
>
>  Unload UserForm2  
>  UserForm2.Show
>  
>End Sub
>
>上記のColumns(3)の行がうまく書けていないようです
>全体を見ていかがでしょうか。ご教示よろしくお願いします。

【53244】Re:UserFormのTextBoxの値でシートのセル...
発言  Yoshi  - 07/12/22(土) 16:17 -

引用なし
パスワード
   ▼かんじです さん:
textBox1のデータをどこに入れたいかによりますが、
例えばC5に入れるとすれば

Private Sub CommandButton1_Click()
With Sheets("シート名").Range("C5")
  .Value = TextBox1.Value
  .Offset(0, 8).Value = Me.TextBox2.Text
  .Offset(0, 9).Value = Me.TextBox3.Text
  .Offset(0, 10).Value = Me.TextBox4.Text
  .Offset(0, 11).Value = Me.TextBox5.Text
End With
End Sub

【53245】Re:UserFormのTextBoxの値でシートのセル...
お礼  かんじです E-MAIL  - 07/12/22(土) 20:46 -

引用なし
パスワード
   ▼Yoshi さん:
>▼かんじです さん:
>textBox1のデータをどこに入れたいかによりますが、
>例えばC5に入れるとすれば
>
>Private Sub CommandButton1_Click()
> With Sheets("シート名").Range("C5")
>  .Value = TextBox1.Value
>  .Offset(0, 8).Value = Me.TextBox2.Text
>  .Offset(0, 9).Value = Me.TextBox3.Text
>  .Offset(0, 10).Value = Me.TextBox4.Text
>  .Offset(0, 11).Value = Me.TextBox5.Text
> End With
>End Sub

Yoshiさん ありがとうございます
上記の内容で重大なヒントをいただきました。
今まではTextBoxの値を直接Sheetのセル検索に使おうとしていました。
TextBoxの値をSheetのセルに持って行き、それを検索値にすることで求めるセルの選択が出来るようになりました。
TextBoxから直接の検索も出来るのかも知れませんが、上記の方式でやろうと思います。
ありがとうございました。

【53246】Re:UserFormのTextBoxの値でシートのセル...
発言  かみちゃん E-MAIL  - 07/12/22(土) 21:21 -

引用なし
パスワード
   こんにちは。かみちゃん です。

解決済みですが・・・TextBoxの値をFindの検索値にすることはできます。

>修正してやってみたのですがうまくいきません。

うまくいかないとはどういう意味でしょうか?説明になっていません。
エラーが出るならば、エラーメッセージとエラーとなるコードを提示しましょう。

Findを使う場合は、シート上のデータと、TextBox1の入力データにもよります。
そのあたりの説明がないので、推測するしかないわけです。

A列に、1〜10の数値を入力して、TextBox1に1〜10のいずれかの値を入力して、
以下のコードを実行してみてください。

Private Sub CommandButton1_Click()
 Columns(1).Find(TextBox1.Value).Select
End Sub

【53247】Re:UserFormのTextBoxの値でシートのセル...
お礼  かんじです E-MAIL  - 07/12/22(土) 23:26 -

引用なし
パスワード
   ▼かみちゃん さん:
>こんにちは。かみちゃん です。
>
>解決済みですが・・・TextBoxの値をFindの検索値にすることはできます。
>
>>修正してやってみたのですがうまくいきません。
>
>うまくいかないとはどういう意味でしょうか?説明になっていません。
>エラーが出るならば、エラーメッセージとエラーとなるコードを提示しましょう。
>
>Findを使う場合は、シート上のデータと、TextBox1の入力データにもよります。
>そのあたりの説明がないので、推測するしかないわけです。
>
>A列に、1〜10の数値を入力して、TextBox1に1〜10のいずれかの値を入力して、
>以下のコードを実行してみてください。
>
>Private Sub CommandButton1_Click()
> Columns(1).Find(TextBox1.Value).Select
>End

かみちゃんさん
回答ありがとうございます
やってみました。うまくいきました。最初に新しいBookで成功し
現在作成中のBookでやったところ同じくうまく行きました。
Columns(1).Find(TextBox1.Value).Select
Columns(1).Find(What:=UserForm1.TextBox1.Value).Select
のどちらでもOKでした。
前は、Sheetの指定(9つのシートがあるので)が適切ではなかったようです。
本当にありがとうございました。感謝です。

【53248】Re:UserFormのTextBoxの値でシートのセル...
発言  かみちゃん E-MAIL  - 07/12/22(土) 23:38 -

引用なし
パスワード
   こんにちは。かみちゃん です。

解決したようですが、

>Columns(1).Find(TextBox1.Value).Select
>Columns(1).Find(What:=UserForm1.TextBox1.Value).Select
>のどちらでもOKでした。
>前は、Sheetの指定(9つのシートがあるので)が適切ではなかったようです。

上記のコードでは、アクティブシートに対しての処理になります。
特定のシートに対してならば、
Sheets("Sheet1").Columns(1).〜
としないいけないのですが、Sheet1がアクティブでないとき
(アクティブシート以外の列を検索して選択する)は、
Sheets("Sheet1").Columns(1).〜.Select
という記述の仕方はできませんので、注意しましょう。

【53254】Re:UserFormのTextBoxの値でシートのセル...
お礼  かんじです E-MAIL  - 07/12/23(日) 11:24 -

引用なし
パスワード
   ▼かみちゃん さん:
>こんにちは。かみちゃん です。
>
>解決したようですが、
>
>>Columns(1).Find(TextBox1.Value).Select
>>Columns(1).Find(What:=UserForm1.TextBox1.Value).Select
>>のどちらでもOKでした。
>>前は、Sheetの指定(9つのシートがあるので)が適切ではなかったようです。
>
>上記のコードでは、アクティブシートに対しての処理になります。
>特定のシートに対してならば、
>Sheets("Sheet1").Columns(1).〜
>としないいけないのですが、Sheet1がアクティブでないとき
>(アクティブシート以外の列を検索して選択する)は、
>Sheets("Sheet1").Columns(1).〜.Select
>という記述の仕方はできませんので、注意しましょう。

かみちゃんさん
ご丁寧にありがとうございます。相談するのは今回が初めてなので分かりやすい質問内容にならずお手数をおかけしました。
大分頭が錆付いていますがこれからも良いものを作りたいと思います。
ありがとうございました。

【53255】Re:UserFormのTextBoxの値でシートのセル...
質問  tatumi  - 07/12/23(日) 14:41 -

引用なし
パスワード
   ▼かんじです さん:
 この場を貸してください
▼かみちゃん さん:
 ichinoseさんのコードを見させていただき真似をしようと思いました。
 そして、また かみちゃんさんのコードを見て、完全にコードを覚えました。
 シンプルで覚え易いでした。勉強になりました。

 この紙面をお借りして、教えてください。
 AddItemでcomboBoxを使って、複数行を表示させるシンプルな方法は
 無いでしょうか?

 Dim LstRow As Integer
 Dim i As Integer
  LstRow = Range("a65536").End(xlUp).Row
  For i = 6 To LstRow
   この中のコードで複数行を表示できませんでしょうか?
  Next
 
 もし解決方法がありましたらアドバイスお願いします。

【53256】Re:UserFormのTextBoxの値でシートのセル...
発言  かみちゃん  - 07/12/23(日) 15:07 -

引用なし
パスワード
   こんにちは。かみちゃん です。

> AddItemでcomboBoxを使って、複数行を表示させるシンプルな方法は
> 無いでしょうか?

ComboBoxで複数行表示というのは、どういう意味でしょうか?

複数列の間違いですか?それであれば、シンプルかどうかはわかりませんが、
以下のような感じでできると思います。

Private Sub UserForm_Initialize()
 Me.ComboBox1.List = Range("A6", Range("A65536").End(xlUp).Offset(, 2)).Value
End Sub

なお、For 〜 Next を使用する必要がある場合は、以下のような感じです。

Private Sub UserForm_Initialize()
 Dim LstRow As Integer
 Dim i As Integer
 
 LstRow = Range("a65536").End(xlUp).Row
 For i = 6 To LstRow
  Me.ComboBox1.AddItem Range("A" & i).Value
  Me.ComboBox1.List(i - 6, 1) = Range("B" & i).Value
 Next
End Sub

> もし解決方法がありましたらアドバイスお願いします。

次回からは別にスレッドを立てて、「スレッド番号xxxxの関連で教えてください」
というようにスレッド番号を明記して、質問されたほうがいいかと思います。

【53259】Re:UserFormのTextBoxの値でシートのセル...
お礼  tatumi  - 07/12/24(月) 9:23 -

引用なし
パスワード
   ▼かみちゃん さん:

おはようございます。
有難うございました。よく理解できました。

>複数列の間違いですか?
複数列の間違いでした。失礼しました。

>次回からは別にスレッドを立てて、「スレッド番号xxxxの関連で教えてください」
>というようにスレッド番号を明記して、質問されたほうがいいかと思います。
そのようにさせていただきます。失礼しました。

今後ともよろしくお願いします。m(__)m

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